Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r64002 - in sandbox/xint: boost/xint boost/xint/detail dev dev-ms libs/xint/doc libs/xint/doc/dox libs/xint/example libs/xint/test
From: chad.thecomfychair_at_[hidden]
Date: 2010-07-13 20:10:21


Author: chadnelson
Date: 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
New Revision: 64002
URL: http://svn.boost.org/trac/boost/changeset/64002

Log:
Ready-for-official-review version.
Added:
   sandbox/xint/dev/Example-Rsa.project (contents, props changed)
   sandbox/xint/dev/Example-Simplest.project (contents, props changed)
   sandbox/xint/libs/xint/doc/dox/ex_rsa.dox (contents, props changed)
   sandbox/xint/libs/xint/doc/dox/ex_simplest.dox (contents, props changed)
   sandbox/xint/libs/xint/doc/dox/footer.html (contents, props changed)
   sandbox/xint/libs/xint/doc/ex__rsa.html (contents, props changed)
   sandbox/xint/libs/xint/doc/ex__rsa_8dox.html
      - copied, changed from r63309, /sandbox/xint/libs/xint/doc/r__core_8dox.html
   sandbox/xint/libs/xint/doc/ex__simplest.html (contents, props changed)
   sandbox/xint/libs/xint/doc/ex__simplest_8dox.html
      - copied, changed from r63309, /sandbox/xint/libs/xint/doc/copyonwrite_8dox.html
   sandbox/xint/libs/xint/example/rsa.cpp (contents, props changed)
   sandbox/xint/libs/xint/example/simplest.cpp (contents, props changed)
Text files modified:
   sandbox/xint/boost/xint/detail/basic_types_and_includes.hpp | 4
   sandbox/xint/boost/xint/detail/bitfunctions.hpp | 2
   sandbox/xint/boost/xint/detail/convert.hpp | 6
   sandbox/xint/boost/xint/detail/internals.hpp | 3
   sandbox/xint/boost/xint/detail/options.hpp | 8
   sandbox/xint/boost/xint/integer.hpp | 3
   sandbox/xint/boost/xint/random.hpp | 4
   sandbox/xint/dev-ms/XInt.vcproj | 2
   sandbox/xint/dev/Docs.project | 2
   sandbox/xint/dev/XInt.project | 42
   sandbox/xint/dev/XInt.workspace | 10
   sandbox/xint/libs/xint/doc/acknowledgements.html | 10
   sandbox/xint/libs/xint/doc/acknowledgements_8dox.html | 10
   sandbox/xint/libs/xint/doc/addsubtract_8hpp.html | 10
   sandbox/xint/libs/xint/doc/addsubtract_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/andorxor_8hpp.html | 10
   sandbox/xint/libs/xint/doc/andorxor_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/annotated.html | 10
   sandbox/xint/libs/xint/doc/basic__types__and__includes_8hpp.html | 10
   sandbox/xint/libs/xint/doc/basic__types__and__includes_8hpp_source.html | 52
   sandbox/xint/libs/xint/doc/bitfunctions_8hpp.html | 10
   sandbox/xint/libs/xint/doc/bitfunctions_8hpp_source.html | 12
   sandbox/xint/libs/xint/doc/bitqueue_8hpp.html | 10
   sandbox/xint/libs/xint/doc/bitqueue_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1base__divide__t-members.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1base__divide__t.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1default__random__generator-members.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1default__random__generator.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent-members.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero-members.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument-members.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base-members.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit-members.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus-members.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random-members.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number-members.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error-members.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big-members.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1integer__t-members.html | 10
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1integer__t.html | 16
   sandbox/xint/libs/xint/doc/classdisable__boost__rv__ref.html | 10
   sandbox/xint/libs/xint/doc/classes.html | 10
   sandbox/xint/libs/xint/doc/compare_8hpp.html | 10
   sandbox/xint/libs/xint/doc/compare_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/complexity.html | 10
   sandbox/xint/libs/xint/doc/complexity_8dox.html | 10
   sandbox/xint/libs/xint/doc/convert_8hpp.html | 10
   sandbox/xint/libs/xint/doc/convert_8hpp_source.html | 40
   sandbox/xint/libs/xint/doc/copyonwrite_8dox.html | 10
   sandbox/xint/libs/xint/doc/cow.html | 10
   sandbox/xint/libs/xint/doc/dependencies.html | 10
   sandbox/xint/libs/xint/doc/dependencies_8dox.html | 10
   sandbox/xint/libs/xint/doc/divide_8hpp.html | 10
   sandbox/xint/libs/xint/doc/divide_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/dox/Doxyfile | 2
   sandbox/xint/libs/xint/doc/dox/index.dox | 8
   sandbox/xint/libs/xint/doc/ex__fibonacci.html | 10
   sandbox/xint/libs/xint/doc/ex__fibonacci_8dox.html | 10
   sandbox/xint/libs/xint/doc/ex__rsa_8dox.html | 14
   sandbox/xint/libs/xint/doc/ex__simplest_8dox.html | 14
   sandbox/xint/libs/xint/doc/exception__handler.html | 10
   sandbox/xint/libs/xint/doc/exceptions.html | 10
   sandbox/xint/libs/xint/doc/exceptions_8dox.html | 10
   sandbox/xint/libs/xint/doc/exceptions_8hpp.html | 10
   sandbox/xint/libs/xint/doc/exceptions_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/files.html | 10
   sandbox/xint/libs/xint/doc/fixedlength_8dox.html | 10
   sandbox/xint/libs/xint/doc/fixedlength__type.html | 10
   sandbox/xint/libs/xint/doc/functions.html | 10
   sandbox/xint/libs/xint/doc/functions_func.html | 10
   sandbox/xint/libs/xint/doc/functions_type.html | 10
   sandbox/xint/libs/xint/doc/functions_vars.html | 10
   sandbox/xint/libs/xint/doc/gcd_8hpp.html | 10
   sandbox/xint/libs/xint/doc/gcd_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/globals.html | 10
   sandbox/xint/libs/xint/doc/globals_defs.html | 10
   sandbox/xint/libs/xint/doc/history.html | 10
   sandbox/xint/libs/xint/doc/history_8dox.html | 10
   sandbox/xint/libs/xint/doc/index.html | 22
   sandbox/xint/libs/xint/doc/index_8dox.html | 10
   sandbox/xint/libs/xint/doc/integer_8hpp.html | 14
   sandbox/xint/libs/xint/doc/integer_8hpp_source.html | 2150 ++++++++++++++++++++--------------------
   sandbox/xint/libs/xint/doc/internals_8hpp.html | 18
   sandbox/xint/libs/xint/doc/internals_8hpp_source.html | 211 +-
   sandbox/xint/libs/xint/doc/log2_8hpp.html | 10
   sandbox/xint/libs/xint/doc/log2_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/magnitude__manager_8hpp.html | 10
   sandbox/xint/libs/xint/doc/magnitude__manager_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/modular_8hpp.html | 10
   sandbox/xint/libs/xint/doc/modular_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/monty_8hpp.html | 10
   sandbox/xint/libs/xint/doc/monty_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/multiply_8hpp.html | 10
   sandbox/xint/libs/xint/doc/multiply_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/namespaceboost.html | 10
   sandbox/xint/libs/xint/doc/namespaceboost_1_1xint.html | 98
   sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1detail.html | 10
   sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1exceptions.html | 10
   sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1options.html | 10
   sandbox/xint/libs/xint/doc/namespacemembers.html | 10
   sandbox/xint/libs/xint/doc/namespacemembers_func.html | 10
   sandbox/xint/libs/xint/doc/namespacemembers_type.html | 10
   sandbox/xint/libs/xint/doc/namespacemembers_vars.html | 10
   sandbox/xint/libs/xint/doc/namespaces.html | 10
   sandbox/xint/libs/xint/doc/nan.html | 10
   sandbox/xint/libs/xint/doc/nan_8dox.html | 10
   sandbox/xint/libs/xint/doc/no__exceptions_8dox.html | 10
   sandbox/xint/libs/xint/doc/options_8hpp.html | 20
   sandbox/xint/libs/xint/doc/options_8hpp_source.html | 552 +++++-----
   sandbox/xint/libs/xint/doc/policies_8hpp.html | 10
   sandbox/xint/libs/xint/doc/policies_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/powers_8hpp.html | 10
   sandbox/xint/libs/xint/doc/powers_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/prime_8hpp.html | 10
   sandbox/xint/libs/xint/doc/prime_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/primes.html | 10
   sandbox/xint/libs/xint/doc/primes_8dox.html | 10
   sandbox/xint/libs/xint/doc/r__core.html | 10
   sandbox/xint/libs/xint/doc/r__core_8dox.html | 10
   sandbox/xint/libs/xint/doc/r__cow.html | 10
   sandbox/xint/libs/xint/doc/r__cow_8dox.html | 10
   sandbox/xint/libs/xint/doc/r__exception__blocking.html | 10
   sandbox/xint/libs/xint/doc/r__exception__blocking_8dox.html | 10
   sandbox/xint/libs/xint/doc/r__insecure__default.html | 10
   sandbox/xint/libs/xint/doc/r__insecure__default_8dox.html | 10
   sandbox/xint/libs/xint/doc/r__interface.html | 10
   sandbox/xint/libs/xint/doc/r__interface_8dox.html | 10
   sandbox/xint/libs/xint/doc/r__interface__design__only.html | 10
   sandbox/xint/libs/xint/doc/r__interface__design__only_8dox.html | 10
   sandbox/xint/libs/xint/doc/r__nan.html | 10
   sandbox/xint/libs/xint/doc/r__nan_8dox.html | 10
   sandbox/xint/libs/xint/doc/r__negzero.html | 10
   sandbox/xint/libs/xint/doc/r__negzero_8dox.html | 10
   sandbox/xint/libs/xint/doc/r__no__floats.html | 10
   sandbox/xint/libs/xint/doc/r__nofloats_8dox.html | 10
   sandbox/xint/libs/xint/doc/r__random.html | 10
   sandbox/xint/libs/xint/doc/r__random_8dox.html | 10
   sandbox/xint/libs/xint/doc/r__shared__ptr.html | 10
   sandbox/xint/libs/xint/doc/r__shared__ptr_8dox.html | 10
   sandbox/xint/libs/xint/doc/r__too__big.html | 10
   sandbox/xint/libs/xint/doc/r__toobig_8dox.html | 10
   sandbox/xint/libs/xint/doc/r__whynotx.html | 10
   sandbox/xint/libs/xint/doc/r__whynotx_8dox.html | 10
   sandbox/xint/libs/xint/doc/random.html | 10
   sandbox/xint/libs/xint/doc/random_8dox.html | 10
   sandbox/xint/libs/xint/doc/random_8hpp.html | 10
   sandbox/xint/libs/xint/doc/random_8hpp_source.html | 14
   sandbox/xint/libs/xint/doc/random__by__size_8hpp.html | 10
   sandbox/xint/libs/xint/doc/random__by__size_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/randomgen_8hpp.html | 10
   sandbox/xint/libs/xint/doc/randomgen_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/rationale.html | 10
   sandbox/xint/libs/xint/doc/rationale_8dox.html | 10
   sandbox/xint/libs/xint/doc/raw__integer_8hpp.html | 10
   sandbox/xint/libs/xint/doc/raw__integer_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/roots_8hpp.html | 10
   sandbox/xint/libs/xint/doc/roots_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/shift_8hpp.html | 10
   sandbox/xint/libs/xint/doc/shift_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/streams_8hpp.html | 10
   sandbox/xint/libs/xint/doc/streams_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1copy__on__write.html | 10
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength.html | 10
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__absolute.html | 12
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__allowed.html | 12
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__exception.html | 12
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__modulus.html | 12
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__not__allowed.html | 12
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__zero.html | 12
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow.html | 12
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure.html | 15
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe.html | 10
   sandbox/xint/libs/xint/doc/testing.html | 10
   sandbox/xint/libs/xint/doc/testing_8dox.html | 10
   sandbox/xint/libs/xint/doc/threadsafe.html | 10
   sandbox/xint/libs/xint/doc/threadsafe_8dox.html | 10
   sandbox/xint/libs/xint/doc/xint_8hpp.html | 10
   sandbox/xint/libs/xint/doc/xint_8hpp_source.html | 10
   sandbox/xint/libs/xint/doc/zero.html | 10
   sandbox/xint/libs/xint/doc/zero_8dox.html | 10
   sandbox/xint/libs/xint/test/test_bit_manipulations.cpp | 4
   sandbox/xint/libs/xint/test/test_convert.cpp | 3
   sandbox/xint/libs/xint/test/test_misc.cpp | 14
   sandbox/xint/libs/xint/test/test_nothrow.cpp | 9
   194 files changed, 2521 insertions(+), 2491 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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -34,12 +34,12 @@
 #include <string>
 #include <vector>
 #include <queue>
-#include <limits>
 #include <cstddef> // for std::size_t
 #include <cassert>
 #include <sstream>
 #include <fstream>
 #include <ctime>
+#include <boost/limits.hpp>
 #include <boost/integer.hpp>
 #include <boost/cstdint.hpp>
 #include <boost/function.hpp>
@@ -196,6 +196,8 @@
         copy_count(0), readonly(ro), max_length(max_len) { }
     magnitude_t(std::size_t max_len, bool ro, digit_t init): copy_count(0),
         readonly(ro), max_length(max_len) { digits[0] = init; }
+ magnitude_t& operator=(const magnitude_t&) { throw std::logic_error(
+ "Can't use operator= on magnitude_t"); } // Here to satisfy MSVC
     std::size_t copies() const { return copy_count; }
 
     void inc() { ++copy_count; }

Modified: sandbox/xint/boost/xint/detail/bitfunctions.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/bitfunctions.hpp (original)
+++ sandbox/xint/boost/xint/detail/bitfunctions.hpp 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -85,7 +85,7 @@
         digit_t *t = r.digits(r.max_length(), realloc::extend), *te = t +
             r.max_length();
         while (s != se) *t++ = ~(*s++);
- while (t != te) *t++ = ~0;
+ while (t != te) *t++ = ~digit_t(0);
         r.trim();
         return r;
     }

Modified: sandbox/xint/boost/xint/detail/convert.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/convert.hpp (original)
+++ sandbox/xint/boost/xint/detail/convert.hpp 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -256,12 +256,14 @@
     if (n < tmin || n > tmax) exception_handler<>::call(__FILE__, __LINE__,
         exceptions::too_big("value out of range for requested conversion"));
 
- T rval = 0, shift = T(digit_overflowbit);
+ // Workaround for MSVC8's C4309 warning, "truncation of constant value"
+ doubledigit_t shift_tmp = digit_overflowbit;
+ T rval = 0, shift = T(shift_tmp);
     for (std::size_t x = 0; x < n.length; ++x) {
         if (sizeof(T) > sizeof(digit_t)) rval *= shift;
         rval += static_cast<T>(n[n.length - x - 1]);
     }
- if (n.negative) rval *= -1;
+ if (n.negative) rval *= static_cast<T>(-1);
     return rval;
 }
 

Modified: sandbox/xint/boost/xint/detail/internals.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/internals.hpp (original)
+++ sandbox/xint/boost/xint/detail/internals.hpp 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -20,9 +20,6 @@
 #ifndef BOOST_INCLUDED_XINT_INTERNALS_HPP
 #define BOOST_INCLUDED_XINT_INTERNALS_HPP
 
-// Leave this commented out to use it as a header-only library.
-//#define BOOST_XINT_COMPILED_LIB
-
 #ifdef BOOST_XINT_NO_EXCEPTIONS
     #define BOOST_XINT_TRY if (1)
     #define BOOST_XINT_CATCH_BADALLOC else if (0)

Modified: sandbox/xint/boost/xint/detail/options.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/options.hpp (original)
+++ sandbox/xint/boost/xint/detail/options.hpp 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -50,7 +50,7 @@
     p_modulus,
     p_throw_exception, // or return Not-a-Number for nothrow types
     p_force_zero,
- p_force_absolute,
+ p_force_absolute
 };
 } // namespace detail
 #endif // BOOST_XINT_DOXYGEN_IGNORE
@@ -133,6 +133,12 @@
 
 If used, the library zeros out all memory before deallocating it, for maximum
 security. The default is not to do so, for maximum speed.
+
+\note
+This provides only one half of a truly secure solution. Depending on how your
+operating system handles virtual memory, numbers may be paged out to disk at any
+time. To ensure maximum security, combine it with an allocator that prevents its
+memory from being paged to disk under any circumstances.
 */
 struct secure: public secure_base, public boost::mpl::bool_<true> { };
 

Modified: sandbox/xint/boost/xint/integer.hpp
==============================================================================
--- sandbox/xint/boost/xint/integer.hpp (original)
+++ sandbox/xint/boost/xint/integer.hpp 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -1100,8 +1100,7 @@
 \returns A Not-a-Number value of the specified type.
 
 \note
-This function only exists on types whose \c nothrow template parameter is \c
-true.
+This function only exists on types with the \c nothrow template parameter.
 
 \see \ref nan
 */

Modified: sandbox/xint/boost/xint/random.hpp
==============================================================================
--- sandbox/xint/boost/xint/random.hpp (original)
+++ sandbox/xint/boost/xint/random.hpp 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -43,8 +43,8 @@
         static const bool has_fixed_range;
         static const result_type min_value;
         static const result_type max_value;
- result_type min() const;
- result_type max() const;
+ result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const;
+ result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const;
         double entropy() const;
 
         private:

Modified: sandbox/xint/dev-ms/XInt.vcproj
==============================================================================
--- sandbox/xint/dev-ms/XInt.vcproj (original)
+++ sandbox/xint/dev-ms/XInt.vcproj 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -45,7 +45,7 @@
                                 BasicRuntimeChecks="3"
                                 RuntimeLibrary="3"
                                 UsePrecompiledHeader="0"
- WarningLevel="3"
+ WarningLevel="4"
                                 Detect64BitPortabilityProblems="true"
                                 DebugInformationFormat="4"
                         />

Modified: sandbox/xint/dev/Docs.project
==============================================================================
--- sandbox/xint/dev/Docs.project (original)
+++ sandbox/xint/dev/Docs.project 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -39,6 +39,8 @@
     <File Name="../libs/xint/doc/dox/fixedlength.dox"/>
     <File Name="../../../../xint/libs/xint/doc/dox/r_whynotx.dox"/>
     <File Name="../libs/xint/doc/dox/no_exceptions.dox"/>
+ <File Name="../libs/xint/doc/dox/ex_simplest.dox"/>
+ <File Name="../libs/xint/doc/dox/footer.html"/>
   </VirtualDirectory>
   <VirtualDirectory Name="Project">
     <File Name="../libs/xint/doc/dox/Doxyfile"/>

Added: sandbox/xint/dev/Example-Rsa.project
==============================================================================
--- (empty file)
+++ sandbox/xint/dev/Example-Rsa.project 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeLite_Project Name="Example-Rsa" InternalType="Console">
+ <Description/>
+ <Dependencies/>
+ <Settings Type="Executable">
+ <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
+ <Compiler Options="-g" Required="yes" PreCompiledHeader="">
+ <IncludePath Value="."/>
+ </Compiler>
+ <Linker Options="" Required="yes"/>
+ <ResourceCompiler Options="" Required="no"/>
+ <General OutputFile="$(IntermediateDirectory)/$(ProjectName)" IntermediateDirectory="./Debug" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/>
+ <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="">
+ <PostConnectCommands/>
+ <StartupCommands/>
+ </Debugger>
+ <PreBuild/>
+ <PostBuild/>
+ <CustomBuild Enabled="no">
+ <RebuildCommand/>
+ <CleanCommand/>
+ <BuildCommand/>
+ <PreprocessFileCommand/>
+ <SingleFileCommand/>
+ <MakefileGenerationCommand/>
+ <ThirdPartyToolName>None</ThirdPartyToolName>
+ <WorkingDirectory/>
+ </CustomBuild>
+ <AdditionalRules>
+ <CustomPostBuild/>
+ <CustomPreBuild/>
+ </AdditionalRules>
+ </Configuration>
+ <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
+ <Compiler Options="" Required="yes" PreCompiledHeader="">
+ <IncludePath Value="."/>
+ </Compiler>
+ <Linker Options="-O2" Required="yes"/>
+ <ResourceCompiler Options="" Required="no"/>
+ <General OutputFile="$(IntermediateDirectory)/$(ProjectName)" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/>
+ <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="">
+ <PostConnectCommands/>
+ <StartupCommands/>
+ </Debugger>
+ <PreBuild/>
+ <PostBuild/>
+ <CustomBuild Enabled="no">
+ <RebuildCommand/>
+ <CleanCommand/>
+ <BuildCommand/>
+ <PreprocessFileCommand/>
+ <SingleFileCommand/>
+ <MakefileGenerationCommand/>
+ <ThirdPartyToolName>None</ThirdPartyToolName>
+ <WorkingDirectory/>
+ </CustomBuild>
+ <AdditionalRules>
+ <CustomPostBuild/>
+ <CustomPreBuild/>
+ </AdditionalRules>
+ </Configuration>
+ <GlobalSettings>
+ <Compiler Options="">
+ <IncludePath Value="."/>
+ <IncludePath Value="/home/chad/projects/xint"/>
+ </Compiler>
+ <Linker Options="">
+ <LibraryPath Value="."/>
+ </Linker>
+ <ResourceCompiler Options=""/>
+ </GlobalSettings>
+ </Settings>
+ <VirtualDirectory Name="src">
+ <File Name="../libs/xint/example/rsa.cpp"/>
+ </VirtualDirectory>
+</CodeLite_Project>

Added: sandbox/xint/dev/Example-Simplest.project
==============================================================================
--- (empty file)
+++ sandbox/xint/dev/Example-Simplest.project 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeLite_Project Name="Example-Simplest" InternalType="Console">
+ <Plugins>
+ <Plugin Name="qmake">
+ <![CDATA[00010001N0005Debug000000000000]]>
+ </Plugin>
+ </Plugins>
+ <Description/>
+ <Dependencies/>
+ <VirtualDirectory Name="src">
+ <File Name="../libs/xint/example/simplest.cpp"/>
+ </VirtualDirectory>
+ <Settings Type="Executable">
+ <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
+ <Compiler Options="-g" Required="yes" PreCompiledHeader="">
+ <IncludePath Value="."/>
+ </Compiler>
+ <Linker Options="" Required="yes"/>
+ <ResourceCompiler Options="" Required="no"/>
+ <General OutputFile="$(IntermediateDirectory)/$(ProjectName)" IntermediateDirectory="./Debug" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/>
+ <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="">
+ <PostConnectCommands/>
+ <StartupCommands/>
+ </Debugger>
+ <PreBuild/>
+ <PostBuild/>
+ <CustomBuild Enabled="no">
+ <RebuildCommand/>
+ <CleanCommand/>
+ <BuildCommand/>
+ <PreprocessFileCommand/>
+ <SingleFileCommand/>
+ <MakefileGenerationCommand/>
+ <ThirdPartyToolName>None</ThirdPartyToolName>
+ <WorkingDirectory/>
+ </CustomBuild>
+ <AdditionalRules>
+ <CustomPostBuild/>
+ <CustomPreBuild/>
+ </AdditionalRules>
+ </Configuration>
+ <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
+ <Compiler Options="" Required="yes" PreCompiledHeader="">
+ <IncludePath Value="."/>
+ </Compiler>
+ <Linker Options="-O2" Required="yes"/>
+ <ResourceCompiler Options="" Required="no"/>
+ <General OutputFile="$(IntermediateDirectory)/$(ProjectName)" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/>
+ <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="">
+ <PostConnectCommands/>
+ <StartupCommands/>
+ </Debugger>
+ <PreBuild/>
+ <PostBuild/>
+ <CustomBuild Enabled="no">
+ <RebuildCommand/>
+ <CleanCommand/>
+ <BuildCommand/>
+ <PreprocessFileCommand/>
+ <SingleFileCommand/>
+ <MakefileGenerationCommand/>
+ <ThirdPartyToolName>None</ThirdPartyToolName>
+ <WorkingDirectory/>
+ </CustomBuild>
+ <AdditionalRules>
+ <CustomPostBuild/>
+ <CustomPreBuild/>
+ </AdditionalRules>
+ </Configuration>
+ <GlobalSettings>
+ <Compiler Options="">
+ <IncludePath Value="."/>
+ <IncludePath Value="/home/chad/projects/xint"/>
+ </Compiler>
+ <Linker Options="">
+ <LibraryPath Value="."/>
+ </Linker>
+ <ResourceCompiler Options=""/>
+ </GlobalSettings>
+ </Settings>
+</CodeLite_Project>

Modified: sandbox/xint/dev/XInt.project
==============================================================================
--- sandbox/xint/dev/XInt.project (original)
+++ sandbox/xint/dev/XInt.project 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -45,9 +45,29 @@
       <File Name="../boost/xint/detail/streams.hpp"/>
     </VirtualDirectory>
   </VirtualDirectory>
+ <VirtualDirectory Name="test">
+ <File Name="../libs/xint/test/test_add.cpp"/>
+ <File Name="../libs/xint/test/test_bit_manipulations.cpp"/>
+ <File Name="../libs/xint/test/test_compare.cpp"/>
+ <File Name="../libs/xint/test/test_convert.cpp"/>
+ <File Name="../libs/xint/test/test_divide.cpp"/>
+ <File Name="../libs/xint/test/test_fixed.cpp"/>
+ <File Name="../libs/xint/test/test_main.cpp"/>
+ <File Name="../libs/xint/test/test_misc.cpp"/>
+ <File Name="../libs/xint/test/test_modular.cpp"/>
+ <File Name="../libs/xint/test/test_monty.cpp"/>
+ <File Name="../libs/xint/test/test_multiply.cpp"/>
+ <File Name="../libs/xint/test/test_nothrow.cpp"/>
+ <File Name="../libs/xint/test/test_powers.cpp"/>
+ <File Name="../libs/xint/test/test_streams.cpp"/>
+ </VirtualDirectory>
+ <Dependencies Name="Debug"/>
+ <Dependencies Name="Debug, Header Only"/>
+ <Dependencies Name="Release"/>
+ <Dependencies Name="Release, Header Only"/>
   <Settings Type="Executable">
     <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
- <Compiler Options="-g;-Wall" Required="yes" PreCompiledHeader="/home/chad/projects/xint/boost/xint/integer.hpp">
+ <Compiler Options="-g;-pedantic;-Wall" Required="yes" PreCompiledHeader="/home/chad/projects/xint/boost/xint/integer.hpp">
         <IncludePath Value="."/>
         <Preprocessor Value="BOOST_XINT_SINGLE_TEST_PROGRAM"/>
         <Preprocessor Value="BOOST_TEST_DYN_LINK"/>
@@ -180,24 +200,4 @@
       <ResourceCompiler Options=""/>
     </GlobalSettings>
   </Settings>
- <VirtualDirectory Name="test">
- <File Name="../libs/xint/test/test_add.cpp"/>
- <File Name="../libs/xint/test/test_bit_manipulations.cpp"/>
- <File Name="../libs/xint/test/test_compare.cpp"/>
- <File Name="../libs/xint/test/test_convert.cpp"/>
- <File Name="../libs/xint/test/test_divide.cpp"/>
- <File Name="../libs/xint/test/test_fixed.cpp"/>
- <File Name="../libs/xint/test/test_main.cpp"/>
- <File Name="../libs/xint/test/test_misc.cpp"/>
- <File Name="../libs/xint/test/test_modular.cpp"/>
- <File Name="../libs/xint/test/test_monty.cpp"/>
- <File Name="../libs/xint/test/test_multiply.cpp"/>
- <File Name="../libs/xint/test/test_nothrow.cpp"/>
- <File Name="../libs/xint/test/test_powers.cpp"/>
- <File Name="../libs/xint/test/test_streams.cpp"/>
- </VirtualDirectory>
- <Dependencies Name="Debug"/>
- <Dependencies Name="Debug, Header Only"/>
- <Dependencies Name="Release"/>
- <Dependencies Name="Release, Header Only"/>
 </CodeLite_Project>

Modified: sandbox/xint/dev/XInt.workspace
==============================================================================
--- sandbox/xint/dev/XInt.workspace (original)
+++ sandbox/xint/dev/XInt.workspace 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -5,6 +5,8 @@
   <Project Name="Example-Exceptions" Path="Example-Exceptions.project"/>
   <Project Name="Example-Fibonacci" Path="Example-Fibonacci.project" Active="No"/>
   <Project Name="Example-GenPrime" Path="Example-GenPrime.project" Active="No"/>
+ <Project Name="Example-Simplest" Path="Example-Simplest.project"/>
+ <Project Name="Example-Rsa" Path="Example-Rsa.project" Active="No"/>
   <BuildMatrix>
     <WorkspaceConfiguration Name="Debug" Selected="yes">
       <Project Name="XInt" ConfigName="Debug"/>
@@ -18,6 +20,8 @@
       <Project Name="Example-Exceptions" ConfigName="Debug"/>
       <Project Name="Example-Fibonacci" ConfigName="Debug"/>
       <Project Name="Example-GenPrime" ConfigName="Debug"/>
+ <Project Name="Example-Simplest" ConfigName="Debug"/>
+ <Project Name="Example-Rsa" ConfigName="Debug"/>
     </WorkspaceConfiguration>
     <WorkspaceConfiguration Name="Release" Selected="yes">
       <Project Name="XInt" ConfigName="Release"/>
@@ -31,6 +35,8 @@
       <Project Name="Example-Exceptions" ConfigName="Release"/>
       <Project Name="Example-Fibonacci" ConfigName="Release"/>
       <Project Name="Example-GenPrime" ConfigName="Release"/>
+ <Project Name="Example-Simplest" ConfigName="Release"/>
+ <Project Name="Example-Rsa" ConfigName="Release"/>
     </WorkspaceConfiguration>
     <WorkspaceConfiguration Name="Debug, Header Only" Selected="yes">
       <Project Name="XInt" ConfigName="Debug, Header Only"/>
@@ -44,6 +50,8 @@
       <Project Name="Example-Exceptions" ConfigName="Debug"/>
       <Project Name="Example-Fibonacci" ConfigName="Debug"/>
       <Project Name="Example-GenPrime" ConfigName="Debug"/>
+ <Project Name="Example-Simplest" ConfigName="Debug"/>
+ <Project Name="Example-Rsa" ConfigName="Debug"/>
     </WorkspaceConfiguration>
     <WorkspaceConfiguration Name="Release, Header Only" Selected="yes">
       <Project Name="XInt" ConfigName="Release, Header Only"/>
@@ -57,6 +65,8 @@
       <Project Name="Example-Exceptions" ConfigName="Debug"/>
       <Project Name="Example-Fibonacci" ConfigName="Debug"/>
       <Project Name="Example-GenPrime" ConfigName="Debug"/>
+ <Project Name="Example-Simplest" ConfigName="Debug"/>
+ <Project Name="Example-Rsa" ConfigName="Debug"/>
     </WorkspaceConfiguration>
   </BuildMatrix>
 </CodeLite_Workspace>

Modified: sandbox/xint/libs/xint/doc/acknowledgements.html
==============================================================================
--- sandbox/xint/libs/xint/doc/acknowledgements.html (original)
+++ sandbox/xint/libs/xint/doc/acknowledgements.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -71,8 +71,8 @@
 </ul>
 <p>If I've forgotten anyone, please let me know and I'll correct the oversight. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/acknowledgements.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="addsubtract_8hpp_source.html">addsubtract.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -242,8 +242,8 @@
 <a name="l00225"></a>00225 <span class="comment"></span>
 <a name="l00226"></a>00226 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_ADDSUBTRACT_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="andorxor_8hpp_source.html">andorxor.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -117,8 +117,8 @@
 <a name="l00100"></a>00100 <span class="comment"></span>
 <a name="l00101"></a>00101 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_ANDORXOR_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/annotated.html
==============================================================================
--- sandbox/xint/libs/xint/doc/annotated.html (original)
+++ sandbox/xint/libs/xint/doc/annotated.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -53,8 +53,8 @@
   <tr><td class="indexkey"><a class="el" href="classdisable__boost__rv__ref.html">disable_boost_rv_ref&lt; T &gt;</a></td><td class="indexvalue"></td></tr>
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -183,8 +183,8 @@
 </div>
 </div>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -53,12 +53,12 @@
 <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="l00037"></a>00037 <span class="preprocessor">#include &lt;cstddef&gt;</span> <span class="comment">// for std::size_t</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;cassert&gt;</span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;sstream&gt;</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;fstream&gt;</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;ctime&gt;</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;boost/limits.hpp&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>
@@ -177,23 +177,25 @@
 <a name="l00196"></a>00196 copy_count(0), readonly(ro), max_length(max_len) { }
 <a name="l00197"></a>00197 magnitude_t(std::size_t max_len, <span class="keywordtype">bool</span> ro, digit_t init): copy_count(0),
 <a name="l00198"></a>00198 readonly(ro), max_length(max_len) { digits[0] = init; }
-<a name="l00199"></a>00199 std::size_t copies()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> copy_count; }
-<a name="l00200"></a>00200
-<a name="l00201"></a>00201 <span class="keywordtype">void</span> inc() { ++copy_count; }
-<a name="l00202"></a>00202 <span class="keywordtype">bool</span> dec() { <span class="keywordflow">return</span> (--copy_count == 0); }
-<a name="l00203"></a>00203 };
-<a name="l00204"></a>00204
-<a name="l00205"></a>00205 <span class="keyword">inline</span> std::size_t bits_to_digits(std::size_t bits) { <span class="keywordflow">return</span> (bits +
-<a name="l00206"></a>00206 bits_per_digit - 1) / bits_per_digit; }
-<a name="l00207"></a>00207
-<a name="l00209"></a>00209 } <span class="comment">// namespace detail</span>
-<a name="l00210"></a>00210 } <span class="comment">// namespace xint</span>
-<a name="l00211"></a>00211 } <span class="comment">// namespace boost</span>
-<a name="l00212"></a>00212
-<a name="l00213"></a>00213 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_BASIC_TYPES_HPP</span>
+<a name="l00199"></a>00199 magnitude_t&amp; operator=(<span class="keyword">const</span> magnitude_t&amp;) { <span class="keywordflow">throw</span> std::logic_error(
+<a name="l00200"></a>00200 <span class="stringliteral">&quot;Can&#39;t use operator= on magnitude_t&quot;</span>); } <span class="comment">// Here to satisfy MSVC</span>
+<a name="l00201"></a>00201 std::size_t copies()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> copy_count; }
+<a name="l00202"></a>00202
+<a name="l00203"></a>00203 <span class="keywordtype">void</span> inc() { ++copy_count; }
+<a name="l00204"></a>00204 <span class="keywordtype">bool</span> dec() { <span class="keywordflow">return</span> (--copy_count == 0); }
+<a name="l00205"></a>00205 };
+<a name="l00206"></a>00206
+<a name="l00207"></a>00207 <span class="keyword">inline</span> std::size_t bits_to_digits(std::size_t bits) { <span class="keywordflow">return</span> (bits +
+<a name="l00208"></a>00208 bits_per_digit - 1) / bits_per_digit; }
+<a name="l00209"></a>00209
+<a name="l00211"></a>00211 } <span class="comment">// namespace detail</span>
+<a name="l00212"></a>00212 } <span class="comment">// namespace xint</span>
+<a name="l00213"></a>00213 } <span class="comment">// namespace boost</span>
+<a name="l00214"></a>00214
+<a name="l00215"></a>00215 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_BASIC_TYPES_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="bitfunctions_8hpp_source.html">bitfunctions.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -103,7 +103,7 @@
 <a name="l00085"></a>00085 digit_t *t = r.digits(r.max_length(), realloc::extend), *te = t +
 <a name="l00086"></a>00086 r.max_length();
 <a name="l00087"></a>00087 <span class="keywordflow">while</span> (s != se) *t++ = ~(*s++);
-<a name="l00088"></a>00088 <span class="keywordflow">while</span> (t != te) *t++ = ~0;
+<a name="l00088"></a>00088 <span class="keywordflow">while</span> (t != te) *t++ = ~digit_t(0);
 <a name="l00089"></a>00089 r.trim();
 <a name="l00090"></a>00090 <span class="keywordflow">return</span> r;
 <a name="l00091"></a>00091 }
@@ -115,8 +115,8 @@
 <a name="l00098"></a>00098 <span class="comment"></span>
 <a name="l00099"></a>00099 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_BITFUNCTIONS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="bitqueue_8hpp_source.html">bitqueue.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -106,8 +106,8 @@
 <a name="l00090"></a>00090 <span class="comment"></span>
 <a name="l00091"></a>00091 <span class="preprocessor">#endif // BOOST_XINT_INCLUDED_BITQUEUET_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -35,8 +35,8 @@
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a></td><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t&lt; T &gt;</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a></td><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t&lt; T &gt;</a></td><td></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -232,8 +232,8 @@
 <li>detail/<a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>boost::xint::default_random_generator Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1default__random__generator.html">boost::xint::default_random_generator</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1default__random__generator.html#a4289636c47258469b78703ae791812f6">default_random_generator</a>()</td><td><a class="el" href="classboost_1_1xint_1_1default__random__generator.html">boost::xint::default_random_generator</a></td><td><code> [inline]</code></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -70,8 +70,8 @@
 <li><a class="el" href="random_8hpp_source.html">random.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>boost::xint::exceptions::cannot_represent Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html">boost::xint::exceptions::cannot_represent</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html#a0968d8ac61c24529816bcaf69d155b75">cannot_represent</a>(const std::string &amp;what=&quot;cannot represent the requested value&quot;)</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html">boost::xint::exceptions::cannot_represent</a></td><td><code> [inline]</code></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -64,8 +64,8 @@
 <li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>boost::xint::exceptions::divide_by_zero Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">boost::xint::exceptions::divide_by_zero</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html#aaff4d720e4a134315acde919ff06e640">divide_by_zero</a>(const std::string &amp;what=&quot;divide by zero error&quot;)</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">boost::xint::exceptions::divide_by_zero</a></td><td><code> [inline]</code></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -64,8 +64,8 @@
 <li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>boost::xint::exceptions::invalid_argument Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">boost::xint::exceptions::invalid_argument</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html#a8ba3e56172de34c772b287ce8e325f32">invalid_argument</a>(const std::string &amp;what=&quot;invalid argument&quot;)</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">boost::xint::exceptions::invalid_argument</a></td><td><code> [inline]</code></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -64,8 +64,8 @@
 <li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>boost::xint::exceptions::invalid_base Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">boost::xint::exceptions::invalid_base</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html#a4647071020547bd103ee885bec7edffa">invalid_base</a>(const std::string &amp;what=&quot;invalid base&quot;)</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">boost::xint::exceptions::invalid_base</a></td><td><code> [inline]</code></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -64,8 +64,8 @@
 <li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>boost::xint::exceptions::invalid_digit Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html">boost::xint::exceptions::invalid_digit</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html#abcdf43b30c3910dde89e406ca802eacc">invalid_digit</a>(const std::string &amp;what=&quot;invalid digit&quot;)</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html">boost::xint::exceptions::invalid_digit</a></td><td><code> [inline]</code></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -64,8 +64,8 @@
 <li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>boost::xint::exceptions::invalid_modulus Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html">boost::xint::exceptions::invalid_modulus</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html#a16c06e28a7f483b0ca2fb5906d53278d">invalid_modulus</a>(const std::string &amp;what=&quot;invalid modulus&quot;)</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html">boost::xint::exceptions::invalid_modulus</a></td><td><code> [inline]</code></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -64,8 +64,8 @@
 <li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>boost::xint::exceptions::no_strong_random Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">boost::xint::exceptions::no_strong_random</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html#ab225c7d5d10a03eac6d5e9c784135675">no_strong_random</a>(const std::string &amp;what=&quot;system does not have a strong random generator&quot;)</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">boost::xint::exceptions::no_strong_random</a></td><td><code> [inline]</code></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -65,8 +65,8 @@
 <li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>boost::xint::exceptions::not_a_number Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">boost::xint::exceptions::not_a_number</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html#aa47b024550fd673bd497e0875443c67f">not_a_number</a>(const std::string &amp;what=&quot;attempted to use a Not-a-Number&quot;)</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">boost::xint::exceptions::not_a_number</a></td><td><code> [inline]</code></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -64,8 +64,8 @@
 <li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>boost::xint::exceptions::overflow_error Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">boost::xint::exceptions::overflow_error</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html#a767d8fbe5816d77fa0aadf9481d0bd5a">overflow_error</a>(const std::string &amp;what=&quot;overflow error: can't obtain enough memory to represent the requested number&quot;)</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">boost::xint::exceptions::overflow_error</a></td><td><code> [inline]</code></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -65,8 +65,8 @@
 <li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>boost::xint::exceptions::too_big Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">boost::xint::exceptions::too_big</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html#a111e2c1a759054d80afcd5fa4af2995c">too_big</a>(const std::string &amp;what=&quot;value out of range for requested conversion&quot;)</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">boost::xint::exceptions::too_big</a></td><td><code> [inline]</code></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -64,8 +64,8 @@
 <li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -72,8 +72,8 @@
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947">random_prime</a>(Type &amp;gen, bitsize_t size_in_bits, callback_t callback=no_callback)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t&lt;&gt;</a></td><td><code> [inline, static]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#aa278c48753019fe3deaa623eecdb16b3">sign</a>(bool signed_zero=false) const </td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t&lt;&gt;</a></td><td><code> [inline]</code></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -723,7 +723,7 @@
 <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>This function only exists on types whose <code>nothrow</code> template parameter is <code>true</code>.</dd></dl>
+<dl class="note"><dt><b>Note:</b></dt><dd>This function only exists on types with the <code>nothrow</code> template parameter.</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>
 
 </div>
@@ -1434,7 +1434,7 @@
 <dl class="return"><dt><b>Returns:</b></dt><dd>A random integer with the requested attributes.</dd></dl>
 <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="random.html">The XInt Random Number System</a> </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01135">1135</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>
@@ -1496,7 +1496,7 @@
 <dl class="user"><dt><b></b></dt><dd>See the <a class="el" href="random.html">Random Number Functions page</a> for details on how to get cryptographically-secure random numbers.</dd></dl>
 <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="primes.html">Generating Prime Numbers</a> </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01182">1182</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>
@@ -1538,8 +1538,8 @@
 <li><a class="el" href="integer_8hpp_source.html">integer.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -37,8 +37,8 @@
 <li>detail/<a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/classes.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classes.html (original)
+++ sandbox/xint/libs/xint/doc/classes.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 </td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structboost_1_1xint_1_1options_1_1negative__allowed.html">negative_allowed</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structboost_1_1xint_1_1options_1_1nothrow.html">nothrow</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">too_big</a> (<a class="el" href="namespaceboost_1_1xint_1_1exceptions.html">boost::xint::exceptions</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classboost_1_1xint_1_1default__random__generator.html">default_random_generator</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1
xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a> (<a class="el" href="namespaceboost_1_1xint_1_1exceptions.html">boost::xint::exceptions</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structboost_1_1xint_1_1options_1_1negative__exception.html">negative_exception</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_O"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;O&nbsp;&nbsp;</div></td></tr></table>
 </td></tr></table><div class="qindex"><a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_F">F</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_N">N</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_O">O</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_T">T</a></div>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="compare_8hpp_source.html">compare.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -122,8 +122,8 @@
 <a name="l00108"></a>00108 <span class="comment"></span>
 <a name="l00109"></a>00109 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_COMPARE_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/complexity.html
==============================================================================
--- sandbox/xint/libs/xint/doc/complexity.html (original)
+++ sandbox/xint/libs/xint/doc/complexity.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -26,8 +26,8 @@
 <h1><a class="anchor" id="complexity">A Note on Algorithmic Complexity </a></h1><p>This documentation includes a time-complexity estimate, in big-O notation, for each algorithm. The <code>n</code> in the complexity estimates is roughly the number of bits in the parameter(s). (More accurately, it's the number of <code>digit_t</code> values needed to hold those bits.) For those algorithms where the complexity calculation differs for different parameters, the parameter is noted as a subscript.</p>
 <p>The time complexity is well-known for some algorithms, but for others, I had to make an educated guess. If you discover an error in the listed complexity, please report it. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/complexity.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="convert_8hpp_source.html">convert.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -274,23 +274,25 @@
 <a name="l00256"></a>00256 <span class="keywordflow">if</span> (n &lt; tmin || n &gt; tmax) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
 <a name="l00257"></a>00257 exceptions::too_big(<span class="stringliteral">&quot;value out of range for requested conversion&quot;</span>));
 <a name="l00258"></a>00258
-<a name="l00259"></a>00259 T rval = 0, shift = T(digit_overflowbit);
-<a name="l00260"></a>00260 <span class="keywordflow">for</span> (std::size_t x = 0; x &lt; n.length; ++x) {
-<a name="l00261"></a>00261 <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(T) &gt; <span class="keyword">sizeof</span>(digit_t)) rval *= shift;
-<a name="l00262"></a>00262 rval += <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(n[n.length - x - 1]);
-<a name="l00263"></a>00263 }
-<a name="l00264"></a>00264 <span class="keywordflow">if</span> (n.negative) rval *= -1;
-<a name="l00265"></a>00265 <span class="keywordflow">return</span> rval;
-<a name="l00266"></a>00266 }
-<a name="l00267"></a>00267
-<a name="l00268"></a>00268 } <span class="comment">// namespace detail</span>
-<a name="l00269"></a>00269 } <span class="comment">// namespace xint</span>
-<a name="l00270"></a>00270 } <span class="comment">// namespace boost</span>
-<a name="l00272"></a>00272 <span class="comment"></span>
-<a name="l00273"></a>00273 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_CONVERT_HPP</span>
+<a name="l00259"></a>00259 <span class="comment">// Workaround for MSVC8&#39;s C4309 warning, &quot;truncation of constant value&quot;</span>
+<a name="l00260"></a>00260 doubledigit_t shift_tmp = digit_overflowbit;
+<a name="l00261"></a>00261 T rval = 0, shift = T(shift_tmp);
+<a name="l00262"></a>00262 <span class="keywordflow">for</span> (std::size_t x = 0; x &lt; n.length; ++x) {
+<a name="l00263"></a>00263 <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(T) &gt; <span class="keyword">sizeof</span>(digit_t)) rval *= shift;
+<a name="l00264"></a>00264 rval += <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(n[n.length - x - 1]);
+<a name="l00265"></a>00265 }
+<a name="l00266"></a>00266 <span class="keywordflow">if</span> (n.negative) rval *= <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(-1);
+<a name="l00267"></a>00267 <span class="keywordflow">return</span> rval;
+<a name="l00268"></a>00268 }
+<a name="l00269"></a>00269
+<a name="l00270"></a>00270 } <span class="comment">// namespace detail</span>
+<a name="l00271"></a>00271 } <span class="comment">// namespace xint</span>
+<a name="l00272"></a>00272 } <span class="comment">// namespace boost</span>
+<a name="l00274"></a>00274 <span class="comment"></span>
+<a name="l00275"></a>00275 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_CONVERT_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/copyonwrite.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/cow.html
==============================================================================
--- sandbox/xint/libs/xint/doc/cow.html (original)
+++ sandbox/xint/libs/xint/doc/cow.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -27,8 +27,8 @@
 <p>To increase the speed of the library further, it uses a copy-on-write system internally. That means that if the internal functions copy an integer object, the copy and the original share the same storage. They are only assigned separate storage when one of them is changed. This mechanism makes copying a number (explicitly, by returning it, or by using it as a non-reference parameter to a function) very fast, regardless of its size.</p>
 <p>Unfortunately, copy-on-write isn't compatible with thread-safe operation, so by default the library will ensure that all of its objects have unique storage before they are returned to your program. If you want maximum speed, and can ensure that integer objects are only used in the threads they are created in, you can disable this by using the <code>options::copy_on_write</code> option on the <code>integer_t</code> class template. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/dependencies.html
==============================================================================
--- sandbox/xint/libs/xint/doc/dependencies.html (original)
+++ sandbox/xint/libs/xint/doc/dependencies.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -36,8 +36,8 @@
 </ul>
 <p>All of these are header-only libraries, meaning that you don't need to worry about linking your program with them. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/dependencies.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="divide_8hpp_source.html">divide.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -235,8 +235,8 @@
 <a name="l00224"></a>00224 <span class="comment"></span>
 <a name="l00225"></a>00225 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_DIVIDE_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/dox/Doxyfile
==============================================================================
--- sandbox/xint/libs/xint/doc/dox/Doxyfile (original)
+++ sandbox/xint/libs/xint/doc/dox/Doxyfile 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -834,7 +834,7 @@
 # each generated HTML page. If it is left blank doxygen will generate a
 # standard footer.
 
-HTML_FOOTER =
+HTML_FOOTER = footer.html
 
 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading
 # style sheet that is used by each HTML page. It can be used to

Added: sandbox/xint/libs/xint/doc/dox/ex_rsa.dox
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/dox/ex_rsa.dox 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -0,0 +1,13 @@
+/*! \page ex_rsa RSA Encryption
+
+Here is an RSA encryption example. It uses unsigned, fixed-length integers with
+the "secure" option.
+
+Please note that this example, while fairly complete, is minimal. It does not
+include signing or verification of signatures, and does nothing to prevent a
+known attack method (the "low encryption exponent" attack).
+
+You can find this example as the file \c rsa.cpp in the \c example directory.
+
+\include rsa.cpp
+*/

Added: sandbox/xint/libs/xint/doc/dox/ex_simplest.dox
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/dox/ex_simplest.dox 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -0,0 +1,9 @@
+/*! \page ex_simplest A Very Simple Example
+
+Here is a very simple example of how to use the library, which you can find as
+the file \c simplest.cpp in the \c example directory:
+
+\include simplest.cpp
+
+The numbers can get a \e lot larger than that too, without any problem.
+*/

Added: sandbox/xint/libs/xint/doc/dox/footer.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/dox/footer.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -0,0 +1,5 @@
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=
http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -54,6 +54,11 @@
 
 More information on how to use it can be found on the pages listed below.
 
+Stand-Alone Examples:
+- \subpage ex_simplest
+- \subpage ex_fibonacci
+- \subpage ex_rsa
+
 Detailed Usage Information:
 - \subpage fixedlength_type
 - \subpage nan
@@ -72,9 +77,6 @@
 - \subpage rationale
 - \subpage acknowledgements
 - \subpage history
-
-Stand-Alone Examples:
-- \subpage ex_fibonacci
 */
 
 // TODO: Add if/when accepted

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -64,8 +64,8 @@
 </pre></div><p>If you're not intimately familiar with the Fibonacci sequence, and how fast the numbers in it grow, the answer might shock you.</p>
 <p>As you can see, using the XInt library is just like using the native integer types -- except that an <code>xint::integer</code> won't overflow on you until you completely exhaust your system's memory. :-) </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/ex_fibonacci.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Added: sandbox/xint/libs/xint/doc/ex__rsa.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/ex__rsa.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -0,0 +1,315 @@
+<!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: RSA Encryption</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="ex_rsa">RSA Encryption </a></h1><p>Here is an RSA encryption example. It uses unsigned, fixed-length integers with the "secure" option.</p>
+<p>Please note that this example, while fairly complete, is minimal. It does not include signing or verification of signatures, and does nothing to prevent a known attack method (the "low encryption exponent" attack).</p>
+<p>You can find this example as the file <code>rsa.cpp</code> in the <code>example</code> directory.</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;iostream&gt;</span>
+<span class="preprocessor">#include &lt;string&gt;</span>
+<span class="preprocessor">#include &lt;sstream&gt;</span>
+<span class="preprocessor">#include &lt;fstream&gt;</span>
+<span class="preprocessor">#include &lt;boost/limits.hpp&gt;</span>
+<span class="preprocessor">#include &lt;boost/integer.hpp&gt;</span>
+<span class="preprocessor">#include &lt;<a class="code" href="integer_8hpp.html" title="Declares the arbitrary-length integer type.">boost/xint/integer.hpp</a>&gt;</span>
+<span class="preprocessor">#include &lt;boost/static_assert.hpp&gt;</span>
+
+<span class="keyword">namespace </span>xopt = boost::xint::options;
+<span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">boost::xint::callback_t</a>;
+<span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696" title="An empty callback_t, used as a default parameter for some functions.">boost::xint::no_callback</a>;
+
+<span class="keyword">static</span> <span class="keyword">const</span> std::size_t cbits = std::numeric_limits&lt;char&gt;::digits;
+
+<span class="keyword">template</span> &lt;std::<span class="keywordtype">size_t</span> Bits&gt;
+<span class="keyword">class </span>Rsa {
+ <span class="keyword">public</span>:
+ <span class="comment">// We&#39;re going to use a fixed-length type for this example, primarily to</span>
+ <span class="comment">// show how they would be used. The calculations require intermediate</span>
+ <span class="comment">// results that are between two and three times the bit-size of the number</span>
+ <span class="comment">// though. We&#39;ll also make it unsigned, and use secure mode to reduce the</span>
+ <span class="comment">// chance that the key data gets written to disk anywhere.</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;xopt::fixedlength&lt;Bits * 3&gt;</a>,
+ xopt::secure, xopt::negative_modulus&gt; KeyNumber;
+
+ <span class="comment">// We also need the smallest type that can hold a Bits-length number of</span>
+ <span class="comment">// characters.</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> boost::uint_value_t&lt;(Bits + cbits - 1) / cbits&gt;::least
+ SizeT;
+
+ <span class="comment">// There must be at least enough bits to handle one character and a SizeT.</span>
+ BOOST_STATIC_ASSERT(Bits &gt; ((<span class="keyword">sizeof</span>(SizeT) + 1) * cbits));
+
+ <span class="comment">// The number of bits needs to be even.</span>
+ BOOST_STATIC_ASSERT((Bits &amp; 0x01) == 0);
+
+ Rsa(<span class="keyword">const</span> std::string keys);
+
+ std::string publickey() <span class="keyword">const</span>;
+ std::string privatekey() <span class="keyword">const</span>;
+
+ std::string encrypt(<span class="keyword">const</span> std::string data) <span class="keyword">const</span>;
+ std::string decrypt(<span class="keyword">const</span> std::string data) <span class="keyword">const</span>;
+
+ <span class="keyword">static</span> Rsa generate(<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>);
+
+ <span class="keyword">private</span>:
+ <span class="keyword">static</span> std::size_t calculate_blocksize(KeyNumber n);
+
+ Rsa(<span class="keyword">const</span> KeyNumber _n, <span class="keyword">const</span> KeyNumber _d, <span class="keyword">const</span> KeyNumber _e): n(_n),
+ d(_d), e(_e) { blocksize = calculate_blocksize(n); };
+
+ std::string number_to_binary_string(<span class="keyword">const</span> KeyNumber num) <span class="keyword">const</span>;
+ KeyNumber binary_string_to_number(<span class="keyword">const</span> std::string s) <span class="keyword">const</span>;
+
+ KeyNumber n, d, e;
+ std::size_t blocksize;
+};
+
+<span class="keyword">template</span> &lt;std::<span class="keywordtype">size_t</span> Bits&gt;
+std::size_t Rsa&lt;Bits&gt;::calculate_blocksize(KeyNumber n) {
+ <span class="comment">// Round the size of n (in bits) down to the next lower multiple of the</span>
+ <span class="comment">// number of bits in a character. That&#39;s how many characters we can fit into</span>
+ <span class="comment">// a single block, for encryption purposes.</span>
+ std::size_t size_in_bits = <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(n) - 1;
+ <span class="keywordflow">return</span> (size_in_bits + cbits - 1) / cbits;
+}
+
+<span class="keyword">template</span> &lt;std::<span class="keywordtype">size_t</span> Bits&gt;
+std::string Rsa&lt;Bits&gt;::number_to_binary_string(<span class="keyword">const</span> KeyNumber num)<span class="keyword"> const </span>{
+ <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">boost::xint::binary_t</a> b = <a class="code" href="namespaceboost_1_1xint.html#a36d0321bee2aade461e0f504400c7c1b" title="Creates a binary representation of an integer.">to_binary</a>(num);
+ std::string s;
+ std::copy(b.begin(), b.end(), std::back_inserter(s));
+ <span class="keywordflow">return</span> s;
+}
+
+<span class="keyword">template</span> &lt;std::<span class="keywordtype">size_t</span> Bits&gt;
+<span class="keyword">typename</span> Rsa&lt;Bits&gt;::KeyNumber Rsa&lt;Bits&gt;::binary_string_to_number(<span class="keyword">const</span>
+ std::string s)<span class="keyword"> const</span>
+<span class="keyword"></span>{
+ <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">boost::xint::binary_t</a> b;
+ std::copy(s.begin(), s.end(), std::back_inserter(b));
+ <span class="keywordflow">return</span> KeyNumber(b);
+}
+
+<span class="keyword">template</span> &lt;std::<span class="keywordtype">size_t</span> Bits&gt;
+Rsa&lt;Bits&gt;::Rsa(<span class="keyword">const</span> std::string keys) {
+ <span class="comment">// Make sure it&#39;s a proper key, by checking the signature.</span>
+ <span class="keywordtype">bool</span> goodkey = <span class="keyword">true</span>;
+ <span class="keywordflow">if</span> (keys.substr(0, 4) == <span class="stringliteral">&quot;{RSA&quot;</span>) {
+ std::istringstream str(keys.substr(4));
+ std::size_t recordedbits = 0;
+ <span class="keywordtype">char</span> c1 = 0, c2 = 0, c3 = 0, c4 = 0;
+ str &gt;&gt; recordedbits &gt;&gt; c1 &gt;&gt; e &gt;&gt; c2 &gt;&gt; n &gt;&gt; c3;
+ <span class="keywordflow">if</span> (c1 == <span class="charliteral">&#39;,&#39;</span> &amp;&amp; c2 == <span class="charliteral">&#39;,&#39;</span>) {
+ <span class="keywordflow">if</span> (c3 == <span class="charliteral">&#39;,&#39;</span>) {
+ <span class="comment">// It&#39;s a private key, including the decryption key.</span>
+ str &gt;&gt; d &gt;&gt; c4;
+ <span class="keywordflow">if</span> (c4 != <span class="charliteral">&#39;}&#39;</span>) goodkey = <span class="keyword">false</span>;
+ } <span class="keywordflow">else</span> {
+ <span class="comment">// It&#39;s a public key, no decryption key is included.</span>
+ <span class="keywordflow">if</span> (c3 != <span class="charliteral">&#39;}&#39;</span>) goodkey = <span class="keyword">false</span>;
+ }
+ } <span class="keywordflow">else</span> goodkey = <span class="keyword">false</span>;
+
+ <span class="comment">// Make sure it&#39;s the right size</span>
+ <span class="keywordflow">if</span> (goodkey &amp;&amp; recordedbits != Bits)
+ <span class="keywordflow">throw</span> std::out_of_range(<span class="stringliteral">&quot;Wrong number of bits&quot;</span>);
+ } <span class="keywordflow">else</span> goodkey = <span class="keyword">false</span>;
+
+ <span class="keywordflow">if</span> (!goodkey) <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;Not a valid key&quot;</span>);
+ blocksize = calculate_blocksize(n);
+}
+
+<span class="keyword">template</span> &lt;std::<span class="keywordtype">size_t</span> Bits&gt;
+std::string Rsa&lt;Bits&gt;::publickey()<span class="keyword"> const </span>{
+ std::ostringstream str;
+ str &lt;&lt; <span class="stringliteral">&quot;{RSA&quot;</span> &lt;&lt; Bits &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; e &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; n &lt;&lt; <span class="charliteral">&#39;}&#39;</span>;
+ <span class="keywordflow">return</span> str.str();
+}
+
+<span class="keyword">template</span> &lt;std::<span class="keywordtype">size_t</span> Bits&gt;
+std::string Rsa&lt;Bits&gt;::privatekey()<span class="keyword"> const </span>{
+ std::ostringstream str;
+ str &lt;&lt; <span class="stringliteral">&quot;{RSA&quot;</span> &lt;&lt; Bits &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; e &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; n &lt;&lt; <span class="charliteral">&#39;,&#39;</span> &lt;&lt; d &lt;&lt; <span class="charliteral">&#39;}&#39;</span>;
+ <span class="keywordflow">return</span> str.str();
+}
+
+<span class="keyword">template</span> &lt;std::<span class="keywordtype">size_t</span> Bits&gt;
+std::string Rsa&lt;Bits&gt;::encrypt(<span class="keyword">const</span> std::string data)<span class="keyword"> const </span>{
+ <span class="comment">// A proper implementation would pad the message with additional random</span>
+ <span class="comment">// data, to avoid the low encryption exponent attack. This example</span>
+ <span class="comment">// implementation does not.</span>
+
+ <span class="comment">// The message may contain up to (blocksize - 1) extra bytes when it&#39;s</span>
+ <span class="comment">// decrypted. Prepend a SizeT with the number of bytes to remove from the</span>
+ <span class="comment">// end.</span>
+ <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> mask = (<span class="keywordtype">unsigned</span> char)(-1);
+ std::string msg;
+ SizeT trimblock = blocksize - ((data.length() + <span class="keyword">sizeof</span>(SizeT)) % blocksize);
+ <span class="keywordflow">if</span> (trimblock == blocksize) trimblock = 0;
+ <span class="keywordflow">for</span> (std::size_t i = <span class="keyword">sizeof</span>(SizeT); i &gt; 0; --i) {
+ msg += <span class="keyword">static_cast&lt;</span><span class="keywordtype">char</span><span class="keyword">&gt;</span>(trimblock &amp; mask);
+ trimblock &gt;&gt;= cbits;
+ }
+ msg += data;
+
+ <span class="comment">// Split the message into blocks of blocksize and encrypt each one.</span>
+ std::string encrypted_msg;
+ <span class="keywordflow">for</span> (std::size_t block = 0; block * blocksize &lt; msg.length(); ++block) {
+ <span class="comment">// Grab a block of blocksize bytes.</span>
+ std::string tblock = msg.substr(block * blocksize, blocksize);
+
+ <span class="comment">// Turn it into a KeyNumber.</span>
+ KeyNumber mnumber = binary_string_to_number(tblock);
+
+ <span class="comment">// Encrypt that number</span>
+ mnumber = <a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(mnumber, e, n);
+
+ <span class="comment">// Append the encrypted data to the return value, padded to the proper</span>
+ <span class="comment">// block length.</span>
+ tblock = number_to_binary_string(mnumber);
+ <span class="keywordflow">if</span> (tblock.length() &lt; blocksize) tblock += std::string(blocksize -
+ tblock.length(), 0);
+ encrypted_msg += tblock;
+ }
+
+ <span class="keywordflow">return</span> encrypted_msg;
+}
+
+<span class="keyword">template</span> &lt;std::<span class="keywordtype">size_t</span> Bits&gt;
+std::string Rsa&lt;Bits&gt;::decrypt(<span class="keyword">const</span> std::string encrypted_msg)<span class="keyword"> const </span>{
+ std::string decrypted_msg;
+
+ <span class="comment">// Split the message into blocks of blocksize and decrypt each one.</span>
+ <span class="keywordflow">for</span> (std::size_t block = 0; block * blocksize &lt; encrypted_msg.length();
+ ++block)
+ {
+ <span class="comment">// Grab a block of blocksize bytes.</span>
+ std::string tblock = encrypted_msg.substr(block * blocksize, blocksize);
+
+ <span class="comment">// Turn it into a KeyNumber.</span>
+ KeyNumber mnumber = binary_string_to_number(tblock);
+
+ <span class="comment">// Decrypt that number</span>
+ mnumber = <a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(mnumber, d, n);
+
+ <span class="comment">// Append the encrypted data to the return value, padded to the proper</span>
+ <span class="comment">// block length.</span>
+ tblock = number_to_binary_string(mnumber);
+ <span class="keywordflow">if</span> (tblock.length() &lt; blocksize) tblock += std::string(blocksize -
+ tblock.length(), 0);
+ decrypted_msg += tblock;
+ }
+
+ <span class="comment">// Trim the added bytes off of it.</span>
+ SizeT trimblock = 0;
+ <span class="keywordflow">for</span> (std::size_t i = 0; i &lt; <span class="keyword">sizeof</span>(SizeT); ++i)
+ trimblock |= (SizeT(decrypted_msg[i]) &lt;&lt; (i * cbits));
+ decrypted_msg = decrypted_msg.substr(<span class="keyword">sizeof</span>(SizeT), decrypted_msg.length() -
+ trimblock - <span class="keyword">sizeof</span>(SizeT));
+
+ <span class="keywordflow">return</span> decrypted_msg;
+}
+
+<span class="keyword">template</span> &lt;std::<span class="keywordtype">size_t</span> Bits&gt;
+Rsa&lt;Bits&gt; Rsa&lt;Bits&gt;::generate(<a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a> callback) {
+ <span class="comment">// Use the system&#39;s strong random number generator, via the XInt-provided</span>
+ <span class="comment">// convenience class.</span>
+ <a class="code" href="namespaceboost_1_1xint.html#ac38b0aafb375c80ff42b5488a52d9e8f" title="A convenience class for cryptographically-secure random numbers.">boost::xint::strong_random_generator</a> gen;
+
+ <span class="comment">// Generate two random prime numbers, each containing no more than half of</span>
+ <span class="comment">// the requested bits, and compute the product.</span>
+ KeyNumber p = KeyNumber::random_prime(gen, Bits / 2, callback);
+ KeyNumber q = KeyNumber::random_prime(gen, Bits / 2, callback);
+ assert(p != q); <span class="comment">// If they&#39;re identical, there&#39;s almost certainly a problem</span>
+
+ <span class="comment">// Compute the product of the primes.</span>
+ KeyNumber n(p * q);
+
+ <span class="comment">// Select an encryption key e, such that e and (p - 1) * (q - 1) are</span>
+ <span class="comment">// relatively prime. Encryption goes a lot faster if you use small primes</span>
+ <span class="comment">// for this value, and 65537 is recommended by X.509 and PKCS #1.</span>
+ KeyNumber e(65537);
+
+ <span class="comment">// Compute the decryption key.</span>
+ KeyNumber d(<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>(e, (p - 1) * (q - 1)));
+
+ <span class="comment">// That&#39;s all we have to do. Just plug those numbers into an Rsa object and</span>
+ <span class="comment">// return it.</span>
+ <span class="keywordflow">return</span> Rsa&lt;Bits&gt;(n, d, e);
+}
+
+
+
+<span class="keyword">using</span> std::cout;
+<span class="keyword">using</span> std::endl;
+<span class="keyword">using</span> std::flush;
+
+<span class="keyword">const</span> <span class="keywordtype">int</span> max_statusline_length = 40;
+
+<span class="keywordtype">void</span> clearline(<span class="keywordtype">int</span> length) {
+ cout &lt;&lt; <span class="charliteral">&#39;\r&#39;</span> &lt;&lt; std::string(length, <span class="charliteral">&#39; &#39;</span>) &lt;&lt; <span class="charliteral">&#39;\r&#39;</span> &lt;&lt; flush;
+}
+
+<span class="keywordtype">bool</span> callback() {
+ <span class="keyword">static</span> <span class="keywordtype">int</span> n = 0;
+ <span class="keywordflow">if</span> (++n == max_statusline_length) {
+ clearline(max_statusline_length);
+ n = 0;
+ }
+ cout &lt;&lt; <span class="charliteral">&#39;.&#39;</span> &lt;&lt; flush;
+ <span class="keywordflow">return</span> <span class="keyword">true</span>;
+}
+
+<span class="keywordtype">int</span> main() {
+ <span class="keyword">typedef</span> Rsa&lt;512&gt; Cipher;
+
+ <span class="comment">// In this test program, we&#39;ll generate a new key every time. 512-bit keys</span>
+ <span class="comment">// should generate within 100 attempts or less, most of the time, so it&#39;ll</span>
+ <span class="comment">// be pretty quick. You would normally generate a new key only once, store</span>
+ <span class="comment">// the private key securely, and publish the public key.</span>
+ Cipher c = Cipher::generate(callback);
+ clearline(max_statusline_length);
+
+ std::string source(<span class="stringliteral">&quot;This is a test message.&quot;</span>);
+ std::string encrypted = c.encrypt(source);
+ std::string decrypted = c.decrypt(encrypted);
+
+ <span class="keywordflow">if</span> (decrypted == source) {
+ cout &lt;&lt; <span class="stringliteral">&quot;Decryption was successful!&quot;</span> &lt;&lt; endl &lt;&lt; endl;
+ cout &lt;&lt; <span class="stringliteral">&quot;The key is: &quot;</span> &lt;&lt; c.privatekey() &lt;&lt; endl;
+ } <span class="keywordflow">else</span> {
+ cout &lt;&lt; <span class="stringliteral">&quot;Error in decryption!&quot;</span> &lt;&lt; endl;
+ cout &lt;&lt; source &lt;&lt; <span class="stringliteral">&quot; (&quot;</span> &lt;&lt; source.length() &lt;&lt; <span class="charliteral">&#39;)&#39;</span> &lt;&lt; endl;
+ cout &lt;&lt; decrypted &lt;&lt; <span class="stringliteral">&quot; (&quot;</span> &lt;&lt; decrypted.length() &lt;&lt; <span class="charliteral">&#39;)&#39;</span> &lt;&lt; endl;
+ }
+
+ <span class="keywordflow">return</span> EXIT_SUCCESS;
+}
+</pre></div> </div>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Copied: sandbox/xint/libs/xint/doc/ex__rsa_8dox.html (from r63309, /sandbox/xint/libs/xint/doc/r__core_8dox.html)
==============================================================================
--- /sandbox/xint/libs/xint/doc/r__core_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/ex__rsa_8dox.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -2,7 +2,7 @@
 <html xmlns="
http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: /home/chad/projects/xint/libs/xint/doc/dox/r_core.dox File Reference</title>
+<title>The Extended Integer (XInt) Library: /home/chad/projects/xint/libs/xint/doc/dox/ex_rsa.dox File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
 </head>
@@ -25,11 +25,11 @@
   </div>
 </div>
 <div class="contents">
-<h1>/home/chad/projects/xint/libs/xint/doc/dox/r_core.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<h1>/home/chad/projects/xint/libs/xint/doc/dox/ex_rsa.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Added: sandbox/xint/libs/xint/doc/ex__simplest.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/ex__simplest.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -0,0 +1,66 @@
+<!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: A Very Simple Example</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="ex_simplest">A Very Simple Example </a></h1><p>Here is a very simple example of how to use the library, which you can find as the file <code>simplest.cpp</code> in the <code>example</code> directory:</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;iostream&gt;</span>
+<span class="preprocessor">#include &lt;sstream&gt;</span>
+<span class="preprocessor">#include &lt;<a class="code" href="integer_8hpp.html" title="Declares the arbitrary-length integer type.">boost/xint/integer.hpp</a>&gt;</span>
+
+<span class="keywordtype">int</span> main() {
+ <span class="keyword">using</span> std::cout;
+ <span class="keyword">using</span> std::endl;
+
+ <span class="comment">// You can assign an integer type from any built-in integral type, or a</span>
+ <span class="comment">// constant.</span>
+ <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer</a> n = 2;
+
+ <span class="comment">// You can do any operation with it that you can with the built-in integral</span>
+ <span class="comment">// types.</span>
+ n += 8; <span class="comment">// Will now be 10</span>
+ n = n / 2; <span class="comment">// Will now be 5</span>
+ ++n; <span class="comment">// Will now be 6</span>
+ n *= 12; <span class="comment">// Will now be 72</span>
+ assert(n == 72);
+
+ <span class="comment">// You can write it to a stream, or read it in from one.</span>
+ cout &lt;&lt; <span class="stringliteral">&quot;The number is: &quot;</span> &lt;&lt; n &lt;&lt; endl;
+
+ std::istringstream stream(<span class="stringliteral">&quot;-14&quot;</span>);
+ stream &gt;&gt; n;
+ assert(n == -14);
+
+ <span class="comment">// And you can do all of this with much larger numbers than the built-in</span>
+ <span class="comment">// types can handle, too.</span>
+ n = <a class="code" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c" title="The default arbitrary-length integer type.">boost::xint::integer</a>(<span class="stringliteral">&quot;123456789012345678901234567890123456789012345&quot;</span>);
+ cout &lt;&lt; <span class="stringliteral">&quot;The huge number is: &quot;</span> &lt;&lt; n &lt;&lt; endl;
+ cout &lt;&lt; <span class="stringliteral">&quot;(That&#39;s a &quot;</span> &lt;&lt; <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(n) &lt;&lt; <span class="stringliteral">&quot;-bit number.)&quot;</span> &lt;&lt; endl;
+}
+</pre></div><p>The numbers can get a <em>lot</em> larger than that too, without any problem. </p>
+</div>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Copied: sandbox/xint/libs/xint/doc/ex__simplest_8dox.html (from r63309, /sandbox/xint/libs/xint/doc/copyonwrite_8dox.html)
==============================================================================
--- /sandbox/xint/libs/xint/doc/copyonwrite_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/ex__simplest_8dox.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -2,7 +2,7 @@
 <html xmlns="
http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: /home/chad/projects/xint/libs/xint/doc/dox/copyonwrite.dox File Reference</title>
+<title>The Extended Integer (XInt) Library: /home/chad/projects/xint/libs/xint/doc/dox/ex_simplest.dox File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
 </head>
@@ -25,11 +25,11 @@
   </div>
 </div>
 <div class="contents">
-<h1>/home/chad/projects/xint/libs/xint/doc/dox/copyonwrite.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<h1>/home/chad/projects/xint/libs/xint/doc/dox/ex_simplest.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/exception__handler.html
==============================================================================
--- sandbox/xint/libs/xint/doc/exception__handler.html (original)
+++ sandbox/xint/libs/xint/doc/exception__handler.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -27,8 +27,8 @@
 <p>To give your program a chance to at least record any error, and optionally recover from it using the <code>setjmp/longjmp</code> functions, the library includes an <a class="el" href="namespaceboost_1_1xint.html#ac2b936b22084368c66e62f8181c08241">on_exception</a> function. You call this function, passing in a function that you want called whenever there is a problem. The library will call that function and (if it returns) throw the exception as normal. (If BOOST_XINT_NO_EXCEPTIONS is used, it will call <code>abort()</code> after calling your function instead.)</p>
 <p>Note that while <code>setjmp/longjmp</code> may allow you to recover from errors, it will often result in memory leaks since no destructors or other cleanup code is allowed to run. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/exceptions.html
==============================================================================
--- sandbox/xint/libs/xint/doc/exceptions.html (original)
+++ sandbox/xint/libs/xint/doc/exceptions.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -62,8 +62,8 @@
     }
 }
 </pre></div> </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/exceptions.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -63,8 +63,8 @@
 
 <p>Definition in file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -119,8 +119,8 @@
 <a name="l00150"></a>00150
 <a name="l00151"></a>00151 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_EXCEPTIONS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/files.html
==============================================================================
--- sandbox/xint/libs/xint/doc/files.html (original)
+++ sandbox/xint/libs/xint/doc/files.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -57,8 +57,8 @@
   <tr><td class="indexkey">detail/<a class="el" href="streams_8hpp.html">streams.hpp</a>
[code]</td><td class="indexvalue">Contains the stream input/output code for raw_integer types </td></tr>
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/fixedlength.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/fixedlength__type.html
==============================================================================
--- sandbox/xint/libs/xint/doc/fixedlength__type.html (original)
+++ sandbox/xint/libs/xint/doc/fixedlength__type.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <dl class="user"><dt><b></b></dt><dd>Also note that when calculating with a signed fixed-length integer type, the number does not "wrap around" when it exceeds the type's size like the built-in signed integer types do. It is truncated to the lower bits instead. For example, <code>integer_t&lt;8&gt;(-255) - 1</code> and <code>integer_t&lt;8&gt;(255) + 1</code> will both be zero. However, the sign (on non-zero answers) is preserved, so <code>integer_t&lt;8&gt;(-255) - 2</code> will be -1.</dd></dl>
 <dl class="user"><dt><b></b></dt><dd>When used with the <a class="el" href="structboost_1_1xint_1_1options_1_1negative__modulus.html">negative_modulus</a> option, the number will wrap around like the built-in unsigned types. </dd></dl>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/functions.html
==============================================================================
--- sandbox/xint/libs/xint/doc/functions.html (original)
+++ sandbox/xint/libs/xint/doc/functions.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -244,8 +244,8 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -230,8 +230,8 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -39,8 +39,8 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -42,8 +42,8 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="gcd_8hpp_source.html">gcd.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -158,8 +158,8 @@
 <a name="l00143"></a>00143 <span class="comment"></span>
 <a name="l00144"></a>00144 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_GCD_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/globals.html
==============================================================================
--- sandbox/xint/libs/xint/doc/globals.html (original)
+++ sandbox/xint/libs/xint/doc/globals.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -82,8 +82,8 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -82,8 +82,8 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/history.html
==============================================================================
--- sandbox/xint/libs/xint/doc/history.html (original)
+++ sandbox/xint/libs/xint/doc/history.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -67,8 +67,8 @@
 <li>Added the safe-bool idiom, by request. </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/history.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/index.html
==============================================================================
--- sandbox/xint/libs/xint/doc/index.html (original)
+++ sandbox/xint/libs/xint/doc/index.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -37,6 +37,12 @@
 How do I use it?</a></h2>
 <p>That's the best part. If you've installed the Boost library already, all you need to do is add <code>#include &lt;<a class="el" href="xint_8hpp.html" title="This is the include-everything header.">boost/xint/xint.hpp</a>&gt;</code> at the top of your source code file and declare your variable as type <code><a class="el" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c" title="The default arbitrary-length integer type.">boost::xint::integer</a></code>. Then just use it the way you'd use any integer. If you need something more advanced, take a look in <a class="el" href="namespaceboost_1_1xint.html">the reference section</a> and you just might find it.</p>
 <p>More information on how to use it can be found on the pages listed below.</p>
+<p>Stand-Alone Examples:</p>
+<ul>
+<li><a class="el" href="ex__simplest.html">A Very Simple Example</a></li>
+<li><a class="el" href="ex__fibonacci.html">Fibonacci Numbers</a></li>
+<li><a class="el" href="ex__rsa.html">RSA Encryption</a></li>
+</ul>
 <p>Detailed Usage Information:</p>
 <ul>
 <li><a class="el" href="fixedlength__type.html">Fixed-Length Integers</a></li>
@@ -56,15 +62,11 @@
 <li><a class="el" href="dependencies.html">Dependencies</a></li>
 <li><a class="el" href="rationale.html">Rationales</a></li>
 <li><a class="el" href="acknowledgements.html">Acknowledgements</a></li>
-<li><a class="el" href="history.html">Revision History</a></li>
-</ul>
-<p>Stand-Alone Examples:</p>
-<ul>
-<li><a class="el" href="ex__fibonacci.html">Fibonacci Numbers</a> </li>
+<li><a class="el" href="history.html">Revision History</a> </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/index.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -266,7 +266,7 @@
 </pre></div>
 <p>Allows for comparisons between integer_t types and other integral values. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02360">2360</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>
@@ -288,13 +288,13 @@
 
 <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#l02396">2396</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 Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -824,1084 +824,1084 @@
 <a name="l01094"></a>01094
 <a name="l01095"></a>01095 <span class="preprocessor">#ifdef BOOST_XINT_DOXYGEN_IGNORE // Doesn&#39;t really exist, this is here for docs</span>
 <a name="l01096"></a>01096 <span class="preprocessor"></span>
-<a name="l01108"></a>01108 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01109"></a>01109 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html#ac2e125b88a17f8c4e4c0b760ee1e9962" title="Returns a Not-a-Number value, for types that support it.">integer_t&lt;BOOST_XINT_APARAMS&gt;::nan</a>();
-<a name="l01110"></a>01110 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l01111"></a>01111 <span class="preprocessor"></span>
-<a name="l01136"></a>01136 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01137"></a>01137 <span class="keyword">template</span> &lt;<span class="keyword">class</span> Type&gt;
-<a name="l01138"></a>01138 integer_t&lt;BOOST_XINT_APARAMS&gt;<a class="code" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683" title="Generates a random integer with specific attributes.">integer_t&lt;BOOST_XINT_APARAMS&gt;::random_by_size</a>(Type&amp;
-<a name="l01139"></a>01139 gen, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> size_in_bits, <span class="keywordtype">bool</span> high_bit_on, <span class="keywordtype">bool</span> low_bit_on, <span class="keywordtype">bool</span>
-<a name="l01140"></a>01140 can_be_negative)
-<a name="l01141"></a>01141 {
-<a name="l01142"></a>01142 <span class="keywordflow">if</span> (!Signed) can_be_negative = <span class="keyword">false</span>;
-<a name="l01143"></a>01143 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01144"></a>01144 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01145"></a>01145 <span class="keywordflow">return</span> integer_t&lt;BOOST_XINT_APARAMS&gt;(<a class="code" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683" title="Generates a random integer with specific attributes.">datatype::random_by_size</a>(gen,
-<a name="l01146"></a>01146 size_in_bits, high_bit_on, low_bit_on, can_be_negative));
-<a name="l01147"></a>01147 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01148"></a>01148 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01149"></a>01149 }
-<a name="l01150"></a>01150 } <span class="keywordflow">else</span> {
-<a name="l01151"></a>01151 <span class="keywordflow">return</span> integer_t&lt;BOOST_XINT_APARAMS&gt;(<a class="code" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683" title="Generates a random integer with specific attributes.">datatype::random_by_size</a>(gen,
-<a name="l01152"></a>01152 size_in_bits, high_bit_on, low_bit_on, can_be_negative));
-<a name="l01153"></a>01153 }
-<a name="l01154"></a>01154 }
-<a name="l01155"></a>01155
-<a name="l01183"></a>01183 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01184"></a>01184 <span class="keyword">template</span> &lt;<span class="keyword">class</span> Type&gt;
-<a name="l01185"></a>01185 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947" title="Generate a randomly-generated prime number of a particular bit-size.">integer_t&lt;BOOST_XINT_APARAMS&gt;::random_prime</a>(Type&amp;
-<a name="l01186"></a>01186 gen, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> size_in_bits, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a> callback)
-<a name="l01187"></a>01187 {
-<a name="l01188"></a>01188 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01189"></a>01189 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01190"></a>01190 <span class="keywordflow">return</span> integer_t&lt;BOOST_XINT_APARAMS&gt;(<a class="code" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947" title="Generate a randomly-generated prime number of a particular bit-size.">datatype::random_prime</a>(gen,
-<a name="l01191"></a>01191 size_in_bits, callback));
-<a name="l01192"></a>01192 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01193"></a>01193 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01194"></a>01194 }
-<a name="l01195"></a>01195 } <span class="keywordflow">else</span> {
-<a name="l01196"></a>01196 <span class="keywordflow">return</span> integer_t&lt;BOOST_XINT_APARAMS&gt;(<a class="code" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947" title="Generate a randomly-generated prime number of a particular bit-size.">datatype::random_prime</a>(gen,
-<a name="l01197"></a>01197 size_in_bits, callback));
-<a name="l01198"></a>01198 }
-<a name="l01199"></a>01199 }
-<a name="l01200"></a>01200
-<a name="l01202"></a>01202 <span class="comment">// Free function template definitions</span>
-<a name="l01208"></a>01208 <span class="comment"></span>
-<a name="l01209"></a>01209
-<a name="l01218"></a>01218 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01219"></a>01219 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a331d95962aedbdb34f04ef373555dd8a" title="Returns the absolute value of an integer.">abs</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n) {
-<a name="l01220"></a>01220 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01221"></a>01221 <span class="keywordflow">if</span> (n.is_nan())
-<a name="l01222"></a>01222 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01223"></a>01223 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01224"></a>01224 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n._data().abs());
-<a name="l01225"></a>01225 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01226"></a>01226 r._make_unique();
-<a name="l01227"></a>01227 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01228"></a>01228 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01229"></a>01229 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01230"></a>01230 }
-<a name="l01231"></a>01231 } <span class="keywordflow">else</span> {
-<a name="l01232"></a>01232 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n._data().abs());
-<a name="l01233"></a>01233 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01234"></a>01234 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01235"></a>01235 }
-<a name="l01236"></a>01236 }
-<a name="l01237"></a>01237
-<a name="l01256"></a>01256 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01257"></a>01257 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(<span class="keyword">const</span>
-<a name="l01258"></a>01258 integer_t&lt;BOOST_XINT_APARAMS&gt; dividend, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt;
-<a name="l01259"></a>01259 divisor)
-<a name="l01260"></a>01260 {
-<a name="l01261"></a>01261 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01262"></a>01262 <span class="keywordflow">if</span> (dividend.is_nan() || divisor.is_nan()) <span class="keywordflow">return</span> <span class="keyword">typename</span>
-<a name="l01263"></a>01263 integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t(detail::get_nan&lt;
-<a name="l01264"></a>01264 integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;(), detail::get_nan&lt;
-<a name="l01265"></a>01265 integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;());
-<a name="l01266"></a>01266 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01267"></a>01267 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::datatype::divide_t rr =
-<a name="l01268"></a>01268 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">detail::divide</a>(dividend._data(), divisor._data());
-<a name="l01269"></a>01269 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t
-<a name="l01270"></a>01270 r(integer_t&lt;BOOST_XINT_APARAMS&gt;(rr.quotient),
-<a name="l01271"></a>01271 integer_t&lt;BOOST_XINT_APARAMS&gt;(rr.remainder));
-<a name="l01272"></a>01272 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01273"></a>01273 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01274"></a>01274 <span class="keywordflow">return</span> <span class="keyword">typename</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#ade3856e01013fca6b126ad4336e2baa1">integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t</a>(
-<a name="l01275"></a>01275 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;(),
-<a name="l01276"></a>01276 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;());
-<a name="l01277"></a>01277 }
-<a name="l01278"></a>01278 } <span class="keywordflow">else</span> {
-<a name="l01279"></a>01279 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::datatype::divide_t rr =
-<a name="l01280"></a>01280 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">detail::divide</a>(dividend._data(), divisor._data());
-<a name="l01281"></a>01281 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t
-<a name="l01282"></a>01282 r(integer_t&lt;BOOST_XINT_APARAMS&gt;(rr.quotient),
-<a name="l01283"></a>01283 integer_t&lt;BOOST_XINT_APARAMS&gt;(rr.remainder));
-<a name="l01284"></a>01284 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01285"></a>01285 }
-<a name="l01286"></a>01286 }
-<a name="l01287"></a>01287
-<a name="l01300"></a>01300 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01301"></a>01301 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ae58734c3f93951819e43af9fff2b9496" title="Calculate the absolute difference between two integers.">difference</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l01302"></a>01302 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l01303"></a>01303 {
-<a name="l01304"></a>01304 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::datatype rdata = n1._data() -
-<a name="l01305"></a>01305 n2._data();
-<a name="l01306"></a>01306 rdata.negative = <span class="keyword">false</span>;
-<a name="l01307"></a>01307 <span class="keywordflow">return</span> integer_t&lt;BOOST_XINT_APARAMS&gt;(rdata);
-<a name="l01308"></a>01308 }
-<a name="l01310"></a>01310
+<a name="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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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="l01317"></a>01317
-<a name="l01329"></a>01329 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01330"></a>01330 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd" title="Calculate the value of n2">square</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n) {
-<a name="l01331"></a>01331 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01332"></a>01332 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
-<a name="l01333"></a>01333 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01334"></a>01334 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd" title="Calculate the value of n2">detail::square</a>(n._data()));
-<a name="l01335"></a>01335 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01336"></a>01336 r._make_unique();
-<a name="l01337"></a>01337 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01338"></a>01338 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01339"></a>01339 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01340"></a>01340 }
-<a name="l01341"></a>01341 } <span class="keywordflow">else</span> {
-<a name="l01342"></a>01342 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd" title="Calculate the value of n2">detail::square</a>(n._data()));
-<a name="l01343"></a>01343 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01344"></a>01344 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01345"></a>01345 }
-<a name="l01346"></a>01346 }
-<a name="l01347"></a>01347
-<a name="l01356"></a>01356 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01357"></a>01357 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644" title="Calculate the value of ne">pow</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <span class="keyword">const</span>
-<a name="l01358"></a>01358 integer_t&lt;BOOST_XINT_APARAMS&gt; e)
-<a name="l01359"></a>01359 {
-<a name="l01360"></a>01360 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01361"></a>01361 <span class="keywordflow">if</span> (n.is_nan() || e.is_nan())
-<a name="l01362"></a>01362 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01363"></a>01363 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01364"></a>01364 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l01365"></a>01365 <a class="code" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644" title="Calculate the value of ne">pow</a>(r._data(), n._data(), e._data());
-<a name="l01366"></a>01366 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01367"></a>01367 r._make_unique();
-<a name="l01368"></a>01368 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01369"></a>01369 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01370"></a>01370 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01371"></a>01371 }
-<a name="l01372"></a>01372 } <span class="keywordflow">else</span> {
-<a name="l01373"></a>01373 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l01374"></a>01374 <a class="code" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644" title="Calculate the value of ne">pow</a>(r._data(), n._data(), e._data());
-<a name="l01375"></a>01375 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01376"></a>01376 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01377"></a>01377 }
-<a name="l01378"></a>01378 }
-<a name="l01379"></a>01379
-<a name="l01392"></a>01392 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01393"></a>01393 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#abb957c86cae5940b06172eb23345fe42" title="Calculate the square root of an integer.">square_root</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n)
-<a name="l01394"></a>01394 {
-<a name="l01395"></a>01395 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01396"></a>01396 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
-<a name="l01397"></a>01397 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01398"></a>01398 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#abb957c86cae5940b06172eb23345fe42" title="Calculate the square root of an integer.">square_root</a>(n._data()));
-<a name="l01399"></a>01399 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01400"></a>01400 r._make_unique();
-<a name="l01401"></a>01401 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01402"></a>01402 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01403"></a>01403 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01404"></a>01404 }
-<a name="l01405"></a>01405 } <span class="keywordflow">else</span> {
-<a name="l01406"></a>01406 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#abb957c86cae5940b06172eb23345fe42" title="Calculate the square root of an integer.">square_root</a>(n._data()));
-<a name="l01407"></a>01407 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01408"></a>01408 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01409"></a>01409 }
-<a name="l01410"></a>01410 }
-<a name="l01412"></a>01412
+<a name="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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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="l01419"></a>01419
-<a name="l01432"></a>01432 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01433"></a>01433 T <a class="code" href="namespaceboost_1_1xint.html#a9aa52eb4533b04c27329b3f6b7aa842b" title="Converts an xint::integer type to a built-in integer type.">to</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n) {
-<a name="l01434"></a>01434 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01435"></a>01435 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> T(0);
-<a name="l01436"></a>01436 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01437"></a>01437 <span class="keywordflow">return</span> to&lt;T&gt;(n._data());
-<a name="l01438"></a>01438 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01439"></a>01439 <span class="keywordflow">return</span> T(0);
-<a name="l01440"></a>01440 }
-<a name="l01441"></a>01441 } <span class="keywordflow">else</span> {
-<a name="l01442"></a>01442 <span class="keywordflow">return</span> to&lt;T&gt;(n._data());
-<a name="l01443"></a>01443 }
-<a name="l01444"></a>01444 }
-<a name="l01445"></a>01445
-<a name="l01468"></a>01468 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01469"></a>01469 std::basic_string&lt;charT&gt; <a class="code" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758" title="Creates a string representation of the specified integer.">to_stringtype</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
-<a name="l01470"></a>01470 std::size_t base = 10, <span class="keywordtype">bool</span> uppercase = <span class="keyword">false</span>)
-<a name="l01471"></a>01471 {
-<a name="l01472"></a>01472 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01473"></a>01473 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> detail::nan_text&lt;charT&gt;();
-<a name="l01474"></a>01474 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01475"></a>01475 <span class="keywordflow">return</span> detail::to_string&lt;charT&gt;(n._data(), base, uppercase);
-<a name="l01476"></a>01476 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01477"></a>01477 <span class="keywordflow">return</span> std::basic_string&lt;charT&gt;();
-<a name="l01478"></a>01478 }
-<a name="l01479"></a>01479 } <span class="keywordflow">else</span> {
-<a name="l01480"></a>01480 <span class="keywordflow">return</span> detail::to_string&lt;charT&gt;(n._data(), base, uppercase);
-<a name="l01481"></a>01481 }
-<a name="l01482"></a>01482 }
-<a name="l01483"></a>01483
-<a name="l01487"></a>01487 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01488"></a>01488 std::string <a class="code" href="namespaceboost_1_1xint.html#a2fb5a8cfac3e97a1641d424aac04a71f" title="A shorthand function that calls to_stringtype&amp;lt;char&amp;gt;.">to_string</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, std::size_t base =
-<a name="l01489"></a>01489 10, <span class="keywordtype">bool</span> uppercase = <span class="keyword">false</span>)
-<a name="l01490"></a>01490 {
-<a name="l01491"></a>01491 <span class="keywordflow">return</span> to_stringtype&lt;char&gt;(n, base, uppercase);
-<a name="l01492"></a>01492 }
-<a name="l01493"></a>01493
-<a name="l01497"></a>01497 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01498"></a>01498 std::wstring <a class="code" href="namespaceboost_1_1xint.html#a6f24b4e0dc6e6c5de02480f5fb352030" title="A shorthand function that calls to_stringtype&amp;lt;wchar_t&amp;gt;.">to_wstring</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, std::size_t base
-<a name="l01499"></a>01499 = 10, <span class="keywordtype">bool</span> uppercase = <span class="keyword">false</span>)
-<a name="l01500"></a>01500 {
-<a name="l01501"></a>01501 <span class="keywordflow">return</span> to_stringtype&lt;wchar_t&gt;(n, base, uppercase);
-<a name="l01502"></a>01502 }
-<a name="l01503"></a>01503
-<a name="l01531"></a>01531 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01532"></a>01532 <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> <a class="code" href="namespaceboost_1_1xint.html#a36d0321bee2aade461e0f504400c7c1b" title="Creates a binary representation of an integer.">to_binary</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits =
-<a name="l01533"></a>01533 0)
-<a name="l01534"></a>01534 {
-<a name="l01535"></a>01535 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01536"></a>01536 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a>();
-<a name="l01537"></a>01537 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01538"></a>01538 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a36d0321bee2aade461e0f504400c7c1b" title="Creates a binary representation of an integer.">to_binary</a>(n._data(), bits);
-<a name="l01539"></a>01539 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01540"></a>01540 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a>();
-<a name="l01541"></a>01541 }
-<a name="l01542"></a>01542 } <span class="keywordflow">else</span> {
-<a name="l01543"></a>01543 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a36d0321bee2aade461e0f504400c7c1b" title="Creates a binary representation of an integer.">to_binary</a>(n._data(), bits);
-<a name="l01544"></a>01544 }
-<a name="l01545"></a>01545 }
-<a name="l01547"></a>01547
-<a name="l01550"></a>01550
-<a name="l01561"></a>01561 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01562"></a>01562 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a" title="Queries the value of a particular bit in an integer.">getbit</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
-<a name="l01563"></a>01563 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01564"></a>01564 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01565"></a>01565 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01566"></a>01566 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a" title="Queries the value of a particular bit in an integer.">getbit</a>(n._data(), bit);
-<a name="l01567"></a>01567 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01568"></a>01568 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01569"></a>01569 }
-<a name="l01570"></a>01570 } <span class="keywordflow">else</span> {
-<a name="l01571"></a>01571 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a" title="Queries the value of a particular bit in an integer.">getbit</a>(n._data(), bit);
-<a name="l01572"></a>01572 }
-<a name="l01573"></a>01573 }
-<a name="l01574"></a>01574
-<a name="l01584"></a>01584 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01585"></a>01585 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0" title="Sets a specific bit in an integer to one.">setbit</a>(integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
-<a name="l01586"></a>01586 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01587"></a>01587 <span class="keywordflow">if</span> (!n.is_nan()) {
-<a name="l01588"></a>01588 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01589"></a>01589 <a class="code" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0" title="Sets a specific bit in an integer to one.">setbit</a>(n._data(), bit);
-<a name="l01590"></a>01590 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01591"></a>01591 <span class="comment">// Do nothing.</span>
-<a name="l01592"></a>01592 }
-<a name="l01593"></a>01593 }
-<a name="l01594"></a>01594 } <span class="keywordflow">else</span> {
-<a name="l01595"></a>01595 <a class="code" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0" title="Sets a specific bit in an integer to one.">setbit</a>(n._data(), bit);
-<a name="l01596"></a>01596 }
-<a name="l01597"></a>01597 }
-<a name="l01598"></a>01598
-<a name="l01608"></a>01608 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01609"></a>01609 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a5643216f91a4bb39bd88c1dc877e6ab8" title="Sets a specific bit in an integer to zero.">clearbit</a>(integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
-<a name="l01610"></a>01610 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01611"></a>01611 <span class="keywordflow">if</span> (!n.is_nan()) {
-<a name="l01612"></a>01612 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01613"></a>01613 <a class="code" href="namespaceboost_1_1xint.html#a5643216f91a4bb39bd88c1dc877e6ab8" title="Sets a specific bit in an integer to zero.">clearbit</a>(n._data(), bit);
-<a name="l01614"></a>01614 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01615"></a>01615 <span class="comment">// Do nothing.</span>
-<a name="l01616"></a>01616 }
-<a name="l01617"></a>01617 }
-<a name="l01618"></a>01618 } <span class="keywordflow">else</span> {
-<a name="l01619"></a>01619 <a class="code" href="namespaceboost_1_1xint.html#a5643216f91a4bb39bd88c1dc877e6ab8" title="Sets a specific bit in an integer to zero.">clearbit</a>(n._data(), bit);
-<a name="l01620"></a>01620 }
-<a name="l01621"></a>01621 }
-<a name="l01622"></a>01622
-<a name="l01636"></a>01636 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01637"></a>01637 <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> <a class="code" href="namespaceboost_1_1xint.html#a8512b348c82472dca48edb63f2a1f0e7" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a>
-<a name="l01638"></a>01638 return_if_zero = 0)
-<a name="l01639"></a>01639 {
-<a name="l01640"></a>01640 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01641"></a>01641 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> return_if_zero;
-<a name="l01642"></a>01642 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01643"></a>01643 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a8512b348c82472dca48edb63f2a1f0e7" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(n._data(), return_if_zero);
-<a name="l01644"></a>01644 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01645"></a>01645 <span class="keywordflow">return</span> return_if_zero;
-<a name="l01646"></a>01646 }
-<a name="l01647"></a>01647 } <span class="keywordflow">else</span> {
-<a name="l01648"></a>01648 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a8512b348c82472dca48edb63f2a1f0e7" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(n._data(), return_if_zero);
-<a name="l01649"></a>01649 }
-<a name="l01650"></a>01650 }
-<a name="l01651"></a>01651
-<a name="l01665"></a>01665 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01666"></a>01666 <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> <a class="code" href="namespaceboost_1_1xint.html#adee99f516c2480b2381f6c9b1a2abc6e" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a>
-<a name="l01667"></a>01667 return_if_zero = 0)
-<a name="l01668"></a>01668 {
-<a name="l01669"></a>01669 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01670"></a>01670 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> return_if_zero;
-<a name="l01671"></a>01671 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01672"></a>01672 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#adee99f516c2480b2381f6c9b1a2abc6e" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(n._data(), return_if_zero);
-<a name="l01673"></a>01673 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01674"></a>01674 <span class="keywordflow">return</span> return_if_zero;
-<a name="l01675"></a>01675 }
-<a name="l01676"></a>01676 } <span class="keywordflow">else</span> {
-<a name="l01677"></a>01677 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#adee99f516c2480b2381f6c9b1a2abc6e" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(n._data(), return_if_zero);
-<a name="l01678"></a>01678 }
-<a name="l01679"></a>01679 }
-<a name="l01681"></a>01681
+<a name="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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01436"></a>01436 <span class="keywordflow">return</span> to&lt;T&gt;(n._data());
+<a name="l01437"></a>01437 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01438"></a>01438 <span class="keywordflow">return</span> T(0);
+<a name="l01439"></a>01439 }
+<a name="l01440"></a>01440 } <span class="keywordflow">else</span> {
+<a name="l01441"></a>01441 <span class="keywordflow">return</span> to&lt;T&gt;(n._data());
+<a name="l01442"></a>01442 }
+<a name="l01443"></a>01443 }
+<a name="l01444"></a>01444
+<a name="l01467"></a>01467 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01468"></a>01468 std::basic_string&lt;charT&gt; <a class="code" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758" title="Creates a string representation of the specified integer.">to_stringtype</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
+<a name="l01469"></a>01469 std::size_t base = 10, <span class="keywordtype">bool</span> uppercase = <span class="keyword">false</span>)
+<a name="l01470"></a>01470 {
+<a name="l01471"></a>01471 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01472"></a>01472 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> detail::nan_text&lt;charT&gt;();
+<a name="l01473"></a>01473 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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="l01691"></a>01691
-<a name="l01706"></a>01706 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01707"></a>01707 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
-<a name="l01708"></a>01708 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; by, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt;
-<a name="l01709"></a>01709 modulus)
-<a name="l01710"></a>01710 {
-<a name="l01711"></a>01711 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01712"></a>01712 <span class="keywordflow">if</span> (n.is_nan() || by.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
-<a name="l01713"></a>01713 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01714"></a>01714 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01715"></a>01715 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>(n._data(), by._data(),
-<a name="l01716"></a>01716 modulus._data()));
-<a name="l01717"></a>01717 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01718"></a>01718 r._make_unique();
-<a name="l01719"></a>01719 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01720"></a>01720 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01721"></a>01721 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01722"></a>01722 }
-<a name="l01723"></a>01723 } <span class="keywordflow">else</span> {
-<a name="l01724"></a>01724 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>(n._data(), by._data(),
-<a name="l01725"></a>01725 modulus._data()));
-<a name="l01726"></a>01726 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01727"></a>01727 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01728"></a>01728 }
-<a name="l01729"></a>01729 }
-<a name="l01730"></a>01730
-<a name="l01745"></a>01745 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01746"></a>01746 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
-<a name="l01747"></a>01747 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; modulus)
-<a name="l01748"></a>01748 {
-<a name="l01749"></a>01749 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01750"></a>01750 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
-<a name="l01751"></a>01751 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01752"></a>01752 integer_t&lt;BOOST_XINT_APARAMS&gt; r = <a class="code" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>(n._data(),
-<a name="l01753"></a>01753 modulus._data());
-<a name="l01754"></a>01754 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01755"></a>01755 r._make_unique();
-<a name="l01756"></a>01756 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01757"></a>01757 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01758"></a>01758 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01759"></a>01759 }
-<a name="l01760"></a>01760 } <span class="keywordflow">else</span> {
-<a name="l01761"></a>01761 integer_t&lt;BOOST_XINT_APARAMS&gt; r = <a class="code" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>(n._data(), modulus._data());
-<a name="l01762"></a>01762 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01763"></a>01763 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01764"></a>01764 }
-<a name="l01765"></a>01765 }
-<a name="l01766"></a>01766
-<a name="l01790"></a>01790 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01791"></a>01791 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
-<a name="l01792"></a>01792 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; exponent, <span class="keyword">const</span>
-<a name="l01793"></a>01793 integer_t&lt;BOOST_XINT_APARAMS&gt; modulus, <span class="keywordtype">bool</span> no_monty = <span class="keyword">false</span>)
-<a name="l01794"></a>01794 {
-<a name="l01795"></a>01795 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01796"></a>01796 <span class="keywordflow">if</span> (n.is_nan() || exponent.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
-<a name="l01797"></a>01797 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01798"></a>01798 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01799"></a>01799 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(n._data(), exponent._data(),
-<a name="l01800"></a>01800 modulus._data(), no_monty));
-<a name="l01801"></a>01801 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01802"></a>01802 r._make_unique();
-<a name="l01803"></a>01803 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01804"></a>01804 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01805"></a>01805 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01806"></a>01806 }
-<a name="l01807"></a>01807 } <span class="keywordflow">else</span> {
-<a name="l01808"></a>01808 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(n._data(), exponent._data(),
-<a name="l01809"></a>01809 modulus._data(), no_monty));
-<a name="l01810"></a>01810 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01811"></a>01811 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01812"></a>01812 }
-<a name="l01813"></a>01813 }
-<a name="l01814"></a>01814
-<a name="l01827"></a>01827 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01828"></a>01828 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
-<a name="l01829"></a>01829 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; modulus)
-<a name="l01830"></a>01830 {
-<a name="l01831"></a>01831 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01832"></a>01832 <span class="keywordflow">if</span> (n.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
-<a name="l01833"></a>01833 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01834"></a>01834 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01835"></a>01835 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n._data(), modulus._data()));
-<a name="l01836"></a>01836 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01837"></a>01837 r._make_unique();
-<a name="l01838"></a>01838 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01839"></a>01839 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01840"></a>01840 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01841"></a>01841 }
-<a name="l01842"></a>01842 } <span class="keywordflow">else</span> {
-<a name="l01843"></a>01843 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n._data(), modulus._data()));
-<a name="l01844"></a>01844 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01845"></a>01845 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01846"></a>01846 }
-<a name="l01847"></a>01847 }
-<a name="l01849"></a>01849
+<a name="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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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="l01856"></a>01856
-<a name="l01881"></a>01881 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01882"></a>01882 <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace" title="Tests an integer for primality.">is_prime</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a> callback =
-<a name="l01883"></a>01883 <a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696" title="An empty callback_t, used as a default parameter for some functions.">no_callback</a>)
-<a name="l01884"></a>01884 {
-<a name="l01885"></a>01885 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01886"></a>01886 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> -2;
-<a name="l01887"></a>01887 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01888"></a>01888 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace" title="Tests an integer for primality.">is_prime</a>(n._data(), callback);
-<a name="l01889"></a>01889 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01890"></a>01890 <span class="keywordflow">return</span> -2;
-<a name="l01891"></a>01891 }
-<a name="l01892"></a>01892 } <span class="keywordflow">else</span> {
-<a name="l01893"></a>01893 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace" title="Tests an integer for primality.">is_prime</a>(n._data(), callback);
-<a name="l01894"></a>01894 }
-<a name="l01895"></a>01895 }
-<a name="l01897"></a>01897
-<a name="l01904"></a>01904
-<a name="l01905"></a>01905 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#af5698b6ba852f5a119429b17c2a08450">operator&lt;</a>(<span class="keyword">const</span>
-<a name="l01906"></a>01906 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l01907"></a>01907 {
-<a name="l01908"></a>01908 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01909"></a>01909 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01910"></a>01910 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01911"></a>01911 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#af5698b6ba852f5a119429b17c2a08450">operator&lt;</a>(n1._data(), n2._data());
-<a name="l01912"></a>01912 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01913"></a>01913 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01914"></a>01914 }
-<a name="l01915"></a>01915 } <span class="keywordflow">else</span> {
-<a name="l01916"></a>01916 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#af5698b6ba852f5a119429b17c2a08450">operator&lt;</a>(n1._data(), n2._data());
-<a name="l01917"></a><a class="code" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">01917</a> }
-<a name="l01918"></a>01918 }
-<a name="l01919"></a>01919
-<a name="l01920"></a>01920 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">operator&gt;</a>(<span class="keyword">const</span>
-<a name="l01921"></a>01921 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l01922"></a>01922 {
-<a name="l01923"></a>01923 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01924"></a>01924 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01925"></a>01925 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01926"></a>01926 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">operator&gt;</a>(n1._data(), n2._data());
-<a name="l01927"></a>01927 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01928"></a>01928 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01929"></a>01929 }
-<a name="l01930"></a>01930 } <span class="keywordflow">else</span> {
-<a name="l01931"></a>01931 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">operator&gt;</a>(n1._data(), n2._data());
-<a name="l01932"></a><a class="code" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">01932</a> }
-<a name="l01933"></a>01933 }
-<a name="l01934"></a>01934
-<a name="l01935"></a>01935 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">operator&lt;=</a>(<span class="keyword">const</span>
-<a name="l01936"></a>01936 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l01937"></a>01937 {
-<a name="l01938"></a>01938 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01939"></a>01939 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01940"></a>01940 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01941"></a>01941 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">operator&lt;=</a>(n1._data(), n2._data());
-<a name="l01942"></a>01942 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01943"></a>01943 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01944"></a>01944 }
-<a name="l01945"></a>01945 } <span class="keywordflow">else</span> {
-<a name="l01946"></a>01946 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">operator&lt;=</a>(n1._data(), n2._data());
-<a name="l01947"></a><a class="code" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">01947</a> }
-<a name="l01948"></a>01948 }
-<a name="l01949"></a>01949
-<a name="l01950"></a>01950 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">operator&gt;=</a>(<span class="keyword">const</span>
-<a name="l01951"></a>01951 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l01952"></a>01952 {
-<a name="l01953"></a>01953 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01954"></a>01954 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01955"></a>01955 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01956"></a>01956 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">operator&gt;=</a>(n1._data(), n2._data());
-<a name="l01957"></a>01957 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01958"></a>01958 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01959"></a>01959 }
-<a name="l01960"></a>01960 } <span class="keywordflow">else</span> {
-<a name="l01961"></a>01961 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">operator&gt;=</a>(n1._data(), n2._data());
-<a name="l01962"></a><a class="code" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">01962</a> }
-<a name="l01963"></a>01963 }
-<a name="l01964"></a>01964
-<a name="l01965"></a>01965 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">operator==</a>(<span class="keyword">const</span>
-<a name="l01966"></a>01966 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l01967"></a>01967 {
-<a name="l01968"></a>01968 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01969"></a>01969 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01970"></a>01970 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01971"></a>01971 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">operator==</a>(n1._data(), n2._data());
-<a name="l01972"></a>01972 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01973"></a>01973 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01974"></a>01974 }
-<a name="l01975"></a>01975 } <span class="keywordflow">else</span> {
-<a name="l01976"></a>01976 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">operator==</a>(n1._data(), n2._data());
-<a name="l01977"></a><a class="code" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">01977</a> }
-<a name="l01978"></a>01978 }
-<a name="l01979"></a>01979
-<a name="l01980"></a>01980 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">operator!=</a>(<span class="keyword">const</span>
-<a name="l01981"></a>01981 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l01982"></a>01982 {
-<a name="l01983"></a>01983 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01984"></a>01984 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01985"></a>01985 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l01986"></a>01986 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">operator!=</a>(n1._data(), n2._data());
-<a name="l01987"></a>01987 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l01988"></a>01988 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01989"></a>01989 }
-<a name="l01990"></a>01990 } <span class="keywordflow">else</span> {
-<a name="l01991"></a>01991 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">operator!=</a>(n1._data(), n2._data());
-<a name="l01992"></a>01992 }
-<a name="l01993"></a>01993 }
-<a name="l01995"></a>01995
+<a name="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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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="l02000"></a>02000
-<a name="l02001"></a>02001
-<a name="l02010"></a>02010 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02011"></a>02011 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a15c7951bc910713f8209b7ebd78396da" title="Calculate the sum of two integers.">operator+</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l02012"></a>02012 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l02013"></a>02013 {
-<a name="l02014"></a>02014 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02015"></a>02015 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
-<a name="l02016"></a>02016 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02017"></a>02017 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l02018"></a>02018 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() + n2._data());
-<a name="l02019"></a>02019 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02020"></a>02020 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l02021"></a>02021 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02022"></a>02022 }
-<a name="l02023"></a>02023 } <span class="keywordflow">else</span> {
-<a name="l02024"></a>02024 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() + n2._data());
-<a name="l02025"></a>02025 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02026"></a>02026 }
-<a name="l02027"></a>02027 }
-<a name="l02028"></a>02028
-<a name="l02037"></a>02037 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02038"></a>02038 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ab6132105fbe7d7bf7a756b868b6a372e" title="Calculate the difference between two integers.">operator-</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l02039"></a>02039 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l02040"></a>02040 {
-<a name="l02041"></a>02041 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02042"></a>02042 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
-<a name="l02043"></a>02043 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02044"></a>02044 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l02045"></a>02045 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() - n2._data());
-<a name="l02046"></a>02046 <span class="keywordflow">if</span> (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; r._data().negative)
-<a name="l02047"></a>02047 r._fix_negative_unsigned();
-<a name="l02048"></a>02048 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02049"></a>02049 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l02050"></a>02050 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02051"></a>02051 }
-<a name="l02052"></a>02052 } <span class="keywordflow">else</span> {
-<a name="l02053"></a>02053 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() - n2._data());
-<a name="l02054"></a>02054 <span class="keywordflow">if</span> (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; r._data().negative)
-<a name="l02055"></a>02055 r._fix_negative_unsigned();
-<a name="l02056"></a>02056 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02057"></a>02057 }
-<a name="l02058"></a>02058 }
-<a name="l02059"></a>02059
-<a name="l02072"></a>02072 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02073"></a>02073 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ab33a5481a4a4b16ab592be6a88cd245c" title="Calculate the product of two integers.">operator*</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l02074"></a>02074 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l02075"></a>02075 {
-<a name="l02076"></a>02076 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02077"></a>02077 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
-<a name="l02078"></a>02078 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02079"></a>02079 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l02080"></a>02080 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() * n2._data());
-<a name="l02081"></a>02081 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02082"></a>02082 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l02083"></a>02083 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02084"></a>02084 }
-<a name="l02085"></a>02085 } <span class="keywordflow">else</span> {
-<a name="l02086"></a>02086 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() * n2._data());
-<a name="l02087"></a>02087 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02088"></a>02088 }
-<a name="l02089"></a>02089 }
-<a name="l02090"></a>02090
-<a name="l02101"></a>02101 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02102"></a>02102 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a806df63b92124039591a4ca09a8538e0" title="Calculate how many dividends would fit into divisor.">operator/</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt;
-<a name="l02103"></a>02103 dividend, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; divisor)
-<a name="l02104"></a>02104 {
-<a name="l02105"></a>02105 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02106"></a>02106 <span class="keywordflow">if</span> (dividend.is_nan() || divisor.is_nan()) <span class="keywordflow">return</span>
-<a name="l02107"></a>02107 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02108"></a>02108 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l02109"></a>02109 integer_t&lt;BOOST_XINT_APARAMS&gt; r(dividend._data() / divisor._data());
-<a name="l02110"></a>02110 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02111"></a>02111 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l02112"></a>02112 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02113"></a>02113 }
-<a name="l02114"></a>02114 } <span class="keywordflow">else</span> {
-<a name="l02115"></a>02115 integer_t&lt;BOOST_XINT_APARAMS&gt; r(dividend._data() / divisor._data());
-<a name="l02116"></a>02116 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02117"></a>02117 }
-<a name="l02118"></a>02118 }
-<a name="l02119"></a>02119
-<a name="l02129"></a>02129 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02130"></a>02130 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a0ac4116f3a9285a7f2f10d0104b870f7" title="Get the remainder after dividing a number by another.">operator%</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l02131"></a>02131 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l02132"></a>02132 {
-<a name="l02133"></a>02133 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02134"></a>02134 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
-<a name="l02135"></a>02135 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02136"></a>02136 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l02137"></a>02137 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() % n2._data());
-<a name="l02138"></a>02138 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02139"></a>02139 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l02140"></a>02140 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02141"></a>02141 }
-<a name="l02142"></a>02142 } <span class="keywordflow">else</span> {
-<a name="l02143"></a>02143 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() % n2._data());
-<a name="l02144"></a>02144 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02145"></a>02145 }
-<a name="l02146"></a>02146 }
-<a name="l02147"></a>02147
-<a name="l02157"></a>02157 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02158"></a>02158 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ad3bc201c8c1f3e87611abce8e6972538" title="Combine two integers using a bitwise AND operation.">operator&amp;</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l02159"></a>02159 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l02160"></a>02160 {
-<a name="l02161"></a>02161 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02162"></a>02162 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
-<a name="l02163"></a>02163 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02164"></a>02164 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l02165"></a>02165 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() &amp; n2._data());
-<a name="l02166"></a>02166 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02167"></a>02167 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l02168"></a>02168 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02169"></a>02169 }
-<a name="l02170"></a>02170 } <span class="keywordflow">else</span> {
-<a name="l02171"></a>02171 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() &amp; n2._data());
-<a name="l02172"></a>02172 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02173"></a>02173 }
-<a name="l02174"></a>02174 }
-<a name="l02175"></a>02175
-<a name="l02185"></a>02185 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02186"></a>02186 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a0b58f99b2c5bab4f7eec71d6058b23dd" title="Combine two integers using a bitwise OR operation.">operator|</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l02187"></a>02187 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l02188"></a>02188 {
-<a name="l02189"></a>02189 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02190"></a>02190 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
-<a name="l02191"></a>02191 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02192"></a>02192 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l02193"></a>02193 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() | n2._data());
-<a name="l02194"></a>02194 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02195"></a>02195 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l02196"></a>02196 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02197"></a>02197 }
-<a name="l02198"></a>02198 } <span class="keywordflow">else</span> {
-<a name="l02199"></a>02199 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() | n2._data());
-<a name="l02200"></a>02200 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02201"></a>02201 }
-<a name="l02202"></a>02202 }
-<a name="l02203"></a>02203
-<a name="l02213"></a>02213 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02214"></a>02214 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a0d1ce319bfb004fb6b93283bcb4f98c2" title="Combine two integers using a bitwise XOR operation.">operator^</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l02215"></a>02215 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l02216"></a>02216 {
-<a name="l02217"></a>02217 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02218"></a>02218 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
-<a name="l02219"></a>02219 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02220"></a>02220 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l02221"></a>02221 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() ^ n2._data());
-<a name="l02222"></a>02222 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02223"></a>02223 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l02224"></a>02224 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02225"></a>02225 }
-<a name="l02226"></a>02226 } <span class="keywordflow">else</span> {
-<a name="l02227"></a>02227 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() ^ n2._data());
-<a name="l02228"></a>02228 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02229"></a>02229 }
-<a name="l02230"></a>02230 }
-<a name="l02232"></a>02232
-<a name="l02235"></a>02235
-<a name="l02245"></a>02245 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02246"></a>02246 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; num1,
-<a name="l02247"></a>02247 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; num2)
-<a name="l02248"></a>02248 {
-<a name="l02249"></a>02249 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02250"></a>02250 <span class="keywordflow">if</span> (num1.is_nan() || num2.is_nan()) <span class="keywordflow">return</span>
-<a name="l02251"></a>02251 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02252"></a>02252 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l02253"></a>02253 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l02254"></a>02254 <a class="code" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(r._data(), num1._data(), num2._data());
-<a name="l02255"></a>02255 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l02256"></a>02256 r._make_unique();
-<a name="l02257"></a>02257 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02258"></a>02258 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l02259"></a>02259 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02260"></a>02260 }
-<a name="l02261"></a>02261 } <span class="keywordflow">else</span> {
-<a name="l02262"></a>02262 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l02263"></a>02263 <a class="code" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(r._data(), num1._data(), num2._data());
-<a name="l02264"></a>02264 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l02265"></a>02265 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02266"></a>02266 }
-<a name="l02267"></a>02267 }
-<a name="l02268"></a>02268
-<a name="l02279"></a>02279 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02280"></a>02280 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0" title="Calculate the Least Common Multiple of two integers.">lcm</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; num1,
-<a name="l02281"></a>02281 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; num2)
-<a name="l02282"></a>02282 {
-<a name="l02283"></a>02283 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02284"></a>02284 <span class="keywordflow">if</span> (num1.is_nan() || num2.is_nan()) <span class="keywordflow">return</span>
-<a name="l02285"></a>02285 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02286"></a>02286 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l02287"></a>02287 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l02288"></a>02288 <a class="code" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0" title="Calculate the Least Common Multiple of two integers.">lcm</a>(r._data(), num1._data(), num2._data());
-<a name="l02289"></a>02289 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l02290"></a>02290 r._make_unique();
-<a name="l02291"></a>02291 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02292"></a>02292 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l02293"></a>02293 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02294"></a>02294 }
-<a name="l02295"></a>02295 } <span class="keywordflow">else</span> {
-<a name="l02296"></a>02296 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l02297"></a>02297 <a class="code" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0" title="Calculate the Least Common Multiple of two integers.">lcm</a>(r._data(), num1._data(), num2._data());
-<a name="l02298"></a>02298 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l02299"></a>02299 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02300"></a>02300 }
-<a name="l02301"></a>02301 }
-<a name="l02302"></a>02302
-<a name="l02315"></a>02315 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02316"></a>02316 <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span>
-<a name="l02317"></a>02317 integer_t&lt;BOOST_XINT_APARAMS&gt; n2, <span class="keywordtype">bool</span> ignoresign = <span class="keyword">false</span>)
-<a name="l02318"></a>02318 {
-<a name="l02319"></a>02319 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02320"></a>02320 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> 2;
-<a name="l02321"></a>02321 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l02322"></a>02322 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(n1._data(), n2._data(), ignoresign);
-<a name="l02323"></a>02323 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l02324"></a>02324 <span class="keywordflow">return</span> 2;
-<a name="l02325"></a>02325 }
-<a name="l02326"></a>02326 } <span class="keywordflow">else</span> {
-<a name="l02327"></a>02327 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(n1._data(), n2._data(), ignoresign);
-<a name="l02328"></a>02328 }
-<a name="l02329"></a>02329 }
-<a name="l02330"></a>02330
-<a name="l02347"></a>02347 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02348"></a>02348 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n) {
-<a name="l02349"></a>02349 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02350"></a>02350 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> 0;
-<a name="l02351"></a>02351 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l02352"></a>02352 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(n._data());
-<a name="l02353"></a>02353 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l02354"></a>02354 <span class="keywordflow">return</span> 0;
-<a name="l02355"></a>02355 }
-<a name="l02356"></a>02356 } <span class="keywordflow">else</span> {
-<a name="l02357"></a>02357 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(n._data());
-<a name="l02358"></a>02358 }
-<a name="l02359"></a>02359 }
-<a name="l02361"></a>02361
-<a name="l02363"></a>02363 <span class="preprocessor">#define BOOST_XINT_ANY_COMPARE(rtype, op) \</span>
-<a name="l02364"></a>02364 <span class="preprocessor"> template &lt;BOOST_XINT_CLASS_APARAMS, typename N&gt; \</span>
-<a name="l02365"></a>02365 <span class="preprocessor"> rtype op(const integer_t&lt;BOOST_XINT_APARAMS&gt; n1, const N n2) { \</span>
-<a name="l02366"></a>02366 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \</span>
-<a name="l02367"></a>02367 <span class="preprocessor"> BOOST_XINT_TRY { \</span>
-<a name="l02368"></a>02368 <span class="preprocessor"> return op(n1, integer_t&lt;BOOST_XINT_APARAMS&gt;(n2)); \</span>
-<a name="l02369"></a>02369 <span class="preprocessor"> } BOOST_XINT_CATCH { \</span>
-<a name="l02370"></a>02370 <span class="preprocessor"> return rtype(0); \</span>
-<a name="l02371"></a>02371 <span class="preprocessor"> } \</span>
-<a name="l02372"></a>02372 <span class="preprocessor"> } else { \</span>
-<a name="l02373"></a>02373 <span class="preprocessor"> return op(n1, integer_t&lt;BOOST_XINT_APARAMS&gt;(n2)); \</span>
-<a name="l02374"></a>02374 <span class="preprocessor"> } \</span>
-<a name="l02375"></a>02375 <span class="preprocessor"> } \</span>
-<a name="l02376"></a>02376 <span class="preprocessor"> \</span>
-<a name="l02377"></a>02377 <span class="preprocessor"> template &lt;typename N, BOOST_XINT_CLASS_APARAMS&gt; \</span>
-<a name="l02378"></a>02378 <span class="preprocessor"> rtype op(const N n1, const integer_t&lt;BOOST_XINT_APARAMS&gt; n2) { \</span>
-<a name="l02379"></a>02379 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \</span>
-<a name="l02380"></a>02380 <span class="preprocessor"> BOOST_XINT_TRY { \</span>
-<a name="l02381"></a>02381 <span class="preprocessor"> return op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2); \</span>
-<a name="l02382"></a>02382 <span class="preprocessor"> } BOOST_XINT_CATCH { \</span>
-<a name="l02383"></a>02383 <span class="preprocessor"> return rtype(0); \</span>
-<a name="l02384"></a>02384 <span class="preprocessor"> } \</span>
-<a name="l02385"></a>02385 <span class="preprocessor"> } else { \</span>
-<a name="l02386"></a>02386 <span class="preprocessor"> return op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2); \</span>
-<a name="l02387"></a>02387 <span class="preprocessor"> } \</span>
-<a name="l02388"></a>02388 <span class="preprocessor"> }</span>
-<a name="l02389"></a>02389 <span class="preprocessor"></span>
-<a name="l02390"></a>02390 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, <span class="keyword">operator</span>&lt;)
-<a name="l02391"></a>02391 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator&gt;)
-<a name="l02392"></a>02392 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator&lt;=)
-<a name="l02393"></a>02393 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator&gt;=)
-<a name="l02394"></a>02394 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator==)
-<a name="l02395"></a>02395 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator!=)
-<a name="l02396"></a><a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090">02396</a> <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">int</span>, <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>)
-<a name="l02397"></a>02397
-<a name="l02399"></a>02399 <span class="preprocessor">#define BOOST_XINT_ANY_MATH(op) \</span>
-<a name="l02400"></a>02400 <span class="preprocessor"> template &lt;BOOST_XINT_CLASS_APARAMS, typename N&gt; \</span>
-<a name="l02401"></a>02401 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; op(const integer_t&lt;BOOST_XINT_APARAMS&gt; n1, \</span>
-<a name="l02402"></a>02402 <span class="preprocessor"> const N n2) \</span>
-<a name="l02403"></a>02403 <span class="preprocessor"> { \</span>
-<a name="l02404"></a>02404 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \</span>
-<a name="l02405"></a>02405 <span class="preprocessor"> BOOST_XINT_TRY { \</span>
-<a name="l02406"></a>02406 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; r(op(n1, \</span>
-<a name="l02407"></a>02407 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt;(n2))); \</span>
-<a name="l02408"></a>02408 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == true) \</span>
-<a name="l02409"></a>02409 <span class="preprocessor"> r._make_unique(); \</span>
-<a name="l02410"></a>02410 <span class="preprocessor"> if (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; \</span>
-<a name="l02411"></a>02411 <span class="preprocessor"> r._data().negative) r._fix_negative_unsigned(); \</span>
-<a name="l02412"></a>02412 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02413"></a>02413 <span class="preprocessor"> } BOOST_XINT_CATCH { \</span>
-<a name="l02414"></a>02414 <span class="preprocessor"> return detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;(); \</span>
-<a name="l02415"></a>02415 <span class="preprocessor"> } \</span>
-<a name="l02416"></a>02416 <span class="preprocessor"> } else { \</span>
-<a name="l02417"></a>02417 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; r(op(n1, \</span>
-<a name="l02418"></a>02418 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt;(n2))); \</span>
-<a name="l02419"></a>02419 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == true) \</span>
-<a name="l02420"></a>02420 <span class="preprocessor"> r._make_unique(); \</span>
-<a name="l02421"></a>02421 <span class="preprocessor"> if (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; r._data().negative) \</span>
-<a name="l02422"></a>02422 <span class="preprocessor"> r._fix_negative_unsigned(); \</span>
-<a name="l02423"></a>02423 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02424"></a>02424 <span class="preprocessor"> } \</span>
-<a name="l02425"></a>02425 <span class="preprocessor"> } \</span>
-<a name="l02426"></a>02426 <span class="preprocessor"> \</span>
-<a name="l02427"></a>02427 <span class="preprocessor"> template &lt;typename N, BOOST_XINT_CLASS_APARAMS&gt; \</span>
-<a name="l02428"></a>02428 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; op(const N n1, const \</span>
-<a name="l02429"></a>02429 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; n2) \</span>
-<a name="l02430"></a>02430 <span class="preprocessor"> { \</span>
-<a name="l02431"></a>02431 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \</span>
-<a name="l02432"></a>02432 <span class="preprocessor"> BOOST_XINT_TRY { \</span>
-<a name="l02433"></a>02433 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; \</span>
-<a name="l02434"></a>02434 <span class="preprocessor"> r(op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2)); \</span>
-<a name="l02435"></a>02435 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == true) \</span>
-<a name="l02436"></a>02436 <span class="preprocessor"> r._make_unique(); \</span>
-<a name="l02437"></a>02437 <span class="preprocessor"> if (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; \</span>
-<a name="l02438"></a>02438 <span class="preprocessor"> r._data().negative) r._fix_negative_unsigned(); \</span>
-<a name="l02439"></a>02439 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02440"></a>02440 <span class="preprocessor"> } BOOST_XINT_CATCH { \</span>
-<a name="l02441"></a>02441 <span class="preprocessor"> return detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;(); \</span>
-<a name="l02442"></a>02442 <span class="preprocessor"> } \</span>
-<a name="l02443"></a>02443 <span class="preprocessor"> } else { \</span>
-<a name="l02444"></a>02444 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; \</span>
-<a name="l02445"></a>02445 <span class="preprocessor"> r(op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2)); \</span>
-<a name="l02446"></a>02446 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == true) \</span>
-<a name="l02447"></a>02447 <span class="preprocessor"> r._make_unique(); \</span>
-<a name="l02448"></a>02448 <span class="preprocessor"> if (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; r._data().negative) \</span>
-<a name="l02449"></a>02449 <span class="preprocessor"> r._fix_negative_unsigned(); \</span>
-<a name="l02450"></a>02450 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02451"></a>02451 <span class="preprocessor"> } \</span>
-<a name="l02452"></a>02452 <span class="preprocessor"> }</span>
-<a name="l02453"></a>02453 <span class="preprocessor"></span>
-<a name="l02454"></a>02454 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644" title="Calculate the value of ne">pow</a>)
-<a name="l02455"></a>02455 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>)
-<a name="l02456"></a>02456 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>)
-<a name="l02457"></a>02457 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>)
-<a name="l02458"></a>02458 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>)
-<a name="l02459"></a>02459 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator+)
-<a name="l02460"></a>02460 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator-)
-<a name="l02461"></a>02461 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator*)
-<a name="l02462"></a>02462 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator/)
-<a name="l02463"></a>02463 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator%)
-<a name="l02464"></a>02464 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator&amp;)
-<a name="l02465"></a>02465 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator|)
-<a name="l02466"></a>02466 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator^)
-<a name="l02467"></a>02467 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>)
-<a name="l02468"></a>02468 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0" title="Calculate the Least Common Multiple of two integers.">lcm</a>)
-<a name="l02469"></a>02469
-<a name="l02472"></a>02472 template &lt;typename charT, typename traits, <a class="code" href="options_8hpp.html#aeebffc787ad64df0fd45d351e3c36d89">BOOST_XINT_CLASS_APARAMS</a>&gt; inline
-<a name="l02473"></a>02473 std::basic_ostream&lt;charT,traits&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;charT,
-<a name="l02474"></a>02474 traits&gt;&amp; out, const integer_t&lt;<a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt; n)
-<a name="l02475"></a>02475 {
-<a name="l02476"></a>02476 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow &amp;&amp; n.is_nan()) <span class="keywordflow">return</span>
-<a name="l02477"></a>02477 <span class="keyword">operator</span>&lt;&lt;(out, detail::nan_text&lt;charT&gt;());
-<a name="l02478"></a>02478 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a0e501790ec0437c226ce54f98493aad9">operator&lt;&lt;</a>(out, n._data());
-<a name="l02479"></a><a class="code" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">02479</a> }
-<a name="l02480"></a>02480
-<a name="l02481"></a>02481 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits, BOOST_XINT_CLASS_APARAMS&gt; <span class="keyword">inline</span>
-<a name="l02482"></a>02482 std::basic_istream&lt;charT,traits&gt;&amp; <a class="code" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">operator&gt;&gt;</a>(std::basic_istream&lt;charT,
-<a name="l02483"></a>02483 traits&gt;&amp; in, integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; n)
-<a name="l02484"></a>02484 {
-<a name="l02485"></a>02485 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02486"></a>02486 <span class="keyword">const</span> std::basic_string&lt;charT&gt;&amp; tnan = detail::nan_text&lt;charT&gt;();
-<a name="l02487"></a>02487 charT nextchar = charT(in.peek());
-<a name="l02488"></a>02488 <span class="keywordflow">if</span> (nextchar == tnan[0]) {
-<a name="l02489"></a>02489 <span class="comment">// Must be either #NaN# or an error</span>
-<a name="l02490"></a>02490 std::vector&lt;charT&gt; buffer;
-<a name="l02491"></a>02491
-<a name="l02492"></a>02492 charT p = 0;
-<a name="l02493"></a>02493 <span class="keywordflow">for</span> (std::size_t i = 0; i &lt; tnan.length(); ++i) {
-<a name="l02494"></a>02494 in &gt;&gt; p;
-<a name="l02495"></a>02495 buffer.push_back(p);
-<a name="l02496"></a>02496 }
-<a name="l02497"></a>02497 buffer.push_back(0);
-<a name="l02498"></a>02498
-<a name="l02499"></a>02499 std::basic_string&lt;charT&gt; str(&amp;buffer[0]);
-<a name="l02500"></a>02500 <span class="keywordflow">if</span> (str == tnan)
-<a name="l02501"></a>02501 n = detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02502"></a>02502 <span class="keywordflow">else</span> in.setstate(std::ios::failbit);
-<a name="l02503"></a>02503 <span class="keywordflow">return</span> in;
-<a name="l02504"></a>02504 }
-<a name="l02505"></a>02505 }
-<a name="l02506"></a>02506 <a class="code" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">operator&gt;&gt;</a>(in, n._data());
-<a name="l02507"></a>02507 <span class="keywordflow">if</span> (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; n._data().negative)
-<a name="l02508"></a>02508 n._fix_negative_unsigned();
-<a name="l02509"></a>02509 <span class="keywordflow">return</span> in;
-<a name="l02510"></a>02510 }
-<a name="l02512"></a>02512
-<a name="l02513"></a>02513 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02514"></a>02514 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; left,
-<a name="l02515"></a>02515 integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; right)
-<a name="l02516"></a>02516 {
-<a name="l02517"></a>02517 left._swap(right);
-<a name="l02518"></a>02518 }
-<a name="l02519"></a>02519
-<a name="l02524"></a>02524 <span class="keyword">typedef</span> integer_t&lt;&gt; <a class="code" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c" title="The default arbitrary-length integer type.">integer</a>;
-<a name="l02525"></a>02525
-<a name="l02531"></a>02531 <span class="keyword">typedef</span> integer_t&lt;options::nothrow&gt; <a class="code" href="namespaceboost_1_1xint.html#adb761045d90aee163058a57489b51df2" title="The default arbitrary-length nothrow_integer type.">nothrow_integer</a>;
-<a name="l02532"></a>02532
-<a name="l02533"></a>02533 } <span class="comment">// namespace xint</span>
-<a name="l02534"></a>02534 } <span class="comment">// namespace boost</span>
-<a name="l02535"></a>02535
-<a name="l02536"></a>02536 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l02537"></a>02537 <span class="preprocessor"></span><span class="keyword">namespace </span>std {
-<a name="l02538"></a>02538
-<a name="l02539"></a>02539 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02540"></a>02540 <span class="keyword">class </span>numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt; {
-<a name="l02541"></a>02541 <span class="keyword">public</span>:
-<a name="l02542"></a>02542 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_specialized;
-<a name="l02543"></a>02543
-<a name="l02544"></a>02544 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> min
-<a name="l02545"></a>02545 BOOST_PREVENT_MACRO_SUBSTITUTION() throw()
-<a name="l02546"></a>02546 {
-<a name="l02547"></a>02547 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>)
-<a name="l02548"></a>02548 <span class="keywordflow">return</span> -~(<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a>());
-<a name="l02549"></a>02549 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l02550"></a>02550 }
-<a name="l02551"></a>02551 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> max
-<a name="l02552"></a>02552 BOOST_PREVENT_MACRO_SUBSTITUTION() throw()
-<a name="l02553"></a>02553 {
-<a name="l02554"></a>02554 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>)
-<a name="l02555"></a>02555 <span class="keywordflow">return</span> ~(<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a>());
-<a name="l02556"></a>02556 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l02557"></a>02557 }
-<a name="l02558"></a>02558
-<a name="l02559"></a>02559 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> digits;
-<a name="l02560"></a>02560 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> digits10;
-<a name="l02561"></a>02561 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_signed;
-<a name="l02562"></a>02562 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_integer;
-<a name="l02563"></a>02563 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_exact;
-<a name="l02564"></a>02564 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> radix;
-<a name="l02565"></a>02565 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> epsilon() throw() { <span class="keywordflow">return</span>
-<a name="l02566"></a>02566 0; }
-<a name="l02567"></a>02567 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> round_error() throw() {
-<a name="l02568"></a>02568 <span class="keywordflow">return</span> 0; }
-<a name="l02569"></a>02569
-<a name="l02570"></a>02570 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> min_exponent; <span class="comment">// N/A</span>
-<a name="l02571"></a>02571 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> min_exponent10; <span class="comment">// N/A</span>
-<a name="l02572"></a>02572 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> max_exponent; <span class="comment">// N/A</span>
-<a name="l02573"></a>02573 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> max_exponent10; <span class="comment">// N/A</span>
-<a name="l02574"></a>02574
-<a name="l02575"></a>02575 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_infinity; <span class="comment">// N/A</span>
-<a name="l02576"></a>02576 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_quiet_NaN;
-<a name="l02577"></a>02577 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_signaling_NaN; <span class="comment">// N/A</span>
-<a name="l02578"></a>02578 <span class="keyword">static</span> <span class="keyword">const</span> float_denorm_style has_denorm; <span class="comment">// N/A</span>
-<a name="l02579"></a>02579 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_denorm_loss; <span class="comment">// N/A</span>
-<a name="l02580"></a>02580
-<a name="l02581"></a>02581 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> infinity() throw() {
-<a name="l02582"></a>02582 <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
-<a name="l02583"></a>02583 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> quiet_NaN() throw() {
-<a name="l02584"></a>02584 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow</a>) <span class="keywordflow">return</span> boost::
-<a name="l02585"></a>02585 xint::detail::get_nan&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02586"></a>02586 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l02587"></a>02587 }
-<a name="l02588"></a>02588 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> signaling_NaN() throw() {
-<a name="l02589"></a>02589 <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
-<a name="l02590"></a>02590 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> denorm_min() throw() {
-<a name="l02591"></a>02591 <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
-<a name="l02592"></a>02592
-<a name="l02593"></a>02593 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_iec559; <span class="comment">// N/A</span>
-<a name="l02594"></a>02594 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_bounded;
-<a name="l02595"></a>02595 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_modulo;
-<a name="l02596"></a>02596
-<a name="l02597"></a>02597 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> traps; <span class="comment">// I assume this means exceptions?</span>
-<a name="l02598"></a>02598 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> tinyness_before; <span class="comment">// N/A</span>
-<a name="l02599"></a>02599 <span class="keyword">static</span> <span class="keyword">const</span> float_round_style round_style; <span class="comment">// N/A</span>
-<a name="l02600"></a>02600 };
-<a name="l02601"></a>02601
-<a name="l02602"></a>02602 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02603"></a>02603 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02604"></a>02604 is_specialized = <span class="keyword">true</span>;
-<a name="l02605"></a>02605
-<a name="l02606"></a>02606 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02607"></a>02607 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::digits =
-<a name="l02608"></a>02608 <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>);
-<a name="l02609"></a>02609
-<a name="l02610"></a>02610 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02611"></a>02611 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::digits10
-<a name="l02612"></a>02612 = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(boost::xint::detail::log10_bits(
-<a name="l02613"></a>02613 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>));
-<a name="l02614"></a>02614
-<a name="l02615"></a>02615 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02616"></a>02616 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02617"></a>02617 is_signed = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed</a> ? <span class="keyword">true</span> :
-<a name="l02618"></a>02618 <span class="keyword">false</span>);
-<a name="l02619"></a>02619
-<a name="l02620"></a>02620 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02621"></a>02621 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02622"></a>02622 is_integer = <span class="keyword">true</span>;
-<a name="l02623"></a>02623
-<a name="l02624"></a>02624 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02625"></a>02625 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::is_exact
-<a name="l02626"></a>02626 = <span class="keyword">true</span>;
-<a name="l02627"></a>02627
-<a name="l02628"></a>02628 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02629"></a>02629 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::radix =
-<a name="l02630"></a>02630 2;
-<a name="l02631"></a>02631
-<a name="l02632"></a>02632 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02633"></a>02633 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02634"></a>02634 min_exponent = 0;
-<a name="l02635"></a>02635
-<a name="l02636"></a>02636 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02637"></a>02637 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02638"></a>02638 min_exponent10 = 0;
-<a name="l02639"></a>02639
-<a name="l02640"></a>02640 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02641"></a>02641 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02642"></a>02642 max_exponent = 0;
-<a name="l02643"></a>02643
-<a name="l02644"></a>02644 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02645"></a>02645 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02646"></a>02646 max_exponent10 = 0;
-<a name="l02647"></a>02647
-<a name="l02648"></a>02648 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02649"></a>02649 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02650"></a>02650 has_infinity = <span class="keyword">false</span>;
-<a name="l02651"></a>02651
-<a name="l02652"></a>02652 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02653"></a>02653 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02654"></a>02654 has_quiet_NaN = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow</a> ? <span class="keyword">true</span>
-<a name="l02655"></a>02655 : <span class="keyword">false</span>);
-<a name="l02656"></a>02656
-<a name="l02657"></a>02657 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02658"></a>02658 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02659"></a>02659 has_signaling_NaN = <span class="keyword">false</span>;
-<a name="l02660"></a>02660
-<a name="l02661"></a>02661 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02662"></a>02662 <span class="keyword">const</span> float_denorm_style numeric_limits&lt;<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t</a>&lt;
-<a name="l02663"></a>02663 <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt; &gt;::has_denorm = denorm_absent;
-<a name="l02664"></a>02664
-<a name="l02665"></a>02665 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02666"></a>02666 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02667"></a>02667 has_denorm_loss = <span class="keyword">false</span>;
-<a name="l02668"></a>02668
-<a name="l02669"></a>02669 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02670"></a>02670 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02671"></a>02671 is_iec559 = <span class="keyword">false</span>;
-<a name="l02672"></a>02672
-<a name="l02673"></a>02673 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02674"></a>02674 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02675"></a>02675 is_bounded = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a> == 0 ? <span class="keyword">false</span>
-<a name="l02676"></a>02676 : <span class="keyword">true</span>);
-<a name="l02677"></a>02677
-<a name="l02678"></a>02678 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02679"></a>02679 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02680"></a>02680 is_modulo = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a> == 0 ? <span class="keyword">false</span> :
-<a name="l02681"></a>02681 <span class="keyword">true</span>);
-<a name="l02682"></a>02682
-<a name="l02683"></a>02683 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02684"></a>02684 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::traps =
-<a name="l02685"></a>02685 (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow</a> ? <span class="keyword">false</span> : <span class="keyword">true</span>);
-<a name="l02686"></a>02686
-<a name="l02687"></a>02687 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02688"></a>02688 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02689"></a>02689 tinyness_before = <span class="keyword">false</span>;
-<a name="l02690"></a>02690
-<a name="l02691"></a>02691 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02692"></a>02692 <span class="keyword">const</span> float_round_style numeric_limits&lt;<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t</a>&lt;
-<a name="l02693"></a>02693 <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt; &gt;::round_style = round_indeterminate;
-<a name="l02694"></a>02694
-<a name="l02695"></a>02695 } <span class="comment">// namespace std</span>
-<a name="l02696"></a>02696 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l02697"></a>02697 <span class="preprocessor"></span><span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTEGER_HPP</span>
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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"> BOOST_XINT_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"> } BOOST_XINT_CATCH { \</span>
+<a name="l02369"></a>02369 <span class="preprocessor"> return rtype(0); \</span>
+<a name="l02370"></a>02370 <span class="preprocessor"> } \</span>
+<a name="l02371"></a>02371 <span class="preprocessor"> } else { \</span>
+<a name="l02372"></a>02372 <span class="preprocessor"> return op(n1, integer_t&lt;BOOST_XINT_APARAMS&gt;(n2)); \</span>
+<a name="l02373"></a>02373 <span class="preprocessor"> } \</span>
+<a name="l02374"></a>02374 <span class="preprocessor"> } \</span>
+<a name="l02375"></a>02375 <span class="preprocessor"> \</span>
+<a name="l02376"></a>02376 <span class="preprocessor"> template &lt;typename N, BOOST_XINT_CLASS_APARAMS&gt; \</span>
+<a name="l02377"></a>02377 <span class="preprocessor"> rtype op(const N n1, const integer_t&lt;BOOST_XINT_APARAMS&gt; n2) { \</span>
+<a name="l02378"></a>02378 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \</span>
+<a name="l02379"></a>02379 <span class="preprocessor"> BOOST_XINT_TRY { \</span>
+<a name="l02380"></a>02380 <span class="preprocessor"> return op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2); \</span>
+<a name="l02381"></a>02381 <span class="preprocessor"> } BOOST_XINT_CATCH { \</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"> BOOST_XINT_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"> } BOOST_XINT_CATCH { \</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"> BOOST_XINT_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"> } BOOST_XINT_CATCH { \</span>
+<a name="l02440"></a>02440 <span class="preprocessor"> return detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;(); \</span>
+<a name="l02441"></a>02441 <span class="preprocessor"> } \</span>
+<a name="l02442"></a>02442 <span class="preprocessor"> } else { \</span>
+<a name="l02443"></a>02443 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; \</span>
+<a name="l02444"></a>02444 <span class="preprocessor"> r(op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2)); \</span>
+<a name="l02445"></a>02445 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == true) \</span>
+<a name="l02446"></a>02446 <span class="preprocessor"> r._make_unique(); \</span>
+<a name="l02447"></a>02447 <span class="preprocessor"> if (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; r._data().negative) \</span>
+<a name="l02448"></a>02448 <span class="preprocessor"> r._fix_negative_unsigned(); \</span>
+<a name="l02449"></a>02449 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
+<a name="l02450"></a>02450 <span class="preprocessor"> } \</span>
+<a name="l02451"></a>02451 <span class="preprocessor"> }</span>
+<a name="l02452"></a>02452 <span class="preprocessor"></span>
+<a name="l02453"></a>02453 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644" title="Calculate the value of ne">pow</a>)
+<a name="l02454"></a>02454 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>)
+<a name="l02455"></a>02455 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>)
+<a name="l02456"></a>02456 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>)
+<a name="l02457"></a>02457 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>)
+<a name="l02458"></a>02458 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator+)
+<a name="l02459"></a>02459 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator-)
+<a name="l02460"></a>02460 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator*)
+<a name="l02461"></a>02461 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator/)
+<a name="l02462"></a>02462 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator%)
+<a name="l02463"></a>02463 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator&amp;)
+<a name="l02464"></a>02464 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator|)
+<a name="l02465"></a>02465 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator^)
+<a name="l02466"></a>02466 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>)
+<a name="l02467"></a>02467 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0" title="Calculate the Least Common Multiple of two integers.">lcm</a>)
+<a name="l02468"></a>02468
+<a name="l02471"></a>02471 template &lt;typename charT, typename traits, <a class="code" href="options_8hpp.html#aeebffc787ad64df0fd45d351e3c36d89">BOOST_XINT_CLASS_APARAMS</a>&gt; inline
+<a name="l02472"></a>02472 std::basic_ostream&lt;charT,traits&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;charT,
+<a name="l02473"></a>02473 traits&gt;&amp; out, const integer_t&lt;<a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt; n)
+<a name="l02474"></a>02474 {
+<a name="l02475"></a>02475 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow &amp;&amp; n.is_nan()) <span class="keywordflow">return</span>
+<a name="l02476"></a>02476 <span class="keyword">operator</span>&lt;&lt;(out, detail::nan_text&lt;charT&gt;());
+<a name="l02477"></a>02477 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a0e501790ec0437c226ce54f98493aad9">operator&lt;&lt;</a>(out, n._data());
+<a name="l02478"></a><a class="code" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">02478</a> }
+<a name="l02479"></a>02479
+<a name="l02480"></a>02480 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits, BOOST_XINT_CLASS_APARAMS&gt; <span class="keyword">inline</span>
+<a name="l02481"></a>02481 std::basic_istream&lt;charT,traits&gt;&amp; <a class="code" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">operator&gt;&gt;</a>(std::basic_istream&lt;charT,
+<a name="l02482"></a>02482 traits&gt;&amp; in, integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; n)
+<a name="l02483"></a>02483 {
+<a name="l02484"></a>02484 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l02485"></a>02485 <span class="keyword">const</span> std::basic_string&lt;charT&gt;&amp; tnan = detail::nan_text&lt;charT&gt;();
+<a name="l02486"></a>02486 charT nextchar = charT(in.peek());
+<a name="l02487"></a>02487 <span class="keywordflow">if</span> (nextchar == tnan[0]) {
+<a name="l02488"></a>02488 <span class="comment">// Must be either #NaN# or an error</span>
+<a name="l02489"></a>02489 std::vector&lt;charT&gt; buffer;
+<a name="l02490"></a>02490
+<a name="l02491"></a>02491 charT p = 0;
+<a name="l02492"></a>02492 <span class="keywordflow">for</span> (std::size_t i = 0; i &lt; tnan.length(); ++i) {
+<a name="l02493"></a>02493 in &gt;&gt; p;
+<a name="l02494"></a>02494 buffer.push_back(p);
+<a name="l02495"></a>02495 }
+<a name="l02496"></a>02496 buffer.push_back(0);
+<a name="l02497"></a>02497
+<a name="l02498"></a>02498 std::basic_string&lt;charT&gt; str(&amp;buffer[0]);
+<a name="l02499"></a>02499 <span class="keywordflow">if</span> (str == tnan)
+<a name="l02500"></a>02500 n = detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02501"></a>02501 <span class="keywordflow">else</span> in.setstate(std::ios::failbit);
+<a name="l02502"></a>02502 <span class="keywordflow">return</span> in;
+<a name="l02503"></a>02503 }
+<a name="l02504"></a>02504 }
+<a name="l02505"></a>02505 <a class="code" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">operator&gt;&gt;</a>(in, n._data());
+<a name="l02506"></a>02506 <span class="keywordflow">if</span> (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; n._data().negative)
+<a name="l02507"></a>02507 n._fix_negative_unsigned();
+<a name="l02508"></a>02508 <span class="keywordflow">return</span> in;
+<a name="l02509"></a>02509 }
+<a name="l02511"></a>02511
+<a name="l02512"></a>02512 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02513"></a>02513 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; left,
+<a name="l02514"></a>02514 integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; right)
+<a name="l02515"></a>02515 {
+<a name="l02516"></a>02516 left._swap(right);
+<a name="l02517"></a>02517 }
+<a name="l02518"></a>02518
+<a name="l02523"></a>02523 <span class="keyword">typedef</span> integer_t&lt;&gt; <a class="code" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c" title="The default arbitrary-length integer type.">integer</a>;
+<a name="l02524"></a>02524
+<a name="l02530"></a>02530 <span class="keyword">typedef</span> integer_t&lt;options::nothrow&gt; <a class="code" href="namespaceboost_1_1xint.html#adb761045d90aee163058a57489b51df2" title="The default arbitrary-length nothrow_integer type.">nothrow_integer</a>;
+<a name="l02531"></a>02531
+<a name="l02532"></a>02532 } <span class="comment">// namespace xint</span>
+<a name="l02533"></a>02533 } <span class="comment">// namespace boost</span>
+<a name="l02534"></a>02534
+<a name="l02535"></a>02535 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l02536"></a>02536 <span class="preprocessor"></span><span class="keyword">namespace </span>std {
+<a name="l02537"></a>02537
+<a name="l02538"></a>02538 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02539"></a>02539 <span class="keyword">class </span>numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt; {
+<a name="l02540"></a>02540 <span class="keyword">public</span>:
+<a name="l02541"></a>02541 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_specialized;
+<a name="l02542"></a>02542
+<a name="l02543"></a>02543 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> min
+<a name="l02544"></a>02544 BOOST_PREVENT_MACRO_SUBSTITUTION() throw()
+<a name="l02545"></a>02545 {
+<a name="l02546"></a>02546 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>)
+<a name="l02547"></a>02547 <span class="keywordflow">return</span> -~(<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a>());
+<a name="l02548"></a>02548 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
+<a name="l02549"></a>02549 }
+<a name="l02550"></a>02550 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> max
+<a name="l02551"></a>02551 BOOST_PREVENT_MACRO_SUBSTITUTION() throw()
+<a name="l02552"></a>02552 {
+<a name="l02553"></a>02553 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>)
+<a name="l02554"></a>02554 <span class="keywordflow">return</span> ~(<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a>());
+<a name="l02555"></a>02555 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
+<a name="l02556"></a>02556 }
+<a name="l02557"></a>02557
+<a name="l02558"></a>02558 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> digits;
+<a name="l02559"></a>02559 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> digits10;
+<a name="l02560"></a>02560 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_signed;
+<a name="l02561"></a>02561 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_integer;
+<a name="l02562"></a>02562 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_exact;
+<a name="l02563"></a>02563 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> radix;
+<a name="l02564"></a>02564 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> epsilon() throw() { <span class="keywordflow">return</span>
+<a name="l02565"></a>02565 0; }
+<a name="l02566"></a>02566 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> round_error() throw() {
+<a name="l02567"></a>02567 <span class="keywordflow">return</span> 0; }
+<a name="l02568"></a>02568
+<a name="l02569"></a>02569 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> min_exponent; <span class="comment">// N/A</span>
+<a name="l02570"></a>02570 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> min_exponent10; <span class="comment">// N/A</span>
+<a name="l02571"></a>02571 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> max_exponent; <span class="comment">// N/A</span>
+<a name="l02572"></a>02572 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> max_exponent10; <span class="comment">// N/A</span>
+<a name="l02573"></a>02573
+<a name="l02574"></a>02574 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_infinity; <span class="comment">// N/A</span>
+<a name="l02575"></a>02575 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_quiet_NaN;
+<a name="l02576"></a>02576 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_signaling_NaN; <span class="comment">// N/A</span>
+<a name="l02577"></a>02577 <span class="keyword">static</span> <span class="keyword">const</span> float_denorm_style has_denorm; <span class="comment">// N/A</span>
+<a name="l02578"></a>02578 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_denorm_loss; <span class="comment">// N/A</span>
+<a name="l02579"></a>02579
+<a name="l02580"></a>02580 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> infinity() throw() {
+<a name="l02581"></a>02581 <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
+<a name="l02582"></a>02582 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> quiet_NaN() throw() {
+<a name="l02583"></a>02583 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow</a>) <span class="keywordflow">return</span> boost::
+<a name="l02584"></a>02584 xint::detail::get_nan&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02585"></a>02585 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
+<a name="l02586"></a>02586 }
+<a name="l02587"></a>02587 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> signaling_NaN() throw() {
+<a name="l02588"></a>02588 <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
+<a name="l02589"></a>02589 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> denorm_min() throw() {
+<a name="l02590"></a>02590 <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
+<a name="l02591"></a>02591
+<a name="l02592"></a>02592 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_iec559; <span class="comment">// N/A</span>
+<a name="l02593"></a>02593 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_bounded;
+<a name="l02594"></a>02594 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_modulo;
+<a name="l02595"></a>02595
+<a name="l02596"></a>02596 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> traps; <span class="comment">// I assume this means exceptions?</span>
+<a name="l02597"></a>02597 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> tinyness_before; <span class="comment">// N/A</span>
+<a name="l02598"></a>02598 <span class="keyword">static</span> <span class="keyword">const</span> float_round_style round_style; <span class="comment">// N/A</span>
+<a name="l02599"></a>02599 };
+<a name="l02600"></a>02600
+<a name="l02601"></a>02601 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02602"></a>02602 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02603"></a>02603 is_specialized = <span class="keyword">true</span>;
+<a name="l02604"></a>02604
+<a name="l02605"></a>02605 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02606"></a>02606 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::digits =
+<a name="l02607"></a>02607 <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>);
+<a name="l02608"></a>02608
+<a name="l02609"></a>02609 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02610"></a>02610 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::digits10
+<a name="l02611"></a>02611 = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(boost::xint::detail::log10_bits(
+<a name="l02612"></a>02612 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>));
+<a name="l02613"></a>02613
+<a name="l02614"></a>02614 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02615"></a>02615 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02616"></a>02616 is_signed = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed</a> ? <span class="keyword">true</span> :
+<a name="l02617"></a>02617 <span class="keyword">false</span>);
+<a name="l02618"></a>02618
+<a name="l02619"></a>02619 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02620"></a>02620 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02621"></a>02621 is_integer = <span class="keyword">true</span>;
+<a name="l02622"></a>02622
+<a name="l02623"></a>02623 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02624"></a>02624 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::is_exact
+<a name="l02625"></a>02625 = <span class="keyword">true</span>;
+<a name="l02626"></a>02626
+<a name="l02627"></a>02627 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02628"></a>02628 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::radix =
+<a name="l02629"></a>02629 2;
+<a name="l02630"></a>02630
+<a name="l02631"></a>02631 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02632"></a>02632 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02633"></a>02633 min_exponent = 0;
+<a name="l02634"></a>02634
+<a name="l02635"></a>02635 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02636"></a>02636 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02637"></a>02637 min_exponent10 = 0;
+<a name="l02638"></a>02638
+<a name="l02639"></a>02639 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02640"></a>02640 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02641"></a>02641 max_exponent = 0;
+<a name="l02642"></a>02642
+<a name="l02643"></a>02643 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02644"></a>02644 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02645"></a>02645 max_exponent10 = 0;
+<a name="l02646"></a>02646
+<a name="l02647"></a>02647 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02648"></a>02648 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02649"></a>02649 has_infinity = <span class="keyword">false</span>;
+<a name="l02650"></a>02650
+<a name="l02651"></a>02651 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02652"></a>02652 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02653"></a>02653 has_quiet_NaN = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow</a> ? <span class="keyword">true</span>
+<a name="l02654"></a>02654 : <span class="keyword">false</span>);
+<a name="l02655"></a>02655
+<a name="l02656"></a>02656 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02657"></a>02657 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02658"></a>02658 has_signaling_NaN = <span class="keyword">false</span>;
+<a name="l02659"></a>02659
+<a name="l02660"></a>02660 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02661"></a>02661 <span class="keyword">const</span> float_denorm_style numeric_limits&lt;<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t</a>&lt;
+<a name="l02662"></a>02662 <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt; &gt;::has_denorm = denorm_absent;
+<a name="l02663"></a>02663
+<a name="l02664"></a>02664 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02665"></a>02665 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02666"></a>02666 has_denorm_loss = <span class="keyword">false</span>;
+<a name="l02667"></a>02667
+<a name="l02668"></a>02668 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02669"></a>02669 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02670"></a>02670 is_iec559 = <span class="keyword">false</span>;
+<a name="l02671"></a>02671
+<a name="l02672"></a>02672 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02673"></a>02673 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02674"></a>02674 is_bounded = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a> == 0 ? <span class="keyword">false</span>
+<a name="l02675"></a>02675 : <span class="keyword">true</span>);
+<a name="l02676"></a>02676
+<a name="l02677"></a>02677 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02678"></a>02678 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02679"></a>02679 is_modulo = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a> == 0 ? <span class="keyword">false</span> :
+<a name="l02680"></a>02680 <span class="keyword">true</span>);
+<a name="l02681"></a>02681
+<a name="l02682"></a>02682 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02683"></a>02683 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::traps =
+<a name="l02684"></a>02684 (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow</a> ? <span class="keyword">false</span> : <span class="keyword">true</span>);
+<a name="l02685"></a>02685
+<a name="l02686"></a>02686 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02687"></a>02687 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02688"></a>02688 tinyness_before = <span class="keyword">false</span>;
+<a name="l02689"></a>02689
+<a name="l02690"></a>02690 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02691"></a>02691 <span class="keyword">const</span> float_round_style numeric_limits&lt;<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t</a>&lt;
+<a name="l02692"></a>02692 <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt; &gt;::round_style = round_indeterminate;
+<a name="l02693"></a>02693
+<a name="l02694"></a>02694 } <span class="comment">// namespace std</span>
+<a name="l02695"></a>02695 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l02696"></a>02696 <span class="preprocessor"></span><span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTEGER_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -66,7 +66,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00034">34</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00031">31</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
 
 </div>
 </div>
@@ -81,7 +81,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00033">33</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00030">30</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
 
 </div>
 </div>
@@ -96,7 +96,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00035">35</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00032">32</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
 
 </div>
 </div>
@@ -111,13 +111,13 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00032">32</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00029">29</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
 
 </div>
 </div>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -39,115 +39,112 @@
 <a name="l00020"></a>00020 <span class="preprocessor">#ifndef BOOST_INCLUDED_XINT_INTERNALS_HPP</span>
 <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_INCLUDED_XINT_INTERNALS_HPP</span>
 <a name="l00022"></a>00022 <span class="preprocessor"></span>
-<a name="l00023"></a>00023 <span class="comment">// Leave this commented out to use it as a header-only library.</span>
-<a name="l00024"></a>00024 <span class="comment">//#define BOOST_XINT_COMPILED_LIB</span>
-<a name="l00025"></a>00025
-<a name="l00026"></a>00026 <span class="preprocessor">#ifdef BOOST_XINT_NO_EXCEPTIONS</span>
-<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_TRY if (1)</span>
-<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH_BADALLOC else if (0)</span>
-<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH else</span>
-<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH_E else</span>
-<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#else</span>
-<a name="l00032"></a><a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">00032</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_TRY try</span>
-<a name="l00033"></a><a class="code" href="internals_8hpp.html#a376c1d9d0cc79d3d74539c6b9c38f304">00033</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH_BADALLOC catch (std::bad_alloc&amp;)</span>
-<a name="l00034"></a><a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">00034</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH catch (std::exception&amp;)</span>
-<a name="l00035"></a><a class="code" href="internals_8hpp.html#ab7e46f415e3d76f4d3b7d350bcbe3a85">00035</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH_E catch (std::exception&amp; e)</span>
-<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00037"></a>00037 <span class="preprocessor"></span>
-<a name="l00038"></a>00038 <span class="preprocessor">#include &quot;../exceptions.hpp&quot;</span>
-<a name="l00039"></a>00039 <span class="preprocessor">#include &quot;../random.hpp&quot;</span>
-<a name="l00040"></a>00040
-<a name="l00041"></a>00041 <span class="preprocessor">#include &quot;<a class="code" href="basic__types__and__includes_8hpp.html" title="Contains the most basic types, constants, and includes.">basic_types_and_includes.hpp</a>&quot;</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;<a class="code" href="bitqueue_8hpp.html" title="Contains the bitqueue_t class, used internally.">bitqueue.hpp</a>&quot;</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;<a class="code" href="policies_8hpp.html" title="Contains the policy classes.">policies.hpp</a>&quot;</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;<a class="code" href="magnitude__manager_8hpp.html" title="Contains the magnitude_manager_t class.">magnitude_manager.hpp</a>&quot;</span>
-<a name="l00045"></a>00045 <span class="preprocessor">#include &quot;<a class="code" href="raw__integer_8hpp.html" title="Contains the raw_integer class declaration, and miscellaneous definitions for member...">raw_integer.hpp</a>&quot;</span>
-<a name="l00046"></a>00046
-<a name="l00047"></a>00047 <span class="preprocessor">#include &quot;<a class="code" href="log2_8hpp.html" title="Contains the log2 implementations.">log2.hpp</a>&quot;</span>
-<a name="l00048"></a>00048 <span class="preprocessor">#include &quot;<a class="code" href="shift_8hpp.html" title="Contains the bit-shifting function definitions.">shift.hpp</a>&quot;</span>
-<a name="l00049"></a>00049 <span class="preprocessor">#include &quot;<a class="code" href="bitfunctions_8hpp.html" title="Contains the definitions for the bit-manipulation functions.">bitfunctions.hpp</a>&quot;</span>
-<a name="l00050"></a>00050 <span class="preprocessor">#include &quot;<a class="code" href="andorxor_8hpp.html" title="Contains the functions for ANDing, ORing, and XORing.">andorxor.hpp</a>&quot;</span>
-<a name="l00051"></a>00051 <span class="preprocessor">#include &quot;<a class="code" href="randomgen_8hpp.html" title="Contains the function definitions for the random number classes.">randomgen.hpp</a>&quot;</span>
-<a name="l00052"></a>00052 <span class="preprocessor">#include &quot;<a class="code" href="random__by__size_8hpp.html" title="Contains the random_by_size function.">random_by_size.hpp</a>&quot;</span>
-<a name="l00053"></a>00053 <span class="preprocessor">#include &quot;<a class="code" href="compare_8hpp.html" title="Contains the definitions for the comparison functions.">compare.hpp</a>&quot;</span>
-<a name="l00054"></a>00054
-<a name="l00055"></a>00055 <span class="preprocessor">#include &quot;<a class="code" href="addsubtract_8hpp.html" title="Contains the definitions of the addition and subtraction functions.">addsubtract.hpp</a>&quot;</span>
-<a name="l00056"></a>00056 <span class="preprocessor">#include &quot;<a class="code" href="multiply_8hpp.html" title="Contains the multiplication and squaring functions.">multiply.hpp</a>&quot;</span>
-<a name="l00057"></a>00057 <span class="preprocessor">#include &quot;<a class="code" href="divide_8hpp.html" title="Contains the definitions of the divide function, and its supporting functions.">divide.hpp</a>&quot;</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#ifdef BOOST_XINT_NO_EXCEPTIONS</span>
+<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_TRY if (1)</span>
+<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH_BADALLOC else if (0)</span>
+<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH else</span>
+<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH_E else</span>
+<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00029"></a><a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">00029</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_TRY try</span>
+<a name="l00030"></a><a class="code" href="internals_8hpp.html#a376c1d9d0cc79d3d74539c6b9c38f304">00030</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH_BADALLOC catch (std::bad_alloc&amp;)</span>
+<a name="l00031"></a><a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">00031</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH catch (std::exception&amp;)</span>
+<a name="l00032"></a><a class="code" href="internals_8hpp.html#ab7e46f415e3d76f4d3b7d350bcbe3a85">00032</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH_E catch (std::exception&amp; e)</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include &quot;../exceptions.hpp&quot;</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include &quot;../random.hpp&quot;</span>
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038 <span class="preprocessor">#include &quot;<a class="code" href="basic__types__and__includes_8hpp.html" title="Contains the most basic types, constants, and includes.">basic_types_and_includes.hpp</a>&quot;</span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include &quot;<a class="code" href="bitqueue_8hpp.html" title="Contains the bitqueue_t class, used internally.">bitqueue.hpp</a>&quot;</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include &quot;<a class="code" href="policies_8hpp.html" title="Contains the policy classes.">policies.hpp</a>&quot;</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include &quot;<a class="code" href="magnitude__manager_8hpp.html" title="Contains the magnitude_manager_t class.">magnitude_manager.hpp</a>&quot;</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;<a class="code" href="raw__integer_8hpp.html" title="Contains the raw_integer class declaration, and miscellaneous definitions for member...">raw_integer.hpp</a>&quot;</span>
+<a name="l00043"></a>00043
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;<a class="code" href="log2_8hpp.html" title="Contains the log2 implementations.">log2.hpp</a>&quot;</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include &quot;<a class="code" href="shift_8hpp.html" title="Contains the bit-shifting function definitions.">shift.hpp</a>&quot;</span>
+<a name="l00046"></a>00046 <span class="preprocessor">#include &quot;<a class="code" href="bitfunctions_8hpp.html" title="Contains the definitions for the bit-manipulation functions.">bitfunctions.hpp</a>&quot;</span>
+<a name="l00047"></a>00047 <span class="preprocessor">#include &quot;<a class="code" href="andorxor_8hpp.html" title="Contains the functions for ANDing, ORing, and XORing.">andorxor.hpp</a>&quot;</span>
+<a name="l00048"></a>00048 <span class="preprocessor">#include &quot;<a class="code" href="randomgen_8hpp.html" title="Contains the function definitions for the random number classes.">randomgen.hpp</a>&quot;</span>
+<a name="l00049"></a>00049 <span class="preprocessor">#include &quot;<a class="code" href="random__by__size_8hpp.html" title="Contains the random_by_size function.">random_by_size.hpp</a>&quot;</span>
+<a name="l00050"></a>00050 <span class="preprocessor">#include &quot;<a class="code" href="compare_8hpp.html" title="Contains the definitions for the comparison functions.">compare.hpp</a>&quot;</span>
+<a name="l00051"></a>00051
+<a name="l00052"></a>00052 <span class="preprocessor">#include &quot;<a class="code" href="addsubtract_8hpp.html" title="Contains the definitions of the addition and subtraction functions.">addsubtract.hpp</a>&quot;</span>
+<a name="l00053"></a>00053 <span class="preprocessor">#include &quot;<a class="code" href="multiply_8hpp.html" title="Contains the multiplication and squaring functions.">multiply.hpp</a>&quot;</span>
+<a name="l00054"></a>00054 <span class="preprocessor">#include &quot;<a class="code" href="divide_8hpp.html" title="Contains the definitions of the divide function, and its supporting functions.">divide.hpp</a>&quot;</span>
+<a name="l00055"></a>00055
+<a name="l00056"></a>00056 <span class="preprocessor">#include &quot;<a class="code" href="convert_8hpp.html" title="Contains the conversion functions.">convert.hpp</a>&quot;</span>
+<a name="l00057"></a>00057 <span class="preprocessor">#include &quot;<a class="code" href="streams_8hpp.html" title="Contains the stream input/output code for raw_integer types.">streams.hpp</a>&quot;</span>
 <a name="l00058"></a>00058
-<a name="l00059"></a>00059 <span class="preprocessor">#include &quot;<a class="code" href="convert_8hpp.html" title="Contains the conversion functions.">convert.hpp</a>&quot;</span>
-<a name="l00060"></a>00060 <span class="preprocessor">#include &quot;<a class="code" href="streams_8hpp.html" title="Contains the stream input/output code for raw_integer types.">streams.hpp</a>&quot;</span>
-<a name="l00061"></a>00061
-<a name="l00062"></a>00062 <span class="preprocessor">#include &quot;<a class="code" href="roots_8hpp.html" title="Contains the square-root function definition, and any future root-related ones.">roots.hpp</a>&quot;</span>
-<a name="l00063"></a>00063 <span class="preprocessor">#include &quot;<a class="code" href="powers_8hpp.html" title="Contains functions related to powers of a number.">powers.hpp</a>&quot;</span>
-<a name="l00064"></a>00064 <span class="preprocessor">#include &quot;<a class="code" href="gcd_8hpp.html" title="Contains functions using the Greatest Common Denominator algorithm.">gcd.hpp</a>&quot;</span>
-<a name="l00065"></a>00065 <span class="preprocessor">#include &quot;<a class="code" href="monty_8hpp.html" title="Contains the Montgomery Reduction functions.">monty.hpp</a>&quot;</span>
-<a name="l00066"></a>00066 <span class="preprocessor">#include &quot;<a class="code" href="modular_8hpp.html" title="Contains the modular math functions.">modular.hpp</a>&quot;</span>
-<a name="l00067"></a>00067 <span class="preprocessor">#include &quot;<a class="code" href="prime_8hpp.html" title="Contains the function definitions for the prime number functions.">prime.hpp</a>&quot;</span>
+<a name="l00059"></a>00059 <span class="preprocessor">#include &quot;<a class="code" href="roots_8hpp.html" title="Contains the square-root function definition, and any future root-related ones.">roots.hpp</a>&quot;</span>
+<a name="l00060"></a>00060 <span class="preprocessor">#include &quot;<a class="code" href="powers_8hpp.html" title="Contains functions related to powers of a number.">powers.hpp</a>&quot;</span>
+<a name="l00061"></a>00061 <span class="preprocessor">#include &quot;<a class="code" href="gcd_8hpp.html" title="Contains functions using the Greatest Common Denominator algorithm.">gcd.hpp</a>&quot;</span>
+<a name="l00062"></a>00062 <span class="preprocessor">#include &quot;<a class="code" href="monty_8hpp.html" title="Contains the Montgomery Reduction functions.">monty.hpp</a>&quot;</span>
+<a name="l00063"></a>00063 <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="l00064"></a>00064 <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="l00065"></a>00065
 <a name="l00068"></a>00068
 <a name="l00071"></a>00071
-<a name="l00074"></a>00074
-<a name="l00075"></a>00075 <span class="keyword">namespace </span>boost {
-<a name="l00076"></a>00076 <span class="keyword">namespace </span>xint {
-<a name="l00077"></a>00077 <span class="keyword">namespace </span>detail {
-<a name="l00079"></a>00079
-<a name="l00080"></a>00080 <span class="keyword">inline</span> std::size_t log10_bits(std::size_t bits) {
-<a name="l00081"></a>00081 <span class="comment">// large_step and count_per_large_step are based on a minimum-32-bit integer</span>
-<a name="l00082"></a>00082 assert(std::numeric_limits&lt;boost::intmax_t&gt;::digits &gt;= 32);
-<a name="l00083"></a>00083
-<a name="l00084"></a>00084 <span class="keyword">typedef</span> raw_integer_t&lt;0, false, std::allocator&lt;digit_t&gt; &gt; T;
-<a name="l00085"></a>00085 <span class="keyword">const</span> T large_step(1000000000), small_step(10);
-<a name="l00086"></a>00086 <span class="keyword">const</span> std::size_t count_per_large_step = 9, count_per_small_step = 1;
-<a name="l00087"></a>00087
-<a name="l00088"></a>00088 T n;
-<a name="l00089"></a>00089 pow2(n, bits);
-<a name="l00090"></a>00090 --n;
-<a name="l00091"></a>00091
-<a name="l00092"></a>00092 std::size_t r = 0;
-<a name="l00093"></a>00093 <span class="keywordflow">while</span> (n &gt;= large_step) { n /= large_step; r += count_per_large_step; }
-<a name="l00094"></a>00094 <span class="keywordflow">while</span> (n &gt;= small_step) { n /= small_step; r += count_per_small_step; }
-<a name="l00095"></a>00095 <span class="keywordflow">return</span> r;
-<a name="l00096"></a>00096 }
-<a name="l00097"></a>00097
-<a name="l00098"></a>00098 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
-<a name="l00099"></a>00099 <span class="keyword">const</span> std::basic_string&lt;charT&gt;&amp; nan_text() {
-<a name="l00100"></a>00100 <span class="keyword">static</span> std::basic_string&lt;charT&gt; r;
-<a name="l00101"></a>00101 <span class="keywordflow">if</span> (r.empty()) {
-<a name="l00102"></a>00102 std::basic_ostringstream&lt;charT&gt; out;
-<a name="l00103"></a>00103 out &lt;&lt; <span class="stringliteral">&quot;#NaN#&quot;</span>;
-<a name="l00104"></a>00104 r = out.str();
-<a name="l00105"></a>00105 }
-<a name="l00106"></a>00106 <span class="keywordflow">return</span> r;
-<a name="l00107"></a>00107 }
-<a name="l00108"></a>00108
-<a name="l00109"></a>00109 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
-<a name="l00110"></a>00110 <span class="keywordtype">bool</span> is_nan_text(<span class="keyword">const</span> std::basic_string&lt;charT&gt; str) {
-<a name="l00111"></a>00111 <span class="keywordflow">return</span> (str == nan_text&lt;charT&gt;());
-<a name="l00112"></a>00112 }
-<a name="l00113"></a>00113
-<a name="l00114"></a>00114 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00115"></a>00115 T get_nan() {
-<a name="l00116"></a>00116 <span class="keyword">static</span> T r;
-<a name="l00117"></a>00117 <span class="keyword">static</span> <span class="keywordtype">bool</span> init = <span class="keyword">false</span>;
-<a name="l00118"></a>00118
-<a name="l00119"></a>00119 <span class="keywordflow">if</span> (!init) {
-<a name="l00120"></a>00120 init = <span class="keyword">true</span>;
-<a name="l00121"></a>00121 r._data().make_nan();
-<a name="l00122"></a>00122 }
+<a name="l00072"></a>00072 <span class="keyword">namespace </span>boost {
+<a name="l00073"></a>00073 <span class="keyword">namespace </span>xint {
+<a name="l00074"></a>00074 <span class="keyword">namespace </span>detail {
+<a name="l00076"></a>00076
+<a name="l00077"></a>00077 <span class="keyword">inline</span> std::size_t log10_bits(std::size_t bits) {
+<a name="l00078"></a>00078 <span class="comment">// large_step and count_per_large_step are based on a minimum-32-bit integer</span>
+<a name="l00079"></a>00079 assert(std::numeric_limits&lt;boost::intmax_t&gt;::digits &gt;= 32);
+<a name="l00080"></a>00080
+<a name="l00081"></a>00081 <span class="keyword">typedef</span> raw_integer_t&lt;0, false, std::allocator&lt;digit_t&gt; &gt; T;
+<a name="l00082"></a>00082 <span class="keyword">const</span> T large_step(1000000000), small_step(10);
+<a name="l00083"></a>00083 <span class="keyword">const</span> std::size_t count_per_large_step = 9, count_per_small_step = 1;
+<a name="l00084"></a>00084
+<a name="l00085"></a>00085 T n;
+<a name="l00086"></a>00086 pow2(n, bits);
+<a name="l00087"></a>00087 --n;
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 std::size_t r = 0;
+<a name="l00090"></a>00090 <span class="keywordflow">while</span> (n &gt;= large_step) { n /= large_step; r += count_per_large_step; }
+<a name="l00091"></a>00091 <span class="keywordflow">while</span> (n &gt;= small_step) { n /= small_step; r += count_per_small_step; }
+<a name="l00092"></a>00092 <span class="keywordflow">return</span> r;
+<a name="l00093"></a>00093 }
+<a name="l00094"></a>00094
+<a name="l00095"></a>00095 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
+<a name="l00096"></a>00096 <span class="keyword">const</span> std::basic_string&lt;charT&gt;&amp; nan_text() {
+<a name="l00097"></a>00097 <span class="keyword">static</span> std::basic_string&lt;charT&gt; r;
+<a name="l00098"></a>00098 <span class="keywordflow">if</span> (r.empty()) {
+<a name="l00099"></a>00099 std::basic_ostringstream&lt;charT&gt; out;
+<a name="l00100"></a>00100 out &lt;&lt; <span class="stringliteral">&quot;#NaN#&quot;</span>;
+<a name="l00101"></a>00101 r = out.str();
+<a name="l00102"></a>00102 }
+<a name="l00103"></a>00103 <span class="keywordflow">return</span> r;
+<a name="l00104"></a>00104 }
+<a name="l00105"></a>00105
+<a name="l00106"></a>00106 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
+<a name="l00107"></a>00107 <span class="keywordtype">bool</span> is_nan_text(<span class="keyword">const</span> std::basic_string&lt;charT&gt; str) {
+<a name="l00108"></a>00108 <span class="keywordflow">return</span> (str == nan_text&lt;charT&gt;());
+<a name="l00109"></a>00109 }
+<a name="l00110"></a>00110
+<a name="l00111"></a>00111 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00112"></a>00112 T get_nan() {
+<a name="l00113"></a>00113 <span class="keyword">static</span> T r;
+<a name="l00114"></a>00114 <span class="keyword">static</span> <span class="keywordtype">bool</span> init = <span class="keyword">false</span>;
+<a name="l00115"></a>00115
+<a name="l00116"></a>00116 <span class="keywordflow">if</span> (!init) {
+<a name="l00117"></a>00117 init = <span class="keyword">true</span>;
+<a name="l00118"></a>00118 r._data().make_nan();
+<a name="l00119"></a>00119 }
+<a name="l00120"></a>00120
+<a name="l00121"></a>00121 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00122"></a>00122 }
 <a name="l00123"></a>00123
-<a name="l00124"></a>00124 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00125"></a>00125 }
-<a name="l00126"></a>00126
-<a name="l00128"></a>00128 } <span class="comment">// namespace detail</span>
-<a name="l00129"></a>00129 } <span class="comment">// namespace xint</span>
-<a name="l00130"></a>00130 } <span class="comment">// namespace boost</span>
-<a name="l00131"></a>00131
-<a name="l00132"></a>00132 <span class="preprocessor">#include &quot;<a class="code" href="options_8hpp.html" title="Declares the integer_t template options.">options.hpp</a>&quot;</span>
-<a name="l00133"></a>00133
-<a name="l00134"></a>00134 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTERNALS_HPP</span>
+<a name="l00125"></a>00125 } <span class="comment">// namespace detail</span>
+<a name="l00126"></a>00126 } <span class="comment">// namespace xint</span>
+<a name="l00127"></a>00127 } <span class="comment">// namespace boost</span>
+<a name="l00128"></a>00128
+<a name="l00129"></a>00129 <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="l00130"></a>00130
+<a name="l00131"></a>00131 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTERNALS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -50,8 +50,8 @@
 
 <p>Definition in file <a class="el" href="log2_8hpp_source.html">log2.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -88,8 +88,8 @@
 <a name="l00071"></a>00071
 <a name="l00072"></a>00072 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_LOG2_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -50,8 +50,8 @@
 
 <p>Definition in file <a class="el" href="magnitude__manager_8hpp_source.html">magnitude_manager.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -110,8 +110,8 @@
 <a name="l00093"></a>00093
 <a name="l00094"></a>00094 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MAGNITUDE_MANAGER_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="modular_8hpp_source.html">modular.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -102,8 +102,8 @@
 <a name="l00085"></a>00085 <span class="comment"></span>
 <a name="l00086"></a>00086 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MODULAR_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="monty_8hpp_source.html">monty.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -264,8 +264,8 @@
 <a name="l00256"></a>00256 <span class="comment"></span>
 <a name="l00257"></a>00257 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MONTY_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="multiply_8hpp_source.html">multiply.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -182,8 +182,8 @@
 <a name="l00165"></a>00165 <span class="comment"></span>
 <a name="l00166"></a>00166 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MULTIPLY_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/namespaceboost.html
==============================================================================
--- sandbox/xint/libs/xint/doc/namespaceboost.html (original)
+++ sandbox/xint/libs/xint/doc/namespaceboost.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -34,8 +34,8 @@
 </p>
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -310,7 +310,7 @@
 <p>The default arbitrary-length integer type. </p>
 <p>This uses the default parameters for the <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> template. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02521">2521</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>
@@ -328,7 +328,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#l02528">2528</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>
@@ -412,7 +412,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>If <code>n</code> is zero or positive, returns <code>n</code>. Otherwise returns <code>-n</code>. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01216">1216</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>
@@ -456,7 +456,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>Nothing. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01606">1606</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01605">1605</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -506,7 +506,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>-1 if <code>n1</code> &lt; <code>n2</code>; zero if <code>n1</code> == <code>n2</code>, or 1 if <code>n1</code> &gt; <code>n2</code>. The nothrow version returns 2 instead of throwing. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02313">2313</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#l02312">2312</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -550,7 +550,7 @@
 <dl class="return"><dt><b>Returns:</b></dt><dd>The absolute difference between the parameters.</dd></dl>
 <p>This function is especially useful when using unsigned types, because it's faster than doing a comparison to see which integer is larger before doing a subtraction. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01298">1298</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>
@@ -606,7 +606,7 @@
 <dd>
 <a class="el" href="classboost_1_1xint_1_1integer__t.html#a2144da90955b26120f5cfc724a24b8fc">integer_t::operator%=</a> </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01254">1254</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01253">1253</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -649,7 +649,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>The greatest common denominator of the two integers, which will always be a positive number. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02243">2243</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>
@@ -693,7 +693,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if the specified bit is set (has a value of one), <code>false</code> if it is clear. The nothrow version returns <code>false</code> instead of throwing. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01559">1559</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>
@@ -737,7 +737,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>The zero-based index of the highest one-bit in the integer, or <code>return_if_zero</code> if the integer contains no set bits. The nothrow version returns <code>return_if_zero</code> instead of throwing. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01663">1663</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>
@@ -787,7 +787,7 @@
   </dd>
 </dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01825">1825</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<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>
@@ -839,7 +839,7 @@
 <dl class="remark"><dt><b>Remarks:</b></dt><dd>This function uses the Rabin-Miller probabilistic primality test. There is an infinitesimally small chance that it will think that a composite number is actually prime, but that is so small that it can be ignored for most practical purposes. If even that chance is too much, you can run this function over the number several times, it will use different randomly-selected "witness" numbers each time.</dd></dl>
 <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="primes.html">Generating Prime Numbers</a> </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01879">1879</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>
@@ -882,7 +882,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>The least common multiple of the two integers. If either integer is zero, then the return value will be zero, by convention; in all other cases, the return value will be a positive number. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02277">2277</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>
@@ -918,7 +918,7 @@
 <dl class="remark"><dt><b>Remarks:</b></dt><dd>pow2(log2(n)-1) will give you an integer with the highest set bit of <code>n</code>, assuming that <code>n</code> is non-zero.</dd></dl>
 <dl class="user"><dt><b></b></dt><dd>Similar to the <a class="el" href="namespaceboost_1_1xint.html#adee99f516c2480b2381f6c9b1a2abc6e" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a> function. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02345">2345</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>
@@ -962,7 +962,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>The zero-based index of the lowest one-bit in the integer, or <code>return_if_zero</code> if the integer contains no set bits. The nothrow version returns <code>return_if_zero</code> instead of throwing. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01634">1634</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>
@@ -1013,7 +1013,7 @@
 <dl class="return"><dt><b>Returns:</b></dt><dd>The result of <code>n</code> * <code>by</code> % <code>modulus</code>.</dd></dl>
 <dl class="remark"><dt><b>Remarks:</b></dt><dd>This is purely a convenience function, to make it easier to write self-documenting code. It does not provide any additional efficiency over writing out the calculation. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01704">1704</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>
@@ -1074,7 +1074,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01977">1977</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<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>
@@ -1118,7 +1118,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>The remainder after dividing <code>n1</code> by <code>n2</code>. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02127">2127</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>
@@ -1161,7 +1161,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>A positive integer with all bits that are set in both parameters turned on. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02155">2155</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>
@@ -1205,7 +1205,7 @@
 <dl class="return"><dt><b>Returns:</b></dt><dd>The product of the parameters.</dd></dl>
 <dl class="remark"><dt><b>Remarks:</b></dt><dd>Automatically uses the more-efficient squaring algorithm if it can trivially detect that the two parameters are copies of the same number. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02070">2070</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>
@@ -1248,7 +1248,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>The sum of the parameters. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02008">2008</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>
@@ -1291,7 +1291,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>The difference between the parameters. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02035">2035</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>
@@ -1340,7 +1340,7 @@
   </dd>
 </dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02099">2099</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<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>
@@ -1371,7 +1371,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01902">1902</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<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>
@@ -1402,7 +1402,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02470">2470</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<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>
@@ -1433,7 +1433,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01932">1932</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<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>
@@ -1464,7 +1464,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01962">1962</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<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>
@@ -1495,7 +1495,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01917">1917</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<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>
@@ -1526,7 +1526,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01947">1947</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<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>
@@ -1557,7 +1557,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02479">2479</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<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>
@@ -1600,7 +1600,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>A positive integer with all bits that are set in either parameter, but not both, turned on. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02211">2211</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>
@@ -1643,7 +1643,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>A positive integer with all bits that are set in either parameter turned on. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02183">2183</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>
@@ -1686,7 +1686,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd><code>n</code> to the power of <code>e</code>. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01354">1354</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>
@@ -1752,7 +1752,7 @@
 <dl class="remark"><dt><b>Remarks:</b></dt><dd>Because this function keeps the intermediate results small, it is far faster and uses far less memory than a naive implementation.</dd></dl>
 <dl class="user"><dt><b></b></dt><dd>In addition, this function will use the Montgomery Reduction internally, if the modulus is an odd number (and if <code>no_monty</code> isn't set), which is almost always faster than the non-Montgomery method. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01788">1788</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>
@@ -1796,7 +1796,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>Nothing. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01582">1582</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>
@@ -1841,7 +1841,7 @@
 <dl class="return"><dt><b>Returns:</b></dt><dd>The result of <code>square(n)</code> % <code>modulus</code>.</dd></dl>
 <dl class="remark"><dt><b>Remarks:</b></dt><dd>This is purely a convenience function, to make it easier to write self-documenting code. It does not provide any additional efficiency over writing out the calculation. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01743">1743</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>
@@ -1876,7 +1876,7 @@
 <dl class="return"><dt><b>Returns:</b></dt><dd><code>n</code> times <code>n</code>.</dd></dl>
 <p>The repetitive nature of the input (multiplying a number by itself) allows this function to use a more-efficient algorithm than standard multiplication. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01327">1327</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>
@@ -1916,7 +1916,7 @@
   </dd>
 </dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01390">1390</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<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>
@@ -1947,7 +1947,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02511">2511</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<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>
@@ -1991,7 +1991,7 @@
 </dl>
 <p>This function provides the most efficient means of converting to a built-in integral type. The nothrow version returns T(0) instead of throwing. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01430">1430</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>
@@ -2044,7 +2044,7 @@
 <dl class="remark"><dt><b>Remarks:</b></dt><dd>A binary representation is sometimes desirable for persistent storage or transmission, as it is more space-efficient than a string representation.</dd></dl>
 <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classboost_1_1xint_1_1integer__t.html#a864a599e2de326e6e339ffc820fd849e" title="Converts a portable binary representation of a number into an integer.">integer_t::integer_t(xint::binary_t, bitsize_t bits)</a> </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01529">1529</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>
@@ -2083,7 +2083,7 @@
 
 <p>A shorthand function that calls <a class="el" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758">to_stringtype&lt;char&gt;</a>. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01485">1485</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>
@@ -2147,7 +2147,7 @@
 </dl>
 <dl class="remark"><dt><b>Remarks:</b></dt><dd>This is the function that's called when you ask the library to write an integer to a stream, but it's more flexible because you can specify any base between 2 and 36. (Streams only allow base-8, base-10, or base-16.) </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01466">1466</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>
@@ -2186,7 +2186,7 @@
 
 <p>A shorthand function that calls <a class="el" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758">to_stringtype&lt;wchar_t&gt;</a>. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01495">1495</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>
@@ -2226,8 +2226,8 @@
 </div>
 </div>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -35,8 +35,8 @@
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>The items within this namespace are meant for internal use only. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -46,8 +46,8 @@
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Every exception the library throws is from this namespace. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -61,8 +61,8 @@
 <p>There are several options for an unsigned type, which not only tell the library to make the type unsigned, but also what to do if a calculation would result in a negative number. You can only use one of them in a specific <code><a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a></code>. If none of them are specified, the default is a signed type.</p>
 <p>In addition to these options, you can also specify an allocator, which is just passed to the <code><a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a></code> template directly. If specified, it must be for the <code>boost::xint::detail::digit_t</code> type. Defaults to <code>std::allocator&lt;digit_t&gt;</code>, the standard allocator provided by the STL. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/namespacemembers.html
==============================================================================
--- sandbox/xint/libs/xint/doc/namespacemembers.html (original)
+++ sandbox/xint/libs/xint/doc/namespacemembers.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -264,8 +264,8 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -227,8 +227,8 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -57,8 +57,8 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -42,8 +42,8 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/namespaces.html
==============================================================================
--- sandbox/xint/libs/xint/doc/namespaces.html (original)
+++ sandbox/xint/libs/xint/doc/namespaces.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -33,8 +33,8 @@
   <tr><td class="indexkey"><a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a></td><td class="indexvalue">Options for the <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> template are stored in this namespace </td></tr>
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/nan.html
==============================================================================
--- sandbox/xint/libs/xint/doc/nan.html (original)
+++ sandbox/xint/libs/xint/doc/nan.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 </ul>
 <p>If you attempt to do anything else with it, you will get a special value indicating failure (which will be another Not-a-Number, if the function you're calling returns an <code>integer_t</code>). </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/nan.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/no__exceptions_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/no__exceptions_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/no__exceptions_8dox.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/no_exceptions.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -94,7 +94,7 @@
 </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>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00243">243</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 
 </div>
 </div>
@@ -109,7 +109,7 @@
 </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>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00244">244</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 
 </div>
 </div>
@@ -124,7 +124,7 @@
 </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>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00241">241</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 
 </div>
 </div>
@@ -139,7 +139,7 @@
 </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>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00242">242</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 
 </div>
 </div>
@@ -154,13 +154,13 @@
 </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>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00240">240</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 Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -71,7 +71,7 @@
 <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="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>
@@ -96,287 +96,287 @@
 <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="l00143"></a><a class="code" href="structboost_1_1xint_1_1options_1_1secure.html">00143</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="l00144"></a>00144
+<a name="l00151"></a><a class="code" href="structboost_1_1xint_1_1options_1_1nothrow.html">00151</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="l00153"></a>00153
+<a name="l00156"></a>00156
+<a name="l00162"></a><a class="code" href="structboost_1_1xint_1_1options_1_1negative__allowed.html">00162</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="l00163"></a>00163 boost::mpl::integral_c&lt;detail::negative_policy, detail::p_signed_type&gt;
+<a name="l00164"></a>00164 { };
+<a name="l00165"></a>00165
+<a name="l00172"></a><a class="code" href="structboost_1_1xint_1_1options_1_1negative__not__allowed.html">00172</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="l00173"></a>00173 boost::mpl::integral_c&lt;detail::negative_policy, detail::p_unsigned_type&gt;
+<a name="l00174"></a>00174 { };
+<a name="l00175"></a>00175
+<a name="l00183"></a><a class="code" href="structboost_1_1xint_1_1options_1_1negative__modulus.html">00183</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="l00184"></a>00184 boost::mpl::integral_c&lt;detail::negative_policy, detail::p_modulus&gt;
+<a name="l00185"></a>00185 { };
+<a name="l00186"></a>00186
+<a name="l00193"></a><a class="code" href="structboost_1_1xint_1_1options_1_1negative__exception.html">00193</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="l00194"></a>00194 boost::mpl::integral_c&lt;detail::negative_policy, detail::p_throw_exception&gt;
+<a name="l00195"></a>00195 { };
+<a name="l00196"></a>00196
+<a name="l00204"></a><a class="code" href="structboost_1_1xint_1_1options_1_1negative__zero.html">00204</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="l00205"></a>00205 boost::mpl::integral_c&lt;detail::negative_policy, detail::p_force_zero&gt;
+<a name="l00206"></a>00206 { };
+<a name="l00207"></a>00207
+<a name="l00214"></a><a class="code" href="structboost_1_1xint_1_1options_1_1negative__absolute.html">00214</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="l00215"></a>00215 boost::mpl::integral_c&lt;detail::negative_policy, detail::p_force_absolute&gt;
+<a name="l00216"></a>00216 { };
+<a name="l00218"></a>00218
+<a name="l00219"></a>00219 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00220"></a>00220 <span class="preprocessor"></span><span class="keyword">typedef</span> parameter::parameters&lt;
+<a name="l00221"></a>00221 optional&lt;deduced&lt;tag::fixedlength_tag&gt;, is_base_of&lt;fixedlength_base, _&gt; &gt;,
+<a name="l00222"></a>00222 optional&lt;deduced&lt;tag::threadsafe_tag&gt;, is_base_of&lt;threadsafe_base, _&gt; &gt;,
+<a name="l00223"></a>00223 optional&lt;deduced&lt;tag::secure_tag&gt;, is_base_of&lt;secure_base, _&gt; &gt;,
+<a name="l00224"></a>00224 optional&lt;deduced&lt;tag::nothrow_tag&gt;, is_base_of&lt;nothrow_base, _&gt; &gt;,
+<a name="l00225"></a>00225 optional&lt;deduced&lt;tag::sign_tag&gt;, is_base_of&lt;sign_base, _&gt; &gt;,
+<a name="l00226"></a>00226 optional&lt;deduced&lt;tag::allocator_tag&gt;, is_class&lt;_&gt; &gt;
+<a name="l00227"></a>00227 &gt; integer_signature;
+<a name="l00228"></a>00228 <span class="preprocessor">#endif</span>
+<a name="l00229"></a>00229 <span class="preprocessor"></span>
+<a name="l00230"></a>00230 } <span class="comment">// namespace options</span>
+<a name="l00231"></a>00231
+<a name="l00232"></a>00232 <span class="keyword">namespace </span>detail {
+<a name="l00233"></a>00233
+<a name="l00235"></a>00235 <span class="comment">// integer_t data</span>
+<a name="l00236"></a>00236
+<a name="l00237"></a>00237 <span class="preprocessor">#ifdef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00238"></a>00238 <span class="preprocessor"></span> <span class="comment">// The documentation should see a simplified version of the template</span>
+<a name="l00239"></a>00239 <span class="comment">// parameters.</span>
+<a name="l00240"></a><a class="code" href="options_8hpp.html#ab1e73a691d4b867f4a4269502bd09540">00240</a> <span class="preprocessor"> #define BOOST_XINT_INITIAL_APARAMS ...</span>
+<a name="l00241"></a><a class="code" href="options_8hpp.html#aeebffc787ad64df0fd45d351e3c36d89">00241</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CLASS_APARAMS ...</span>
+<a name="l00242"></a><a class="code" href="options_8hpp.html#a703c6d9989c912340d776ea5b2dbf4cd">00242</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CLASS_BPARAMS other</span>
+<a name="l00243"></a><a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">00243</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_APARAMS ...</span>
+<a name="l00244"></a><a class="code" href="options_8hpp.html#ac2e7764d34cf12c1de4ae325d982d8e3">00244</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_BPARAMS other</span>
+<a name="l00245"></a>00245 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00246"></a>00246 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_INITIAL_APARAMS \</span>
+<a name="l00247"></a>00247 <span class="preprocessor"> class A0 = parameter::void_, \</span>
+<a name="l00248"></a>00248 <span class="preprocessor"> class A1 = parameter::void_, \</span>
+<a name="l00249"></a>00249 <span class="preprocessor"> class A2 = parameter::void_, \</span>
+<a name="l00250"></a>00250 <span class="preprocessor"> class A3 = parameter::void_, \</span>
+<a name="l00251"></a>00251 <span class="preprocessor"> class A4 = parameter::void_, \</span>
+<a name="l00252"></a>00252 <span class="preprocessor"> class A5 = parameter::void_</span>
+<a name="l00253"></a>00253 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CLASS_APARAMS class A0, class A1, class A2, class A3, \</span>
+<a name="l00254"></a>00254 <span class="preprocessor"> class A4, class A5</span>
+<a name="l00255"></a>00255 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_APARAMS A0, A1, A2, A3, A4, A5</span>
+<a name="l00256"></a>00256 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CLASS_BPARAMS class B0, class B1, class B2, class B3, \</span>
+<a name="l00257"></a>00257 <span class="preprocessor"> class B4, class B5</span>
+<a name="l00258"></a>00258 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_BPARAMS B0, B1, B2, B3, B4, B5</span>
+<a name="l00259"></a>00259 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00260"></a>00260 <span class="preprocessor"></span>
+<a name="l00261"></a>00261 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00262"></a>00262 <span class="preprocessor"></span>
+<a name="l00263"></a>00263 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00264"></a>00264 <span class="keyword">class </span>integer_t_data {
+<a name="l00265"></a>00265 <span class="keyword">public</span>:
+<a name="l00266"></a>00266 <span class="keyword">typedef</span> <span class="keyword">typename</span> options::integer_signature::bind&lt;BOOST_XINT_APARAMS&gt;::type
+<a name="l00267"></a>00267 args;
+<a name="l00268"></a>00268 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding&lt;args, tag::fixedlength_tag,
+<a name="l00269"></a>00269 options::fixedlength&lt;0&gt; &gt;::type BitsType;
+<a name="l00270"></a>00270 <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="l00271"></a>00271 ThreadsafeType;
+<a name="l00272"></a>00272 <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="l00273"></a>00273 SecureType;
+<a name="l00274"></a>00274 <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="l00275"></a>00275 NothrowType;
+<a name="l00276"></a>00276 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding&lt;args, tag::sign_tag,
+<a name="l00277"></a>00277 options::negative_allowed&gt;::type SignType;
 <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="l00279"></a>00279 <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="l00280"></a>00280 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> Threadsafe, Secure, Nothrow, Signed;
+<a name="l00281"></a>00281 <span class="keyword">typedef</span> <span class="keyword">typename</span> binding&lt;args, tag::allocator_tag,
+<a name="l00282"></a>00282 std::allocator&lt;detail::digit_t&gt; &gt;::type Alloc;
+<a name="l00283"></a>00283 <span class="keyword">typedef</span> raw_integer_t&lt;BitsType::value, SecureType::value, Alloc&gt; datatype;
+<a name="l00284"></a>00284
+<a name="l00285"></a>00285 integer_t_data() { }
+<a name="l00286"></a>00286 integer_t_data(<span class="keyword">const</span> datatype&amp; copy): data(copy) { }
+<a name="l00287"></a>00287 <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="l00288"></a>00288 integer_t_data(<span class="keyword">const</span> raw_integer_t&lt;B,S,A&gt;&amp; copy): data(copy) { }
+<a name="l00289"></a>00289
+<a name="l00291"></a>00291
+<a name="l00292"></a>00292 datatype&amp; _data() { <span class="keywordflow">return</span> data; }
+<a name="l00293"></a>00293 <span class="keyword">const</span> datatype&amp; _data()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data; }
+<a name="l00294"></a>00294 std::size_t _get_length()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.length; }
+<a name="l00295"></a>00295 detail::digit_t _get_digit(std::size_t i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data[i]; }
+<a name="l00296"></a>00296 <span class="keywordtype">void</span> _make_unique() { data.make_unique(); }
+<a name="l00298"></a>00298
+<a name="l00299"></a>00299 <span class="keyword">protected</span>:
+<a name="l00300"></a>00300 datatype data;
+<a name="l00301"></a>00301 };
+<a name="l00302"></a>00302
+<a name="l00303"></a>00303 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00304"></a>00304 <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="l00305"></a>00305 integer_t_data&lt;BOOST_XINT_APARAMS&gt;::BitsType::value;
+<a name="l00306"></a>00306
+<a name="l00307"></a>00307 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00308"></a>00308 <span class="keyword">const</span> <span class="keywordtype">bool</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Threadsafe =
+<a name="l00309"></a>00309 integer_t_data&lt;BOOST_XINT_APARAMS&gt;::ThreadsafeType::value;
+<a name="l00310"></a>00310
+<a name="l00311"></a>00311 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00312"></a>00312 <span class="keyword">const</span> <span class="keywordtype">bool</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Secure =
+<a name="l00313"></a>00313 integer_t_data&lt;BOOST_XINT_APARAMS&gt;::SecureType::value;
+<a name="l00314"></a>00314
+<a name="l00315"></a>00315 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00316"></a>00316 <span class="keyword">const</span> <span class="keywordtype">bool</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Nothrow =
+<a name="l00317"></a>00317 integer_t_data&lt;BOOST_XINT_APARAMS&gt;::NothrowType::value;
+<a name="l00318"></a>00318
+<a name="l00319"></a>00319 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00320"></a>00320 <span class="keyword">const</span> <span class="keywordtype">bool</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Signed =
+<a name="l00321"></a>00321 (integer_t_data&lt;BOOST_XINT_APARAMS&gt;::SignType::value == p_signed_type);
 <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="l00324"></a>00324 <span class="comment">// class nan_functions, to handle nothrow-specific Not-a-Number stuff</span>
+<a name="l00325"></a>00325
+<a name="l00326"></a>00326 <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="l00327"></a>00327 <span class="keyword">class </span>nan_functions { };
+<a name="l00328"></a>00328
+<a name="l00329"></a>00329 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00330"></a>00330 <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="l00331"></a>00331 integer_t_data&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00332"></a>00332 {
+<a name="l00333"></a>00333 <span class="keyword">public</span>:
+<a name="l00334"></a>00334 <span class="keywordtype">bool</span> is_nan()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }
+<a name="l00335"></a>00335 };
+<a name="l00336"></a>00336
+<a name="l00337"></a>00337 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00338"></a>00338 <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="l00339"></a>00339 integer_t_data&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00340"></a>00340 {
+<a name="l00341"></a>00341 <span class="keyword">public</span>:
+<a name="l00342"></a>00342 <span class="keywordtype">bool</span> is_nan()<span class="keyword"> const </span>{
+<a name="l00343"></a>00343 <span class="keywordflow">return</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::data.is_nan();
+<a name="l00344"></a>00344 }
 <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="l00346"></a>00346 <span class="keyword">static</span> T nan() { <span class="keywordflow">return</span> get_nan&lt;T&gt;(); }
+<a name="l00347"></a>00347 };
+<a name="l00348"></a>00348
+<a name="l00350"></a>00350 <span class="comment">// class fixed_functions, to handle fixed-specific stuff</span>
 <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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
-<a name="l00358"></a>00358 T r(~integer_t_data&lt;BOOST_XINT_APARAMS&gt;::data);
-<a name="l00359"></a>00359 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00360"></a>00360 <span class="keywordflow">if</span> (!Signed) r.data.negative = <span class="keyword">false</span>;
-<a name="l00361"></a>00361 <span class="keywordflow">else</span> r.data.negative = !r.data.negative;
-<a name="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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
-<a name="l00364"></a>00364 <span class="keywordflow">return</span> detail::get_nan&lt;T&gt;();
-<a name="l00365"></a>00365 }
-<a name="l00366"></a>00366 } <span class="keywordflow">else</span> {
-<a name="l00367"></a>00367 T r(~integer_t_data&lt;BOOST_XINT_APARAMS&gt;::data);
-<a name="l00368"></a>00368 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00369"></a>00369 <span class="keywordflow">if</span> (!Signed) r.data.negative = <span class="keyword">false</span>;
-<a name="l00370"></a>00370 <span class="keywordflow">else</span> r.data.negative = !r.data.negative;
-<a name="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="l00352"></a>00352 <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="l00353"></a>00353 <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="l00354"></a>00354 <span class="keyword">using</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Threadsafe;
+<a name="l00355"></a>00355 <span class="keyword">using</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Nothrow;
+<a name="l00356"></a>00356 <span class="keyword">using</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Signed;
+<a name="l00357"></a>00357
+<a name="l00358"></a>00358 <span class="keyword">public</span>:
+<a name="l00359"></a>00359 T operator~()<span class="keyword"> const </span>{
+<a name="l00360"></a>00360 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00361"></a>00361 <span class="keywordflow">if</span> (integer_t_data&lt;BOOST_XINT_APARAMS&gt;::data.is_nan())
+<a name="l00362"></a>00362 <span class="keywordflow">return</span> detail::get_nan&lt;T&gt;();
+<a name="l00363"></a>00363 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00364"></a>00364 T r(~integer_t_data&lt;BOOST_XINT_APARAMS&gt;::data);
+<a name="l00365"></a>00365 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00366"></a>00366 <span class="keywordflow">if</span> (!Signed) r.data.negative = <span class="keyword">false</span>;
+<a name="l00367"></a>00367 <span class="keywordflow">else</span> r.data.negative = !r.data.negative;
+<a name="l00368"></a>00368 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00369"></a>00369 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00370"></a>00370 <span class="keywordflow">return</span> detail::get_nan&lt;T&gt;();
+<a name="l00371"></a>00371 }
+<a name="l00372"></a>00372 } <span class="keywordflow">else</span> {
+<a name="l00373"></a>00373 T r(~integer_t_data&lt;BOOST_XINT_APARAMS&gt;::data);
+<a name="l00374"></a>00374 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00375"></a>00375 <span class="keywordflow">if</span> (!Signed) r.data.negative = <span class="keyword">false</span>;
+<a name="l00376"></a>00376 <span class="keywordflow">else</span> r.data.negative = !r.data.negative;
+<a name="l00377"></a>00377 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00378"></a>00378 }
+<a name="l00379"></a>00379 }
+<a name="l00380"></a>00380 };
+<a name="l00381"></a>00381
+<a name="l00382"></a>00382 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00383"></a>00383 <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="l00384"></a>00384 integer_t_data&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00385"></a>00385 {
+<a name="l00386"></a>00386 <span class="comment">// Nothing needed here at present.</span>
+<a name="l00387"></a>00387 };
 <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="l00390"></a>00390 <span class="comment">// class unsigned_negative_functions, for... well, unsigned negatives. :-)</span>
+<a name="l00391"></a>00391
+<a name="l00392"></a>00392 <span class="keyword">template</span> &lt;negative_policy P, BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00393"></a>00393 <span class="keyword">class </span>unsigned_negative_functions { };
 <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 exception_handler&lt;&gt;::call(__FILE__, __LINE__,
-<a name="l00432"></a>00432 exceptions::cannot_represent(<span class="stringliteral">&quot;unsigned negative value&quot;</span>));
-<a name="l00433"></a>00433 }
-<a name="l00434"></a>00434 }
-<a name="l00435"></a>00435 };
-<a name="l00436"></a>00436
-<a name="l00437"></a>00437 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00438"></a>00438 <span class="keyword">class </span>unsigned_negative_functions&lt;p_force_zero, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;: <span class="keyword">virtual</span>
-<a name="l00439"></a>00439 <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;
-<a name="l00440"></a>00440 {
-<a name="l00441"></a>00441 <span class="keyword">public</span>:
-<a name="l00442"></a>00442 <span class="keywordtype">void</span> _fix_negative_unsigned() {
-<a name="l00443"></a>00443 <span class="keyword">typename</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::datatype&amp;
-<a name="l00444"></a>00444 data(integer_t_data&lt;BOOST_XINT_APARAMS&gt;::_data());
-<a name="l00445"></a>00445 data.set(0);
-<a name="l00446"></a>00446 }
-<a name="l00447"></a>00447 };
-<a name="l00448"></a>00448
-<a name="l00449"></a>00449 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00450"></a>00450 <span class="keyword">class </span>unsigned_negative_functions&lt;p_force_absolute, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;: <span class="keyword">virtual</span>
-<a name="l00451"></a>00451 <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;
-<a name="l00452"></a>00452 {
-<a name="l00453"></a>00453 <span class="keyword">public</span>:
-<a name="l00454"></a>00454 <span class="keywordtype">void</span> _fix_negative_unsigned() {
-<a name="l00455"></a>00455 <span class="keyword">typename</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::datatype&amp;
-<a name="l00456"></a>00456 data(integer_t_data&lt;BOOST_XINT_APARAMS&gt;::_data());
-<a name="l00457"></a>00457 data.negative = <span class="keyword">false</span>;
-<a name="l00458"></a>00458 }
-<a name="l00459"></a>00459 };
-<a name="l00460"></a>00460
-<a name="l00461"></a>00461 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00462"></a>00462 <span class="preprocessor"></span>
-<a name="l00463"></a>00463 } <span class="comment">// namespace detail</span>
-<a name="l00464"></a>00464 } <span class="comment">// namespace xint</span>
-<a name="l00465"></a>00465 } <span class="comment">// namespace boost</span>
+<a name="l00396"></a>00396 <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="l00397"></a>00397 <span class="keyword">public</span>:
+<a name="l00398"></a>00398 <span class="keywordtype">void</span> _fix_negative_unsigned() { } <span class="comment">// Nothing to do for signed numbers</span>
+<a name="l00399"></a>00399 };
+<a name="l00400"></a>00400
+<a name="l00401"></a>00401 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00402"></a>00402 <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="l00403"></a>00403 <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;, <span class="keyword">public</span>
+<a name="l00404"></a>00404 unsigned_negative_functions&lt;(integer_t_data&lt;BOOST_XINT_APARAMS&gt;::BitsType::
+<a name="l00405"></a>00405 value != 0 ? p_modulus : p_throw_exception), BOOST_XINT_APARAMS&gt;
+<a name="l00406"></a>00406 {
+<a name="l00407"></a>00407 <span class="comment">// Don&#39;t need anything here, it inherits from the proper default item</span>
+<a name="l00408"></a>00408 <span class="comment">// (modulus for fixed-length, throw_exception for variable-length)</span>
+<a name="l00409"></a>00409 };
+<a name="l00410"></a>00410
+<a name="l00411"></a>00411 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00412"></a>00412 <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="l00413"></a>00413 <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00414"></a>00414 {
+<a name="l00415"></a>00415 <span class="comment">// Types using unsigned_modulus must be fixedlength too.</span>
+<a name="l00416"></a>00416 <span class="keyword">typedef</span> <span class="keyword">typename</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::BitsType BitsType;
+<a name="l00417"></a>00417 BOOST_STATIC_ASSERT(BitsType::value != 0);
+<a name="l00418"></a>00418
+<a name="l00419"></a>00419 <span class="keyword">public</span>:
+<a name="l00420"></a>00420 <span class="keywordtype">void</span> _fix_negative_unsigned() {
+<a name="l00421"></a>00421 <span class="keyword">typename</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::datatype&amp;
+<a name="l00422"></a>00422 data(integer_t_data&lt;BOOST_XINT_APARAMS&gt;::_data());
+<a name="l00423"></a>00423 data = ~data;
+<a name="l00424"></a>00424 ++data;
+<a name="l00425"></a>00425 }
+<a name="l00426"></a>00426 };
+<a name="l00427"></a>00427
+<a name="l00428"></a>00428 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00429"></a>00429 <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="l00430"></a>00430 <span class="keyword">virtual</span> <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00431"></a>00431 {
+<a name="l00432"></a>00432 <span class="keyword">public</span>:
+<a name="l00433"></a>00433 <span class="keywordtype">void</span> _fix_negative_unsigned() {
+<a name="l00434"></a>00434 <span class="keywordflow">if</span> (integer_t_data&lt;BOOST_XINT_APARAMS&gt;::NothrowType::value) {
+<a name="l00435"></a>00435 integer_t_data&lt;BOOST_XINT_APARAMS&gt;::_data().make_nan();
+<a name="l00436"></a>00436 } <span class="keywordflow">else</span> {
+<a name="l00437"></a>00437 exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00438"></a>00438 exceptions::cannot_represent(<span class="stringliteral">&quot;unsigned negative value&quot;</span>));
+<a name="l00439"></a>00439 }
+<a name="l00440"></a>00440 }
+<a name="l00441"></a>00441 };
+<a name="l00442"></a>00442
+<a name="l00443"></a>00443 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00444"></a>00444 <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="l00445"></a>00445 <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00446"></a>00446 {
+<a name="l00447"></a>00447 <span class="keyword">public</span>:
+<a name="l00448"></a>00448 <span class="keywordtype">void</span> _fix_negative_unsigned() {
+<a name="l00449"></a>00449 <span class="keyword">typename</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::datatype&amp;
+<a name="l00450"></a>00450 data(integer_t_data&lt;BOOST_XINT_APARAMS&gt;::_data());
+<a name="l00451"></a>00451 data.set(0);
+<a name="l00452"></a>00452 }
+<a name="l00453"></a>00453 };
+<a name="l00454"></a>00454
+<a name="l00455"></a>00455 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00456"></a>00456 <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="l00457"></a>00457 <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00458"></a>00458 {
+<a name="l00459"></a>00459 <span class="keyword">public</span>:
+<a name="l00460"></a>00460 <span class="keywordtype">void</span> _fix_negative_unsigned() {
+<a name="l00461"></a>00461 <span class="keyword">typename</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::datatype&amp;
+<a name="l00462"></a>00462 data(integer_t_data&lt;BOOST_XINT_APARAMS&gt;::_data());
+<a name="l00463"></a>00463 data.negative = <span class="keyword">false</span>;
+<a name="l00464"></a>00464 }
+<a name="l00465"></a>00465 };
 <a name="l00466"></a>00466
-<a name="l00467"></a>00467 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTEGER_OPTIONS_HPP</span>
+<a name="l00467"></a>00467 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00468"></a>00468 <span class="preprocessor"></span>
+<a name="l00469"></a>00469 } <span class="comment">// namespace detail</span>
+<a name="l00470"></a>00470 } <span class="comment">// namespace xint</span>
+<a name="l00471"></a>00471 } <span class="comment">// namespace boost</span>
+<a name="l00472"></a>00472
+<a name="l00473"></a>00473 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTEGER_OPTIONS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -50,8 +50,8 @@
 
 <p>Definition in file <a class="el" href="policies_8hpp_source.html">policies.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -216,8 +216,8 @@
 <a name="l00202"></a>00202
 <a name="l00203"></a>00203 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_POLICY_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -50,8 +50,8 @@
 
 <p>Definition in file <a class="el" href="powers_8hpp_source.html">powers.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -104,8 +104,8 @@
 <a name="l00087"></a>00087
 <a name="l00088"></a>00088 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_POWERS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="prime_8hpp_source.html">prime.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -168,8 +168,8 @@
 <a name="l00151"></a>00151 <span class="comment"></span>
 <a name="l00152"></a>00152 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_PRIME_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/primes.html
==============================================================================
--- sandbox/xint/libs/xint/doc/primes.html (original)
+++ sandbox/xint/libs/xint/doc/primes.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -65,8 +65,8 @@
 }
 </pre></div><p>(You can find it in the <code>examples</code> directory, by the name <code>genprime.cpp</code>.) </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/primes.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -31,8 +31,8 @@
 <p>To deal with this, I separated the <code>xint::integer</code> and <code>xint::nothrow_integer</code> types. <code>xint::integer</code> functions now always throw exceptions on errors, and always hold valid numbers; <code>xint::nothrow_integer</code> functions (as implied by the name) never throw exceptions, instead returning the Not-a-Number value (which only <code>nothrow_integer</code> can hold).</p>
 <p>This design ensures that the Not-a-Number value only needs to be checked for in the <code>nothrow_integer</code> code, and ensures that any speed penalty from it is only incurred by people who choose to use the <code>nothrow_integer</code> type. It also preserves the no-exceptions behavior, which is useful under some circumstances. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/r_core.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -27,8 +27,8 @@
 <p>It <em>can</em> cause problems when you try to use the library from multiple threads at the same time, which is why it's only used in the (single-threaded) internal functions. By default, when you get a number back from the library, it has its own unique storage, so it can be safely used across multiple threads; if you don't need to use integer objects outside of the thread that they're created in, you can disable that by setting the <code>Threadsafe</code> template parameter to <code>false</code>.</p>
 <p>Note that even with the <code>Threadsafe</code> option set to <code>true</code>, you still have to ensure that only one thread accesses a particular <code>integer</code> at a time. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/r_cow.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -27,8 +27,8 @@
 <p>There are also times when exception-handling can get in the way of writing code that is easily understandable by other people. Any software developer understands calling a function and checking the return value to see if there was an error; it's a standard idiom in essentially any programming language, and it's even widely used in the C++ Standard Template Library (see <code>std::string::find</code>, for just one example).</p>
 <p>Writing code that is <em>human-readable</em> -- not just machine-readable -- is difficult, and there's little that anyone can do to change that. But giving the developer the choice to use either exceptions or error codes, depending on which is most readable, makes it easier to produce such code, and costs nothing to the people who choose not to use it. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/r_exception_blocking.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -25,8 +25,8 @@
 
 <h1><a class="anchor" id="r_insecure_default">But why have an insecure random number generator as the default? Why not default to the secure one? </a></h1><p>Because the secure one isn't available on all systems. If the library relied on <code>random_device</code> as a default, it wouldn't compile under those systems. If it used <code>xint::strong_random_generator</code>, it would compile, but would always fail on them. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/r_insecure_default.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <dd>
 n1744:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1744.pdf </dd></dl>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/r_interface.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -30,8 +30,8 @@
 <li>It does not, at present, implement a multiplication scheme with better performance than the "basecase" mentioned in section 3.4 of n1692, primarily because I haven't had the time to research all of them yet. I suspect that most people using the library will usually be using numbers below the threshold where the more exotic algorithms are faster, but I plan to add at least one of them in the future, maybe several. </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/r_interface_design_only.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -25,8 +25,8 @@
 
 <h1><a class="anchor" id="r_nan">Why have a Not-a-Number value? </a></h1><p>Because it's the cleanest way I could find to return answers that don't represent a valid number, which is necessary for the <code>nothrow_integer</code> type. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/r_nan.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -25,8 +25,8 @@
 
 <h1><a class="anchor" id="r_negzero">Since you've got Not-a-Number, what about negative zero, and positive and negative infinity, like IEEE floating-point numbers? </a></h1><p>The library does have limited support for a <a class="el" href="zero.html">"negative zero"</a> value, to support an unlimited-precision floating point type that will be built on it later. But infinity is a concept, not a countable value, and as such it is not included in the library at present. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/r_negzero.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -26,8 +26,8 @@
 <h1><a class="anchor" id="r_no_floats">Why didn't you provide conversions to and from float/double types? </a></h1><p>Although it might not be obvious, there is occasionally a need for such conversions. Unfortunately, unlike integers, there is no universal representation for floating-point values. Even IEEE 754, the most widely used floating-point specification, isn't completely nailed down -- it doesn't specify the endianness of the fields, making it difficult to provide code that would work on all systems. What's worse, the C/C++ <code>float</code> and <code>double</code> types don't have to be encoded in an IEEE 754 format at all.</p>
 <p>I'd like to provide such conversions, and I'll keep looking for ways to do so. It may turn out to be possible to do them through a string format, for instance. But for now, the library only provides conversions to and from integral values. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/r_nofloats.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -25,8 +25,8 @@
 
 <h1><a class="anchor" id="r_random">Why did you implement your own random number generator? You should use Boost.Random instead. </a></h1><p>Boost.Random provides <code>boost::random_device</code> to tap into the operating system's strong random number generator. As of Boost 1.43, it now supports Windows as well. But, also as of Boost 1.43, it requires a compiled library, making it more difficult to use in examples. As such, I've left the <code>xint::strong_random_generator</code> class here as well. Anyone using the library is free to use <code>boost::random_device</code> (or any other Boost.Random device) if they wish. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/r_random.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -25,8 +25,8 @@
 
 <h1><a class="anchor" id="r_shared_ptr">Why are you using a roll-your-own system instead of <code>boost::shared_ptr</code> for the copy-on-write stuff? </a></h1><p>Because it's a lot faster. I tried <code>boost::shared_ptr</code>, and under Linux with GCC 4.4.1 on the same computer, running my test suite went from 1.6 seconds to 3.4 seconds. The home-grown shared pointer design may not be quite as easy to work with in an exception-safe manner, but that's completely internal to the <code>integer</code> classes, so only developers working <em>on</em> the library, rather than <em>with</em> it, have to deal with that. I'll accept that trade-off. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/r_shared_ptr.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 report a range error in internal computations." That didn't quite sound like what I was trying to convey with that exception, which is that the <code>integer_t</code> that the user is trying to convert won't fit into the type that he's trying to convert it to. It does inherit from std::range_error though, so you can use either for most things, and get more specific if desired.</p>
 <p>In addition, it seemed discordant to me to have a library that <em>almost</em> always throws exceptions from a particular namespace. It was almost no additional work to make it <em>always</em> throw from a specific namespace, and it fit my sense of rightness. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/r_toobig.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -30,8 +30,8 @@
 </ul>
 <p>By all means, make suggestions. But don't be offended if I respond by referring you to this page. It only means that I feel that your suggestion isn't appropriate for this version, because it would delay it further, not that it isn't appropriate at all. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/r_whynotx.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/random.html
==============================================================================
--- sandbox/xint/libs/xint/doc/random.html (original)
+++ sandbox/xint/libs/xint/doc/random.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -29,8 +29,8 @@
 <p>If you have a different preferred generator, perhaps one that interfaces with dedicated hardware to produce randomness, you can plug that into the library's <code>random_by_size</code> and <code>random_prime</code> functions instead.</p>
 <p>See the code at the top of <a class="el" href="primes.html">the Prime Numbers page</a> for an example of how to use these generators to produce secure prime numbers. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/random.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -56,8 +56,8 @@
 
 <p>Definition in file <a class="el" href="random_8hpp_source.html">random.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -63,8 +63,8 @@
 <a name="l00043"></a>00043 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_fixed_range;
 <a name="l00044"></a>00044 <span class="keyword">static</span> <span class="keyword">const</span> result_type min_value;
 <a name="l00045"></a>00045 <span class="keyword">static</span> <span class="keyword">const</span> result_type max_value;
-<a name="l00046"></a>00046 result_type min() <span class="keyword">const</span>;
-<a name="l00047"></a>00047 result_type max() <span class="keyword">const</span>;
+<a name="l00046"></a>00046 result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () <span class="keyword">const</span>;
+<a name="l00047"></a>00047 result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () <span class="keyword">const</span>;
 <a name="l00048"></a>00048 <span class="keywordtype">double</span> entropy() <span class="keyword">const</span>;
 <a name="l00049"></a>00049
 <a name="l00050"></a>00050 <span class="keyword">private</span>:
@@ -103,8 +103,8 @@
 <a name="l00101"></a>00101
 <a name="l00102"></a>00102 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RANDOM_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -50,8 +50,8 @@
 
 <p>Definition in file <a class="el" href="random__by__size_8hpp_source.html">random_by_size.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -86,8 +86,8 @@
 <a name="l00069"></a>00069
 <a name="l00070"></a>00070 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RANDOM_BY_SIZE_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="randomgen_8hpp_source.html">randomgen.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -161,8 +161,8 @@
 <a name="l00145"></a>00145 <span class="comment"></span>
 <a name="l00146"></a>00146 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RANDOMGEN_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/rationale.html
==============================================================================
--- sandbox/xint/libs/xint/doc/rationale.html (original)
+++ sandbox/xint/libs/xint/doc/rationale.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -57,8 +57,8 @@
 <li><a class="el" href="r__whynotx.html">I've got a great idea! Why don't you do <em>X</em>?</a> </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/rationale.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -50,8 +50,8 @@
 
 <p>Definition in file <a class="el" href="raw__integer_8hpp_source.html">raw_integer.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -283,8 +283,8 @@
 <a name="l00268"></a>00268
 <a name="l00269"></a>00269 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RAW_INTEGER_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="roots_8hpp_source.html">roots.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -79,8 +79,8 @@
 <a name="l00063"></a>00063 <span class="comment"></span>
 <a name="l00064"></a>00064 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_ROOTS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -38,8 +38,8 @@
 
 <p>Definition in file <a class="el" href="shift_8hpp_source.html">shift.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -128,8 +128,8 @@
 <a name="l00111"></a>00111 <span class="comment"></span>
 <a name="l00112"></a>00112 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_SHIFT_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -50,8 +50,8 @@
 
 <p>Definition in file <a class="el" href="streams_8hpp_source.html">streams.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -135,8 +135,8 @@
 <a name="l00118"></a>00118
 <a name="l00119"></a>00119 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RAW_STREAMS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1copy__on__write.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1copy__on__write.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1copy__on__write.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -42,8 +42,8 @@
 <li>detail/<a class="el" href="options_8hpp_source.html">options.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -50,8 +50,8 @@
 <li>detail/<a class="el" href="options_8hpp_source.html">options.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__absolute.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__absolute.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__absolute.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -36,13 +36,13 @@
 <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#l00208">208</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#l00214">214</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 Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__allowed.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__allowed.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__allowed.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -36,13 +36,13 @@
 <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#l00156">156</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#l00162">162</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 Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__exception.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__exception.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__exception.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -36,13 +36,13 @@
 <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#l00187">187</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#l00193">193</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 Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__modulus.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__modulus.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__modulus.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -36,13 +36,13 @@
 <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#l00177">177</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#l00183">183</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 Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__not__allowed.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__not__allowed.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__not__allowed.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -36,13 +36,13 @@
 <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#l00166">166</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#l00172">172</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 Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__zero.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__zero.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__zero.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -37,13 +37,13 @@
 <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#l00198">198</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#l00204">204</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 Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -36,13 +36,13 @@
 <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#l00145">145</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#l00151">151</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 Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -34,15 +34,16 @@
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <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>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>
+<dl class="note"><dt><b>Note:</b></dt><dd>This provides only one half of a truly secure solution. Depending on how your operating system handles virtual memory, numbers may be paged out to disk at any time. To ensure maximum security, combine it with an allocator that prevents its memory from being paged to disk under any circumstances. </dd></dl>
 
-<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>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00143">143</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 Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -42,8 +42,8 @@
 <li>detail/<a class="el" href="options_8hpp_source.html">options.hpp</a></li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/testing.html
==============================================================================
--- sandbox/xint/libs/xint/doc/testing.html (original)
+++ sandbox/xint/libs/xint/doc/testing.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -26,8 +26,8 @@
 <h1><a class="anchor" id="testing">The Self-Testing Program </a></h1><p>The library has a self-testing program that you can build and run to confirm that it is working properly. You can find the source code for it in the <code>libs/xint/test</code> directory. All of the major functions are thoroughly exercised, and many of the minor ones as well.</p>
 <p>The source code for the testing program also demonstrates how to use many of the library's functions. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/testing.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/threadsafe.html
==============================================================================
--- sandbox/xint/libs/xint/doc/threadsafe.html (original)
+++ sandbox/xint/libs/xint/doc/threadsafe.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -27,8 +27,8 @@
 <p>That's a simplification though. The only problem multithreaded programs have with copy-on-write is that one thread might change an object while another is reading from it. Since the copy-on-write behavior is entirely internal to the class, no other code can tell when it's safe to make changes to an object. This is only a problem when more than one thread can access a specific object. So long as an integer object is only accessed from the thread that it's created in, there's no danger.</p>
 <p>If you want the speed of copy-on-write (which can be noticeable if you're dealing with very large numbers), but need to use integer objects from multiple threads when one or more might alter them, you can use the <code>force_thread_safety</code> parameter on the object's copy constructor to make a duplicate of an object with its own unique storage, even if using the <code>copy_on_write</code> option. You'll only need to do that when the integer object is crossing thread boundaries. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/threadsafe.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -37,8 +37,8 @@
 
 <p>Definition in file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -45,8 +45,8 @@
 <a name="l00024"></a>00024
 <a name="l00025"></a>00025 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Modified: sandbox/xint/libs/xint/doc/zero.html
==============================================================================
--- sandbox/xint/libs/xint/doc/zero.html (original)
+++ sandbox/xint/libs/xint/doc/zero.html 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -30,8 +30,8 @@
 </pre></div><p>A negative zero will act exactly like a "normal" zero in all respects. The only way to detect a sign on it is by calling <a class="el" href="classboost_1_1xint_1_1integer__t.html#aa278c48753019fe3deaa623eecdb16b3">the sign function</a> with the <code>signed_zero</code> parameter <code>true</code>. With that parameter, it will return -1 on any negative number, including zero.</p>
 <p>Note that the unary minus operator is the only function that will ever return a negative zero. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -28,8 +28,8 @@
 <h1>/home/chad/projects/xint/libs/xint/doc/dox/zero.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="
http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>
+<hr>
+<p><i>&copy; Copyright Chad Nelson, 2010. Distributed under the Boost Software
+License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+<a href=http://www.boost.org/LICENSE_1_0.txt>http://www.boost.org/LICENSE_1_0.txt>)
+</i></p>

Added: sandbox/xint/libs/xint/example/rsa.cpp
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/example/rsa.cpp 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -0,0 +1,281 @@
+#include <iostream>
+#include <string>
+#include <sstream>
+#include <fstream>
+#include <boost/limits.hpp>
+#include <boost/integer.hpp>
+#include <boost/xint/integer.hpp>
+#include <boost/static_assert.hpp>
+
+namespace xopt = boost::xint::options;
+using boost::xint::callback_t;
+using boost::xint::no_callback;
+
+static const std::size_t cbits = std::numeric_limits<char>::digits;
+
+template <std::size_t Bits>
+class Rsa {
+ public:
+ // We're going to use a fixed-length type for this example, primarily to
+ // show how they would be used. The calculations require intermediate
+ // results that are between two and three times the bit-size of the number
+ // though. We'll also make it unsigned, and use secure mode to reduce the
+ // chance that the key data gets written to disk anywhere.
+ typedef typename boost::xint::integer_t<xopt::fixedlength<Bits * 3>,
+ xopt::secure, xopt::negative_modulus> KeyNumber;
+
+ // We also need the smallest type that can hold a Bits-length number of
+ // characters.
+ typedef typename boost::uint_value_t<(Bits + cbits - 1) / cbits>::least
+ SizeT;
+
+ // There must be at least enough bits to handle one character and a SizeT.
+ BOOST_STATIC_ASSERT(Bits > ((sizeof(SizeT) + 1) * cbits));
+
+ // The number of bits needs to be even.
+ BOOST_STATIC_ASSERT((Bits & 0x01) == 0);
+
+ Rsa(const std::string keys);
+
+ std::string publickey() const;
+ std::string privatekey() const;
+
+ std::string encrypt(const std::string data) const;
+ std::string decrypt(const std::string data) const;
+
+ static Rsa generate(callback_t callback = no_callback);
+
+ private:
+ static std::size_t calculate_blocksize(KeyNumber n);
+
+ Rsa(const KeyNumber _n, const KeyNumber _d, const KeyNumber _e): n(_n),
+ d(_d), e(_e) { blocksize = calculate_blocksize(n); };
+
+ std::string number_to_binary_string(const KeyNumber num) const;
+ KeyNumber binary_string_to_number(const std::string s) const;
+
+ KeyNumber n, d, e;
+ std::size_t blocksize;
+};
+
+template <std::size_t Bits>
+std::size_t Rsa<Bits>::calculate_blocksize(KeyNumber n) {
+ // Round the size of n (in bits) down to the next lower multiple of the
+ // number of bits in a character. That's how many characters we can fit into
+ // a single block, for encryption purposes.
+ std::size_t size_in_bits = log2(n) - 1;
+ return (size_in_bits + cbits - 1) / cbits;
+}
+
+template <std::size_t Bits>
+std::string Rsa<Bits>::number_to_binary_string(const KeyNumber num) const {
+ boost::xint::binary_t b = to_binary(num);
+ std::string s;
+ std::copy(b.begin(), b.end(), std::back_inserter(s));
+ return s;
+}
+
+template <std::size_t Bits>
+typename Rsa<Bits>::KeyNumber Rsa<Bits>::binary_string_to_number(const
+ std::string s) const
+{
+ boost::xint::binary_t b;
+ std::copy(s.begin(), s.end(), std::back_inserter(b));
+ return KeyNumber(b);
+}
+
+template <std::size_t Bits>
+Rsa<Bits>::Rsa(const std::string keys) {
+ // Make sure it's a proper key, by checking the signature.
+ bool goodkey = true;
+ if (keys.substr(0, 4) == "{RSA") {
+ std::istringstream str(keys.substr(4));
+ std::size_t recordedbits = 0;
+ char c1 = 0, c2 = 0, c3 = 0, c4 = 0;
+ str >> recordedbits >> c1 >> e >> c2 >> n >> c3;
+ if (c1 == ',' && c2 == ',') {
+ if (c3 == ',') {
+ // It's a private key, including the decryption key.
+ str >> d >> c4;
+ if (c4 != '}') goodkey = false;
+ } else {
+ // It's a public key, no decryption key is included.
+ if (c3 != '}') goodkey = false;
+ }
+ } else goodkey = false;
+
+ // Make sure it's the right size
+ if (goodkey && recordedbits != Bits)
+ throw std::out_of_range("Wrong number of bits");
+ } else goodkey = false;
+
+ if (!goodkey) throw std::invalid_argument("Not a valid key");
+ blocksize = calculate_blocksize(n);
+}
+
+template <std::size_t Bits>
+std::string Rsa<Bits>::publickey() const {
+ std::ostringstream str;
+ str << "{RSA" << Bits << ',' << e << ',' << n << '}';
+ return str.str();
+}
+
+template <std::size_t Bits>
+std::string Rsa<Bits>::privatekey() const {
+ std::ostringstream str;
+ str << "{RSA" << Bits << ',' << e << ',' << n << ',' << d << '}';
+ return str.str();
+}
+
+template <std::size_t Bits>
+std::string Rsa<Bits>::encrypt(const std::string data) const {
+ // A proper implementation would pad the message with additional random
+ // data, to avoid the low encryption exponent attack. This example
+ // implementation does not.
+
+ // The message may contain up to (blocksize - 1) extra bytes when it's
+ // decrypted. Prepend a SizeT with the number of bytes to remove from the
+ // end.
+ const unsigned char mask = (unsigned char)(-1);
+ std::string msg;
+ SizeT trimblock = blocksize - ((data.length() + sizeof(SizeT)) % blocksize);
+ if (trimblock == blocksize) trimblock = 0;
+ for (std::size_t i = sizeof(SizeT); i > 0; --i) {
+ msg += static_cast<char>(trimblock & mask);
+ trimblock >>= cbits;
+ }
+ msg += data;
+
+ // Split the message into blocks of blocksize and encrypt each one.
+ std::string encrypted_msg;
+ for (std::size_t block = 0; block * blocksize < msg.length(); ++block) {
+ // Grab a block of blocksize bytes.
+ std::string tblock = msg.substr(block * blocksize, blocksize);
+
+ // Turn it into a KeyNumber.
+ KeyNumber mnumber = binary_string_to_number(tblock);
+
+ // Encrypt that number
+ mnumber = powmod(mnumber, e, n);
+
+ // Append the encrypted data to the return value, padded to the proper
+ // block length.
+ tblock = number_to_binary_string(mnumber);
+ if (tblock.length() < blocksize) tblock += std::string(blocksize -
+ tblock.length(), 0);
+ encrypted_msg += tblock;
+ }
+
+ return encrypted_msg;
+}
+
+template <std::size_t Bits>
+std::string Rsa<Bits>::decrypt(const std::string encrypted_msg) const {
+ std::string decrypted_msg;
+
+ // Split the message into blocks of blocksize and decrypt each one.
+ for (std::size_t block = 0; block * blocksize < encrypted_msg.length();
+ ++block)
+ {
+ // Grab a block of blocksize bytes.
+ std::string tblock = encrypted_msg.substr(block * blocksize, blocksize);
+
+ // Turn it into a KeyNumber.
+ KeyNumber mnumber = binary_string_to_number(tblock);
+
+ // Decrypt that number
+ mnumber = powmod(mnumber, d, n);
+
+ // Append the encrypted data to the return value, padded to the proper
+ // block length.
+ tblock = number_to_binary_string(mnumber);
+ if (tblock.length() < blocksize) tblock += std::string(blocksize -
+ tblock.length(), 0);
+ decrypted_msg += tblock;
+ }
+
+ // Trim the added bytes off of it.
+ SizeT trimblock = 0;
+ for (std::size_t i = 0; i < sizeof(SizeT); ++i)
+ trimblock |= (SizeT(decrypted_msg[i]) << (i * cbits));
+ decrypted_msg = decrypted_msg.substr(sizeof(SizeT), decrypted_msg.length() -
+ trimblock - sizeof(SizeT));
+
+ return decrypted_msg;
+}
+
+template <std::size_t Bits>
+Rsa<Bits> Rsa<Bits>::generate(callback_t callback) {
+ // Use the system's strong random number generator, via the XInt-provided
+ // convenience class.
+ boost::xint::strong_random_generator gen;
+
+ // Generate two random prime numbers, each containing no more than half of
+ // the requested bits, and compute the product.
+ KeyNumber p = KeyNumber::random_prime(gen, Bits / 2, callback);
+ KeyNumber q = KeyNumber::random_prime(gen, Bits / 2, callback);
+ assert(p != q); // If they're identical, there's almost certainly a problem
+
+ // Compute the product of the primes.
+ KeyNumber n(p * q);
+
+ // Select an encryption key e, such that e and (p - 1) * (q - 1) are
+ // relatively prime. Encryption goes a lot faster if you use small primes
+ // for this value, and 65537 is recommended by X.509 and PKCS #1.
+ KeyNumber e(65537);
+
+ // Compute the decryption key.
+ KeyNumber d(invmod(e, (p - 1) * (q - 1)));
+
+ // That's all we have to do. Just plug those numbers into an Rsa object and
+ // return it.
+ return Rsa<Bits>(n, d, e);
+}
+
+
+
+using std::cout;
+using std::endl;
+using std::flush;
+
+const int max_statusline_length = 40;
+
+void clearline(int length) {
+ cout << '\r' << std::string(length, ' ') << '\r' << flush;
+}
+
+bool callback() {
+ static int n = 0;
+ if (++n == max_statusline_length) {
+ clearline(max_statusline_length);
+ n = 0;
+ }
+ cout << '.' << flush;
+ return true;
+}
+
+int main() {
+ typedef Rsa<512> Cipher;
+
+ // In this test program, we'll generate a new key every time. 512-bit keys
+ // should generate within 100 attempts or less, most of the time, so it'll
+ // be pretty quick. You would normally generate a new key only once, store
+ // the private key securely, and publish the public key.
+ Cipher c = Cipher::generate(callback);
+ clearline(max_statusline_length);
+
+ std::string source("This is a test message.");
+ std::string encrypted = c.encrypt(source);
+ std::string decrypted = c.decrypt(encrypted);
+
+ if (decrypted == source) {
+ cout << "Decryption was successful!" << endl << endl;
+ cout << "The key is: " << c.privatekey() << endl;
+ } else {
+ cout << "Error in decryption!" << endl;
+ cout << source << " (" << source.length() << ')' << endl;
+ cout << decrypted << " (" << decrypted.length() << ')' << endl;
+ }
+
+ return EXIT_SUCCESS;
+}

Added: sandbox/xint/libs/xint/example/simplest.cpp
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/example/simplest.cpp 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -0,0 +1,33 @@
+#include <iostream>
+#include <sstream>
+#include <boost/xint/integer.hpp>
+
+int main() {
+ using std::cout;
+ using std::endl;
+
+ // You can assign an integer type from any built-in integral type, or a
+ // constant.
+ boost::xint::integer n = 2;
+
+ // You can do any operation with it that you can with the built-in integral
+ // types.
+ n += 8; // Will now be 10
+ n = n / 2; // Will now be 5
+ ++n; // Will now be 6
+ n *= 12; // Will now be 72
+ assert(n == 72);
+
+ // You can write it to a stream, or read it in from one.
+ cout << "The number is: " << n << endl;
+
+ std::istringstream stream("-14");
+ stream >> n;
+ assert(n == -14);
+
+ // And you can do all of this with much larger numbers than the built-in
+ // types can handle, too.
+ n = boost::xint::integer("123456789012345678901234567890123456789012345");
+ cout << "The huge number is: " << n << endl;
+ cout << "(That's a " << log2(n) << "-bit number.)" << endl;
+}

Modified: sandbox/xint/libs/xint/test/test_bit_manipulations.cpp
==============================================================================
--- sandbox/xint/libs/xint/test/test_bit_manipulations.cpp (original)
+++ sandbox/xint/libs/xint/test/test_bit_manipulations.cpp 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -150,8 +150,8 @@
     ne = n; ne ^= m; BOOST_CHECK_EQUAL(ne, xored);
     ne = n; ne &= m; BOOST_CHECK_EQUAL(ne, anded);
 
- BOOST_CHECK_EQUAL(lowestbit(n, 0), 4);
- BOOST_CHECK_EQUAL(highestbit(n, 0), 117);
+ BOOST_CHECK_EQUAL(lowestbit(n, 0), bitsize_t(4));
+ BOOST_CHECK_EQUAL(highestbit(n, 0), bitsize_t(117));
 
     typedef integer_t<fixedlength<12> > integer12;
     integer12 nn(0xABC), mm(0x123);

Modified: sandbox/xint/libs/xint/test/test_convert.cpp
==============================================================================
--- sandbox/xint/libs/xint/test/test_convert.cpp (original)
+++ sandbox/xint/libs/xint/test/test_convert.cpp 2010-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -45,7 +45,8 @@
     detail::digit_t mask = (detail::doubledigit_t(0x0F) <<
         (detail::bits_per_digit - 4));
     BOOST_REQUIRE_GT(n._get_length(), size_t(1));
- BOOST_REQUIRE_EQUAL(n._get_digit(n._get_length()-1) & mask, 0);
+ BOOST_REQUIRE_EQUAL(n._get_digit(n._get_length()-1) & mask,
+ detail::digit_t(0));
 
     for (int base = 2; base <= 36; ++base) {
         std::string s = to_string(n, base);

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -32,11 +32,13 @@
 
 BOOST_AUTO_TEST_CASE(test_log2) {
     // Check the detail::log2 template functions, unsigned and signed
- unsigned int u = (1 << (std::numeric_limits<unsigned int>::digits - 1));
- BOOST_CHECK_EQUAL(detail::log2(u), std::numeric_limits<unsigned
- int>::digits);
+ unsigned int u = (static_cast<unsigned int>(1) <<
+ (std::numeric_limits<unsigned int>::digits - 1));
+ BOOST_CHECK_EQUAL(detail::log2(u), static_cast<std::size_t>(
+ std::numeric_limits<unsigned int>::digits));
     int s = (1 << (std::numeric_limits<int>::digits - 1));
- BOOST_CHECK_EQUAL(detail::log2(s), std::numeric_limits<int>::digits);
+ BOOST_CHECK_EQUAL(detail::log2(s), static_cast<std::size_t>(
+ std::numeric_limits<int>::digits));
 
     // Check the log2 function for the integer class
     integer n(0x87654321);
@@ -111,9 +113,9 @@
 BOOST_AUTO_TEST_CASE(test_random_by_size) {
     default_random_generator gen;
     integer n = integer::random_by_size(gen, 512, true);
- BOOST_CHECK_EQUAL(log2(n), 512);
+ BOOST_CHECK_EQUAL(log2(n), static_cast<std::size_t>(512));
     n = integer::random_by_size(gen, 512, true, true);
- BOOST_CHECK_EQUAL(log2(n), 512);
+ BOOST_CHECK_EQUAL(log2(n), static_cast<std::size_t>(512));
 }
 
 BOOST_AUTO_TEST_CASE(test_unsigned_negative_policies) {

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-07-13 20:10:02 EDT (Tue, 13 Jul 2010)
@@ -51,10 +51,13 @@
     nothrow_integer n(nothrow_integer::nan());
     BOOST_CHECK_EQUAL(n.is_odd(), false);
     BOOST_CHECK_EQUAL(n.is_even(), false);
- BOOST_CHECK_EQUAL(n.hex_digits(), 0);
+ BOOST_CHECK_EQUAL(n.hex_digits(), static_cast<std::size_t>(0));
     BOOST_CHECK_EQUAL(n.sign(), 0);
- BOOST_CHECK_EQUAL(lowestbit(n, 12), 12); // 12 is just an arbitrary number
- BOOST_CHECK_EQUAL(highestbit(n, 12), 12);
+
+ // 12 is just an arbitrary number
+ BOOST_CHECK_EQUAL(lowestbit(n, 12), static_cast<std::size_t>(12));
+ BOOST_CHECK_EQUAL(highestbit(n, 12), static_cast<std::size_t>(12));
+
     BOOST_CHECK_EQUAL(compare(n, 12), 2);
     BOOST_CHECK_EQUAL(compare(12, n), 2);
 }


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