Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r60964 - in sandbox/xint: boost/xint libs/xint/doc/doxygen/html libs/xint/doc/doxygen/images libs/xint/example
From: pbristow_at_[hidden]
Date: 2010-03-31 09:52:30


Author: pbristow
Date: 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
New Revision: 60964
URL: http://svn.boost.org/trac/boost/changeset/60964

Log:
Chad updates from xint2.zip
Added:
   sandbox/xint/libs/xint/doc/doxygen/html/
   sandbox/xint/libs/xint/doc/doxygen/html/annotated.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/bit__manipulations_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/bit__manipulations_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classes.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1divide__by__zero-members.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1divide__by__zero.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1integer-members.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1integer.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__base-members.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__base.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__digit-members.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__digit.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__modulus-members.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__modulus.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1not__a__number-members.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1not__a__number.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1too__big-members.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1too__big.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/compare_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/compare_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/convert_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/convert_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/data__t_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/data__t_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/doxygen.png (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/exception__blocker_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/exception__blocker_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/files.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/functions.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/functions_func.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/functions_vars.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/gcd_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/gcd_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/globals.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/globals_defs.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/globals_func.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/globals_vars.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/index.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/integer_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/integer_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/misc_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/misc_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/modular_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/modular_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/monty_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/monty_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/my_doxygen.css (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/namespacedetail.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/namespacedetail_1_1xint.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_func.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_type.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_vars.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/namespaces.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/namespacexint.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/namespacexint_1_1detail.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/operators_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/operators_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/powers_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/powers_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/primes_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/primes_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/primitives_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/primitives_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/random_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/random_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/roots_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/roots_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t-members.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t_1_1_quick_digits-members.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t_1_1_quick_digits.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1token.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/tab_b.gif (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/tab_l.gif (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/tab_r.gif (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/tabs.css (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/xint_8hpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/xint_8hpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/xint__data__t_8hpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/xint__data__t_8hpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/xint__fibonacci_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/xint__fibonacci_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/xint__monty_8hpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/xint__monty_8hpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/xint__simple_8cpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/xint__simple_8cpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/xint__test_8hpp.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/html/xint__test_8hpp_source.html (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/images/
   sandbox/xint/libs/xint/doc/doxygen/images/Written_for_Boost.png (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/images/boost_in_mind.png (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/images/draft.png (contents, props changed)
   sandbox/xint/libs/xint/doc/doxygen/images/proposed_boost.png (contents, props changed)
Text files modified:
   sandbox/xint/boost/xint/xint.hpp | 282 +++++++++++++++++++++------------------
   sandbox/xint/boost/xint/xint_data_t.hpp | 20 +-
   sandbox/xint/boost/xint/xint_test.hpp | 1
   sandbox/xint/libs/xint/example/xint_fibonacci.cpp | 13 +
   4 files changed, 169 insertions(+), 147 deletions(-)

Modified: sandbox/xint/boost/xint/xint.hpp
==============================================================================
--- sandbox/xint/boost/xint/xint.hpp (original)
+++ sandbox/xint/boost/xint/xint.hpp 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -1,44 +1,16 @@
 
-/*! \brief The Extended Integer (XInt) Library
- \details
- A fast, portable C++ library for multi-precision integer math.
+/*
+ The Extended Integer (XInt) Library
+ A fast, portable C++ library for multi-precision integer math
+ Copyright 2010 by Chad Nelson
+
+ Distributed under the Boost Software License, Version 1.0.
+ See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt
 
     This is the main header file for the library, and the only one that
     programs using it should need to include.
-
-\mainpage eXtended Integer library.
-
-A C++ library that lets your program handle much, much larger integer numbers
-than the built-in int, long, or even long long types,
-and handle them using the same syntax that C and C++ use for the standard integer types.
-
-Completely portable, written entirely in modern C++,
-with many different types of operating system, compiler, and hardware in mind.
-It will compile cleanly on many operating systems without any changes,
-automatically adapting to whatever native integer sizes are available.
-
-It's fast. Speed of execution takes a back seat to portability,
-so it doesn't include things like assembly-language modules
-to wring every last CPU cycle out of it -- but it's still pretty darn fast.
-
-Features you need. Modular arithmetic. Bit manipulation functions.
-Cryptographically-secure random and prime number generation.
-A friendly and intuitive interface. An option for thread-safe operation.
-
-It has the Boost Software License, Version 1.0. at
-http://www.boost.org/LICENSE_1_0.txt
-
-Documentation in full as html is at
-https://svn.boost.org/svn/boost/sandbox/xint/libs/xint/doc/html/index/html
-
-and a pdf version is also available.
-
 */
-// Copyright 2010 by Chad Nelson
-
-// Distributed under the Boost Software License, Version 1.0.
-// See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt
 
 #ifndef BOOST_INCLUDED_XINT_H
 #define BOOST_INCLUDED_XINT_H
@@ -52,16 +24,17 @@
 #include <boost/integer.hpp>
 #include <boost/cstdint.hpp>
 #include <boost/function.hpp>
+#include <boost/type_traits.hpp>
 #include <boost/static_assert.hpp>
+#include <boost/random/uniform_int.hpp>
+#include <boost/random/variate_generator.hpp>
+
+namespace xint {
 
-//! \namespace xint namespace for all extended integer classes and functions.
-namespace xint
-{
 ////////////////////////////////////////////////////////////////////////////////
 // The boring-but-necessary preliminary stuff
 
-namespace detail
-{ //! \namespace xint::detail implementation details, normal users should not need to use these.
+namespace detail {
     typedef boost::uintmax_t doubledigit_t;
     typedef boost::uint_t<std::numeric_limits<doubledigit_t>::digits / 2>::fast
         digit_t;
@@ -76,6 +49,26 @@
 
     struct data_t;
     struct token { };
+
+ struct base_random_generator {
+ typedef unsigned int result_type;
+ };
+
+ template <class T>
+ struct random_generator: public base_random_generator {
+ typedef boost::uniform_int<result_type> dist_t;
+ typedef boost::variate_generator<T&, dist_t> gen_t;
+ random_generator(T& g): gen(g,
+ dist_t((std::numeric_limits<result_type>::min)(),
+ (std::numeric_limits<result_type>::max)())) { }
+ unsigned int operator()() { return gen(); }
+ gen_t gen;
+ };
+
+ typedef boost::function<unsigned int ()> random_t;
+
+ void set_random_generator(random_t fn, base_random_generator *obj);
+ unsigned int get_random();
 } // namespace detail
 
 typedef std::auto_ptr<detail::token> token;
@@ -90,24 +83,28 @@
 ////////////////////////////////////////////////////////////////////////////////
 // The integer class
 
-class integer
-{ //! \brief The extended integer class.
- //! \details
- public:
- integer(); //!< Constructs a default integer, value zero. (Can throw std::overflow_error if not enough memory to construct a new integer).
- integer(const integer& b); //!< Copy constructs a integer from another integer.
- //!< (Can throw std::overflow_error if not enough memory to construct a new integer).
- template <typename T> integer(const T& n);
- explicit integer(const std::string& str, size_t base=10); //!< Copy constructs a integer from a digits string (decimal by default).
- explicit integer(const not_a_number&); //!< Constructs an extended integer with the NotANumber value;
+class integer {
+ public:
+ integer();
+ integer(const integer& b);
+
+ template <typename T> integer(const T& n,
+ typename boost::enable_if<boost::is_integral<T> >::type* = 0,
+ typename boost::enable_if<boost::is_signed<T> >::type* = 0);
+ template <typename T> integer(const T& n,
+ typename boost::enable_if<boost::is_integral<T> >::type* = 0,
+ typename boost::enable_if<boost::is_unsigned<T> >::type* = 0);
+
+ explicit integer(const std::string& str, size_t base=10);
+ explicit integer(const not_a_number&);
     ~integer();
 
- bool odd() const; //!< \returns true if extended integer is odd.
- bool even() const; //!< \returns true if extended integer is even.
- int sign() const; //!< \returns -1 if extended integer is < 0.
- bool nan() const; //!< \returns true if extended integer is Not-a-Number.
+ bool odd() const;
+ bool even() const;
+ int sign() const;
+ bool nan() const; // Tests for Not-a-Number
 
- size_t hex_digits() const; //!< \returns the number of hex digits to show the integer.
+ size_t hex_digits() const;
 
     integer& operator=(const integer &c);
 
@@ -130,15 +127,12 @@
     integer& operator<<=(size_t shift);
     integer& operator>>=(size_t shift);
 
- static const integer& zero(); //!< Extended integer holding zero.
- static const integer& one(); //!< Extended integer holding one.
+ static const integer& zero();
+ static const integer& one();
 
     // These are used internally, they're probably not useful outside of the
     // library's functions.
- detail::data_t *_get_data()
- {
- return data; //! \returns raw data representing an extended integer.
- }
+ detail::data_t *_get_data() { return data; }
     const detail::data_t *_get_data() const { return data; }
     detail::digit_t _get_digit(size_t index) const;
     size_t _get_length() const;
@@ -153,9 +147,32 @@
     void _attach();
     void _detach();
 
- static const integer *cZero;
- static const integer *cOne;
- detail::data_t *data; //!< Raw data representing an extended integer.
+ static const integer *cZero, *cOne;
+
+ detail::data_t *data;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// The random generator convenience class
+
+class strong_random_generator {
+ public:
+ typedef unsigned int result_type;
+
+ strong_random_generator();
+ ~strong_random_generator();
+ result_type operator()();
+
+ 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;
+ double entropy() const;
+
+ private:
+ struct impl_t;
+ impl_t *impl;
 };
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -232,14 +249,10 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 // Random number functions
-bool seed_secure();
-void seed_fallback();
-void seed_manual(const std::string& value);
+
+template <typename T> void set_random_generator(T &gen);
 integer random_by_size(size_t sizeInBits, bool highBitOn=false, bool
     lowBitOn=false, bool canBeNegative=false);
-template <typename T> T random();
-template <typename T> T random(const T& lessThanThis);
-template <typename T> T random(const T& lowest, const T& highest);
 
 ////////////////////////////////////////////////////////////////////////////////
 // Prime number functions
@@ -247,31 +260,27 @@
 int is_prime(const integer& n, callback_t callback=no_callback);
 integer random_prime(size_t sizeInBits, callback_t callback=no_callback);
 
-} // namespace xint
-
 ////////////////////////////////////////////////////////////////////////////////
-// Global operators for the integer class
-
-bool operator!(const xint::integer& n1);
-bool operator<(const xint::integer& n1, const xint::integer& n2);
-bool operator>(const xint::integer& n1, const xint::integer& n2);
-bool operator<=(const xint::integer& n1, const xint::integer& n2);
-bool operator>=(const xint::integer& n1, const xint::integer& n2);
-bool operator==(const xint::integer& n1, const xint::integer& n2);
-bool operator!=(const xint::integer& n1, const xint::integer& n2);
-
-const xint::integer& operator+(const xint::integer& a);
-xint::integer operator-(const xint::integer& a);
-xint::integer operator+(const xint::integer& n1, const xint::integer& n2);
-xint::integer operator-(const xint::integer& n1, const xint::integer& n2);
-xint::integer operator*(const xint::integer& n1, const xint::integer& n2);
-xint::integer operator/(const xint::integer& n1, const xint::integer& n2);
-xint::integer operator%(const xint::integer& n1, const xint::integer& n2);
-xint::integer operator&(const xint::integer& n1, const xint::integer& n2);
-xint::integer operator|(const xint::integer& n1, const xint::integer& n2);
-xint::integer operator^(const xint::integer& n1, const xint::integer& n2);
+// Operators for the integer class
 
-namespace xint {
+bool operator!(const integer& n1);
+bool operator<(const integer& n1, const integer& n2);
+bool operator>(const integer& n1, const integer& n2);
+bool operator<=(const integer& n1, const integer& n2);
+bool operator>=(const integer& n1, const integer& n2);
+bool operator==(const integer& n1, const integer& n2);
+bool operator!=(const integer& n1, const integer& n2);
+
+const integer& operator+(const integer& a);
+integer operator-(const integer& a);
+integer operator+(const integer& n1, const integer& n2);
+integer operator-(const integer& n1, const integer& n2);
+integer operator*(const integer& n1, const integer& n2);
+integer operator/(const integer& n1, const integer& n2);
+integer operator%(const integer& n1, const integer& n2);
+integer operator&(const integer& n1, const integer& n2);
+integer operator|(const integer& n1, const integer& n2);
+integer operator^(const integer& n1, const integer& n2);
 
 ////////////////////////////////////////////////////////////////////////////////
 // Exception classes
@@ -300,6 +309,12 @@
         invalid_argument(what) { }
 };
 
+class cannot_represent: public std::invalid_argument {
+ public:
+ cannot_represent(const std::string& what="cannot represent the requested "
+ "value"): invalid_argument(what) { }
+};
+
 class too_big: public std::range_error {
     public:
     too_big(const std::string& what="value out of range for requested "
@@ -312,33 +327,50 @@
         runtime_error(what) { }
 };
 
+class no_strong_random: public std::runtime_error {
+ public:
+ no_strong_random(const std::string& what="system does not have a strong "
+ "random generator"): runtime_error(what) { }
+};
+
+class overflow_error: public std::overflow_error {
+ public:
+ overflow_error(const std::string& what="overflow error in XInt library"):
+ std::overflow_error(what) { }
+};
+
 ////////////////////////////////////////////////////////////////////////////////
 // Template function definitions
 
-template <typename T>
-integer::integer(const T& n) {
- if (std::numeric_limits<T>::is_signed) {
- if (n >= 0) {
- if (static_cast<T>(n & detail::digit_mask) == n)
- _init(detail::digit_t(n));
- else _init(boost::uintmax_t(n));
- } else if (n == (std::numeric_limits<T>::min)()) {
- // Have to treat the minimum number carefully, because -n is not
- // what you'd think it is.
- _init(boost::uintmax_t(-(n+1)));
- _set_negative(true);
- --(*this);
- } else {
- _init(boost::uintmax_t(-n));
- _set_negative(true);
- }
- } else {
+template <typename T> integer::integer(const T& n,
+ typename boost::enable_if<boost::is_integral<T> >::type*,
+ typename boost::enable_if<boost::is_signed<T> >::type*)
+{
+ if (n >= 0) {
         if (static_cast<T>(n & detail::digit_mask) == n)
             _init(detail::digit_t(n));
         else _init(boost::uintmax_t(n));
+ } else if (n == (std::numeric_limits<T>::min)()) {
+ // Have to treat the minimum number carefully, because -n is not
+ // what you'd think it is.
+ _init(boost::uintmax_t(-(n+1)));
+ _set_negative(true);
+ --(*this);
+ } else {
+ _init(boost::uintmax_t(-n));
+ _set_negative(true);
     }
 }
 
+template <typename T> integer::integer(const T& n,
+ typename boost::enable_if<boost::is_integral<T> >::type*,
+ typename boost::enable_if<boost::is_unsigned<T> >::type*)
+{
+ if (static_cast<T>(n & detail::digit_mask) == n)
+ _init(detail::digit_t(n));
+ else _init(boost::uintmax_t(n));
+}
+
 template <typename T>
 T to(const integer& n) {
     n._throw_if_nan();
@@ -347,8 +379,8 @@
             throw too_big("value out of range for requested conversion");
 
     T rval=0;
- int len=n._get_length();
- for (int x=0; x<len; ++x)
+ size_t len=n._get_length();
+ for (size_t x=0; x<len; ++x)
         rval=static_cast<T>((rval * detail::digit_overflowbit)
             + n._get_digit(len-x-1));
     if (n.sign() < 0) rval *= -1;
@@ -356,27 +388,11 @@
 }
 
 template <typename T>
-T random() {
- return random((std::numeric_limits<T>::min)(),
- (std::numeric_limits<T>::max)());
+void set_random_generator(T &gen) {
+ detail::random_generator<T> *obj=new detail::random_generator<T>(gen);
+ detail::set_random_generator(*obj, obj);
 }
 
-template <typename T>
-T random(const T& lessThanThis) {
- return random(0, lessThanThis-1);
-}
-
-template <typename T>
-T random(const T& lowest, const T& highest) {
- integer range(integer(highest)-lowest+1);
- return to<T>(lowest+(random_by_size(std::numeric_limits<T>::digits+1)
- % range));
-}
-
-// Customization for random integer within a range
-template <>
-integer random<integer>(const integer& lowest, const integer& highest);
-
 template <typename charT, typename traits>
 inline std::basic_ostream<charT,traits>& operator<<(std::basic_ostream<charT,
     traits>& out, const xint::integer& n)

Modified: sandbox/xint/boost/xint/xint_data_t.hpp
==============================================================================
--- sandbox/xint/boost/xint/xint_data_t.hpp (original)
+++ sandbox/xint/boost/xint/xint_data_t.hpp 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -32,13 +32,13 @@
 struct data_t {
     struct QuickDigits {
         // We want at least enough QuickDigits to hold two ints.
- static const int intbits=std::numeric_limits<unsigned int>::digits;
- static const int suggested=(2*intbits/bits_per_digit);
- static const int minimum=3;
- static const int count=(suggested < minimum ? minimum : suggested);
+ static const size_t intbits=std::numeric_limits<unsigned int>::digits;
+ static const size_t suggested=(2*intbits/bits_per_digit);
+ static const size_t minimum=3;
+ static const size_t count=(suggested < minimum ? minimum : suggested);
     };
 
- int mLength, mAllocated;
+ size_t mLength, mAllocated;
     digit_t *digits, mQuickDigits[QuickDigits::count];
 
     #if !defined(XINT_SECURE)
@@ -58,10 +58,10 @@
 
     void attach() { ++mCopies; }
     bool detach() { return (--mCopies==0); }
- void alloc(int digits, bool copydigits=false);
- void realloc(int newdigits) { alloc(newdigits, true); }
+ void alloc(size_t digits, bool copydigits=false);
+ void realloc(size_t newdigits) { alloc(newdigits, true); }
     void skipLeadingZeros();
- void copy(const data_t *c, int extraDigits=0);
+ void copy(const data_t *c, size_t extraDigits=0);
     void zero(digit_t *p, size_t count);
 
     void quickset(digit_t d1, digit_t d2=0, digit_t d3=0);
@@ -75,8 +75,8 @@
     void subtract(const data_t& subtrahend);
 
     // These are also calculated in place, for maximum speed.
- void shift_left(int byBits);
- void shift_right(int byBits);
+ void shift_left(size_t byBits);
+ void shift_right(size_t byBits);
 };
 
 } // namespace detail

Modified: sandbox/xint/boost/xint/xint_test.hpp
==============================================================================
--- sandbox/xint/boost/xint/xint_test.hpp (original)
+++ sandbox/xint/boost/xint/xint_test.hpp 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -23,7 +23,6 @@
 bool testDivideMod();
 bool testConvert();
 bool testStreams();
-bool testRandom();
 bool testMontyMultiply();
 bool testMontyPowerMod();
 

Added: sandbox/xint/libs/xint/doc/doxygen/html/annotated.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/annotated.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,100 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li class="current">Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
+ <tr><td class="indexkey"><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="classxint_1_1divide__by__zero.html">xint::divide_by_zero</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="classxint_1_1invalid__base.html">xint::invalid_base</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="classxint_1_1invalid__digit.html">xint::invalid_digit</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="classxint_1_1invalid__modulus.html">xint::invalid_modulus</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="classxint_1_1not__a__number.html">xint::not_a_number</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="structxint_1_1detail_1_1token.html">xint::detail::token</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="classxint_1_1too__big.html">xint::too_big</a></td><td class="indexvalue"></td></tr>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/bit__manipulations_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/bit__manipulations_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,122 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/bit_manipulations.cpp File Reference</h1><code>#include &quot;<a class="el" href="bit__manipulations_8cpp_source.html">../xint.hpp</a>&quot;</code><br/>
+<code>#include &lt;string&gt;</code><br/>
+<code>#include &lt;limits&gt;</code><br/>
+<code>#include &lt;memory&gt;</code><br/>
+<code>#include &lt;cstddef&gt;</code><br/>
+<code>#include &lt;iostream&gt;</code><br/>
+<code>#include &lt;stdexcept&gt;</code><br/>
+<code>#include &lt;boost/integer.hpp&gt;</code><br/>
+<code>#include &lt;boost/cstdint.hpp&gt;</code><br/>
+<code>#include &lt;boost/function.hpp&gt;</code><br/>
+<code>#include &lt;boost/static_assert.hpp&gt;</code><br/>
+<code>#include &lt;vector&gt;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952">xint::getbit</a> (const integer &amp;n, size_t bit)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#adf2652627e78682c17e120816987984a">xint::setbit</a> (integer &amp;n, size_t bit)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a8982e3e3ab7c1c763416eadc479d9724">xint::clearbit</a> (integer &amp;n, size_t bit)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a20e8cf2664222955e68f2ef9020bb196">xint::lowestbit</a> (const integer &amp;n, size_t defaultValue)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afcfbe1d95a8dabc615e97565c0ba768c">xint::highestbit</a> (const integer &amp;n, size_t defaultValue)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">xint::bitwise_and</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">xint::bitwise_or</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">xint::bitwise_xor</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">xint::shift</a> (const integer &amp;n, int byBits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">xint::shift_left</a> (const integer &amp;_n, size_t byBits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">xint::shift_right</a> (const integer &amp;_n, size_t byBits)</td></tr>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/bit__manipulations_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/bit__manipulations_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,255 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/bit_manipulations.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the bit-manipulation functions.</span>
+<a name="l00012"></a>00012 <span class="comment">*/</span>
+<a name="l00013"></a>00013
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../xint_data_t.hpp&quot;</span>
+<a name="l00016"></a>00016
+<a name="l00017"></a><a class="code" href="namespacexint.html">00017</a> <span class="keyword">namespace </span>xint {
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019 <span class="keyword">using namespace </span>detail;
+<a name="l00020"></a>00020
+<a name="l00021"></a>00021 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952">getbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">size_t</span> bit) {
+<a name="l00022"></a>00022 n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00023"></a>00023 <span class="keywordtype">size_t</span> index=bit/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>;
+<a name="l00024"></a>00024 <span class="keywordflow">if</span> (index &lt; n.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>()) {
+<a name="l00025"></a>00025 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> mask=(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(1) &lt;&lt; (bit % <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>));
+<a name="l00026"></a>00026 <span class="keywordflow">return</span> ((n.<a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(index) &amp; mask) != 0);
+<a name="l00027"></a>00027 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00028"></a>00028 }
+<a name="l00029"></a>00029
+<a name="l00030"></a>00030 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a>(<a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">size_t</span> bit) {
+<a name="l00031"></a>00031 n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00032"></a>00032 n.<a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
+<a name="l00033"></a>00033 <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *ndata=n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
+<a name="l00034"></a>00034
+<a name="l00035"></a>00035 <span class="keywordtype">size_t</span> index=bit/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>;
+<a name="l00036"></a>00036 <span class="keywordflow">if</span> (index &gt;= n.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>()) ndata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">realloc</a>(index+1);
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> mask=(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(1) &lt;&lt; (bit % <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>));
+<a name="l00039"></a>00039 ndata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[index] |= mask;
+<a name="l00040"></a>00040 ndata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00041"></a>00041 }
+<a name="l00042"></a>00042
+<a name="l00043"></a>00043 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a8982e3e3ab7c1c763416eadc479d9724">clearbit</a>(<a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">size_t</span> bit) {
+<a name="l00044"></a>00044 n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00045"></a>00045 <span class="keywordtype">size_t</span> index=bit/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>;
+<a name="l00046"></a>00046 <span class="keywordflow">if</span> (index &lt; n.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>()) {
+<a name="l00047"></a>00047 n.<a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
+<a name="l00048"></a>00048 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> mask=(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(1) &lt;&lt; (bit % <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>));
+<a name="l00049"></a>00049 n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>()-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[index] &amp;= ~mask;
+<a name="l00050"></a>00050 n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>()-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00051"></a>00051 }
+<a name="l00052"></a>00052 }
+<a name="l00053"></a>00053
+<a name="l00054"></a>00054 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a20e8cf2664222955e68f2ef9020bb196">lowestbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">size_t</span> defaultValue) {
+<a name="l00055"></a>00055 <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>()==0) <span class="keywordflow">return</span> defaultValue;
+<a name="l00056"></a>00056
+<a name="l00057"></a>00057 <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *ndata=n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
+<a name="l00058"></a>00058 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *p=ndata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *pe=p+ndata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00059"></a>00059 <span class="keywordflow">while</span> (p!=pe &amp;&amp; *p==0) ++p;
+<a name="l00060"></a>00060
+<a name="l00061"></a>00061 <span class="keywordtype">size_t</span> index=(p - ndata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>);
+<a name="l00062"></a>00062 <span class="keywordtype">size_t</span> r=(<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * index);
+<a name="l00063"></a>00063 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> digit=*p;
+<a name="l00064"></a>00064
+<a name="l00065"></a>00065 <span class="keywordflow">while</span> ((digit &amp; 0x01)==0) {
+<a name="l00066"></a>00066 digit&gt;&gt;=1;
+<a name="l00067"></a>00067 ++r;
+<a name="l00068"></a>00068 }
+<a name="l00069"></a>00069
+<a name="l00070"></a>00070 <span class="keywordflow">return</span> r;
+<a name="l00071"></a>00071 }
+<a name="l00072"></a>00072
+<a name="l00073"></a>00073 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#afcfbe1d95a8dabc615e97565c0ba768c">highestbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">size_t</span> defaultValue) {
+<a name="l00074"></a>00074 <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>()==0) <span class="keywordflow">return</span> defaultValue;
+<a name="l00075"></a>00075 <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(<a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(n)-1);
+<a name="l00076"></a>00076 }
+<a name="l00077"></a>00077
+<a name="l00078"></a>00078 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">bitwise_and</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n2) {
+<a name="l00079"></a>00079 n1.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00080"></a>00080 n2.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00081"></a>00081
+<a name="l00082"></a>00082 <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *smaller=n1.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>(), *larger=n2.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
+<a name="l00083"></a>00083 <span class="keywordflow">if</span> (smaller-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> &gt; larger-&gt;mLength) std::swap(smaller, larger);
+<a name="l00084"></a>00084
+<a name="l00085"></a>00085 <a class="code" href="classxint_1_1integer.html">integer</a> r;
+<a name="l00086"></a>00086 <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *rdata=r.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
+<a name="l00087"></a>00087 rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(smaller-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>);
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s1=smaller-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *s1e=s1+smaller-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>, *s2=larger-&gt;digits;
+<a name="l00090"></a>00090 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *t=rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
+<a name="l00091"></a>00091
+<a name="l00092"></a>00092 <span class="keywordflow">while</span> (s1 &lt; s1e) *t++ = *s1++ &amp; *s2++;
+<a name="l00093"></a>00093
+<a name="l00094"></a>00094 rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<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 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">bitwise_or</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n2) {
+<a name="l00099"></a>00099 n1.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00100"></a>00100 n2.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00101"></a>00101
+<a name="l00102"></a>00102 <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *smaller=n1.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>(), *larger=n2.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
+<a name="l00103"></a>00103 <span class="keywordflow">if</span> (smaller-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> &gt; larger-&gt;mLength) std::swap(smaller, larger);
+<a name="l00104"></a>00104
+<a name="l00105"></a>00105 <a class="code" href="classxint_1_1integer.html">integer</a> r;
+<a name="l00106"></a>00106 <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *rdata=r.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
+<a name="l00107"></a>00107 rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(larger-&gt;mLength);
+<a name="l00108"></a>00108
+<a name="l00109"></a>00109 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s1=smaller-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *s1e=s1+smaller-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00110"></a>00110 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s2=larger-&gt;digits, *s2e=s2+larger-&gt;mLength;
+<a name="l00111"></a>00111 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *t=rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
+<a name="l00112"></a>00112
+<a name="l00113"></a>00113 <span class="keywordflow">while</span> (s1&lt;s1e) *t++ = *s1++ | *s2++;
+<a name="l00114"></a>00114 <span class="keywordflow">while</span> (s2&lt;s2e) *t++ = *s2++;
+<a name="l00115"></a>00115
+<a name="l00116"></a>00116 rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00117"></a>00117 <span class="keywordflow">return</span> r;
+<a name="l00118"></a>00118 }
+<a name="l00119"></a>00119
+<a name="l00120"></a>00120 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">bitwise_xor</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n2) {
+<a name="l00121"></a>00121 n1.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00122"></a>00122 n2.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00123"></a>00123
+<a name="l00124"></a>00124 <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *smaller=n1.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>(), *larger=n2.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
+<a name="l00125"></a>00125 <span class="keywordflow">if</span> (smaller-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> &gt; larger-&gt;mLength) std::swap(smaller, larger);
+<a name="l00126"></a>00126
+<a name="l00127"></a>00127 <a class="code" href="classxint_1_1integer.html">integer</a> r;
+<a name="l00128"></a>00128 <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *rdata=r.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
+<a name="l00129"></a>00129 rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(larger-&gt;mLength);
+<a name="l00130"></a>00130
+<a name="l00131"></a>00131 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s1=smaller-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *s1e=s1+smaller-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00132"></a>00132 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s2=larger-&gt;digits, *s2e=s2+larger-&gt;mLength;
+<a name="l00133"></a>00133 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *t=rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
+<a name="l00134"></a>00134
+<a name="l00135"></a>00135 <span class="keywordflow">while</span> (s1&lt;s1e) *t++ = *s1++ ^ *s2++;
+<a name="l00136"></a>00136 <span class="keywordflow">while</span> (s2&lt;s2e) *t++ = *s2++;
+<a name="l00137"></a>00137
+<a name="l00138"></a>00138 rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00139"></a>00139 <span class="keywordflow">return</span> r;
+<a name="l00140"></a>00140 }
+<a name="l00141"></a>00141
+<a name="l00142"></a>00142 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">int</span> byBits) {
+<a name="l00143"></a>00143 <span class="keywordflow">if</span> (byBits &gt; 0) <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">shift_left</a>(n, byBits);
+<a name="l00144"></a>00144 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">shift_right</a>(n, -byBits);
+<a name="l00145"></a>00145 }
+<a name="l00146"></a>00146
+<a name="l00147"></a>00147 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">shift_left</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; _n, <span class="keywordtype">size_t</span> byBits) {
+<a name="l00148"></a>00148 _n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00149"></a>00149
+<a name="l00150"></a>00150 <span class="keywordflow">if</span> (byBits==0) <span class="keywordflow">return</span> _n;
+<a name="l00151"></a>00151
+<a name="l00152"></a>00152 <a class="code" href="classxint_1_1integer.html">integer</a> n(_n);
+<a name="l00153"></a>00153 n.<a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
+<a name="l00154"></a>00154 n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>()-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">shift_left</a>(byBits);
+<a name="l00155"></a>00155 <span class="keywordflow">return</span> n;
+<a name="l00156"></a>00156 }
+<a name="l00157"></a>00157
+<a name="l00158"></a>00158 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">shift_right</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; _n, <span class="keywordtype">size_t</span> byBits) {
+<a name="l00159"></a>00159 _n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00160"></a>00160
+<a name="l00161"></a>00161 <span class="keywordflow">if</span> (byBits==0) <span class="keywordflow">return</span> _n;
+<a name="l00162"></a>00162
+<a name="l00163"></a>00163 <a class="code" href="classxint_1_1integer.html">integer</a> n(_n);
+<a name="l00164"></a>00164 n.<a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
+<a name="l00165"></a>00165 n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>()-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">shift_right</a>(byBits);
+<a name="l00166"></a>00166 <span class="keywordflow">return</span> n;
+<a name="l00167"></a>00167 }
+<a name="l00168"></a>00168
+<a name="l00169"></a>00169 } <span class="comment">// namespace detail</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classes.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classes.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,96 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>Class Index</h1><div class="qindex"><a class="qindex" href="#letter_D">D</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_Q">Q</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_T">T</a></div>
+<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;D&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classxint_1_1invalid__digit.html">invalid_digit</a> (<a class="el" href="namespacexint.html">xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classxint_1_1not__a__number.html">not_a_number</a> (<a class="el" href="namespacexint.html">xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;T&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> (<a class="el" href="namespacexint_1_1detail.html">xint::detail</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classxint_1_1integer.html">integer</a> (<a class="el" href="namespacexint.html">xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classxint_1_1invalid__modulus.html">invalid_modulus</a> (<a class="el" href="namespacexint.html">xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_Q"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;Q&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="structxint_1_1detail_1_1token.html">token</a> (<a class="el" href="namespacexint_1_1detail.html">xint::detail</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classxint_1_1divide__by__zero.html">divide_by_zero</a> (<a class="el" href="namespacexint.html">xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classxint_1_1invalid__base.html">invalid_base</a> (<a class="el" href="namespacexint.html">xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_N"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;N&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">data_t::QuickDigits</a> (<a class="el" href="namespacexint_1_1detail.html">xint::detail</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classxint_1_1too__big.html">too_big</a> (<a class="el" href="namespacexint.html">xint</a>)&nbsp;&nbsp;&nbsp;</td></tr></table><div class="qindex"><a class="qindex" href="#letter_D">D</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_Q">Q</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_T">T</a></div>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1divide__by__zero-members.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1divide__by__zero-members.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,90 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::divide_by_zero Member List</h1>This is the complete list of members for <a class="el" href="classxint_1_1divide__by__zero.html">xint::divide_by_zero</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1divide__by__zero.html#a31233d42a45ca6ef7078e700fa114ad2">divide_by_zero</a>(const std::string &amp;what=&quot;divide by zero error&quot;)</td><td><a class="el" href="classxint_1_1divide__by__zero.html">xint::divide_by_zero</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1divide__by__zero.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1divide__by__zero.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,125 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath"><a class="el" href="namespacexint.html">xint</a>::<a class="el" href="classxint_1_1divide__by__zero.html">divide_by_zero</a>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::divide_by_zero Class Reference</h1><!-- doxytag: class="xint::divide_by_zero" -->
+<p><code>#include &lt;<a class="el" href="xint_8hpp_source.html">xint.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1divide__by__zero.html#a31233d42a45ca6ef7078e700fa114ad2">divide_by_zero</a> (const std::string &amp;what=&quot;divide by zero error&quot;)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00297">297</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a31233d42a45ca6ef7078e700fa114ad2"></a><!-- doxytag: member="xint::divide_by_zero::divide_by_zero" ref="a31233d42a45ca6ef7078e700fa114ad2" args="(const std::string &amp;what=&quot;divide by zero error&quot;)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xint::divide_by_zero::divide_by_zero </td>
+ <td>(</td>
+ <td class="paramtype">const std::string &amp;&nbsp;</td>
+ <td class="paramname"> <em>what</em> = <code>&quot;divide&nbsp;by&nbsp;zero&nbsp;error&quot;</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00299">299</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint_8hpp_source.html">xint.hpp</a></li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1integer-members.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1integer-members.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,134 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::integer Member List</h1>This is the complete list of members for <a class="el" href="classxint_1_1integer.html">xint::integer</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>()</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a>()</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>()</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#aff99f7868567ae0dd4666a985873a5a7">_get_data</a>() const </td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(size_t index) const </td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>() const </td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(detail::digit_t init=0)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#adaaff26c817fec0bef3cf903773e3f7b">_init</a>(const integer &amp;c)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#aed205d80e7b1a495a2d67abde5c406e8">_init</a>(boost::uintmax_t n)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>()</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">_set_negative</a>(bool negative)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>() const </td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a></td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a></td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a></td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">even</a>() const </td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">hex_digits</a>() const </td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer</a>()</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#aa123fb47accd778f87e2866c9d986bb7">integer</a>(const integer &amp;b)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a65df30415a5d2f91a72fb2c55d7cd33c">integer</a>(const T &amp;n)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a6dfc86dfc539cfda1062ef1bc24aa526">integer</a>(const std::string &amp;str, size_t base=10)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [explicit]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a1211c9298c3281815bc9b709439d031a">integer</a>(const not_a_number &amp;)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [explicit]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a>() const </td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">odd</a>() const </td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">one</a>()</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">operator%=</a>(const integer &amp;b)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">operator&amp;=</a>(const integer &amp;n)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">operator*=</a>(const integer &amp;b)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">operator++</a>()</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a79624fb580bdb2ba19fe13223c801c25">operator++</a>(int)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">operator+=</a>(const integer &amp;b)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">operator--</a>()</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a40ff1ffeda1df544b8bcd907f76d93cd">operator--</a>(int)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">operator-=</a>(const integer &amp;b)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">operator/=</a>(const integer &amp;b)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">operator&lt;&lt;</a>(size_t shift) const </td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">operator&lt;&lt;=</a>(size_t shift)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">operator=</a>(const integer &amp;c)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">operator&gt;&gt;</a>(size_t shift) const </td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">operator&gt;&gt;=</a>(size_t shift)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">operator^=</a>(const integer &amp;n)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">operator|=</a>(const integer &amp;n)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() const </td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">zero</a>()</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">~integer</a>()</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
+</table></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1integer.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1integer.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,1180 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath"><a class="el" href="namespacexint.html">xint</a>::<a class="el" href="classxint_1_1integer.html">integer</a>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::integer Class Reference</h1><!-- doxytag: class="xint::integer" -->
+<p><code>#include &lt;<a class="el" href="xint_8hpp_source.html">xint.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The extended integer class. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#aa123fb47accd778f87e2866c9d986bb7">integer</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;b)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">(Can throw std::overflow_error if not enough memory to construct a new integer). <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a65df30415a5d2f91a72fb2c55d7cd33c">integer</a> (const T &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a6dfc86dfc539cfda1062ef1bc24aa526">integer</a> (const std::string &amp;str, size_t base=10)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructs a integer from a digits string (decimal by default). <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a1211c9298c3281815bc9b709439d031a">integer</a> (const <a class="el" href="classxint_1_1not__a__number.html">not_a_number</a> &amp;)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs an extended integer with the NotANumber value;. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">~integer</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">odd</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">even</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">hex_digits</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">operator=</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;c)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">operator+=</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">operator-=</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">operator*=</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">operator/=</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">operator%=</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">operator++</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">operator--</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a79624fb580bdb2ba19fe13223c801c25">operator++</a> (int)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a40ff1ffeda1df544b8bcd907f76d93cd">operator--</a> (int)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">operator&amp;=</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">operator|=</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">operator^=</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">operator&lt;&lt;</a> (size_t shift) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">operator&gt;&gt;</a> (size_t shift) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">operator&lt;&lt;=</a> (size_t shift)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">operator&gt;&gt;=</a> (size_t shift)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#aff99f7868567ae0dd4666a985873a5a7">_get_data</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a> (size_t index) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">_set_negative</a> (bool negative)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a> () const </td></tr>
+<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">zero</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Extended integer holding zero. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">one</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Extended integer holding one. <br/></td></tr>
+<tr><td colspan="2"><h2>Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a> (<a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> init=0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#adaaff26c817fec0bef3cf903773e3f7b">_init</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;c)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#aed205d80e7b1a495a2d67abde5c406e8">_init</a> (boost::uintmax_t n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a> ()</td></tr>
+<tr><td colspan="2"><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Raw data representing an extended integer. <br/></td></tr>
+<tr><td colspan="2"><h2>Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classxint_1_1integer.html">integer</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a> = 0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classxint_1_1integer.html">integer</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a> = 0</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00093">93</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ad32b3b13167c61e48aede083a3e1c7a8"></a><!-- doxytag: member="xint::integer::integer" ref="ad32b3b13167c61e48aede083a3e1c7a8" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xint::integer::integer </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The extended integer class. </p>
+<p>Constructs a default integer, value zero. (Can throw std::overflow_error if not enough memory to construct a new integer). </p>
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00022">22</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00043">_init()</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00205">one()</a>, and <a class="el" href="integer_8cpp_source.html#l00200">zero()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa123fb47accd778f87e2866c9d986bb7"></a><!-- doxytag: member="xint::integer::integer" ref="aa123fb47accd778f87e2866c9d986bb7" args="(const integer &amp;b)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xint::integer::integer </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>b</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>(Can throw std::overflow_error if not enough memory to construct a new integer). </p>
+<p>Copy constructs a integer from another integer. </p>
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00026">26</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00043">_init()</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="integer_8cpp_source.html#l00122">nan()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a65df30415a5d2f91a72fb2c55d7cd33c"></a><!-- doxytag: member="xint::integer::integer" ref="a65df30415a5d2f91a72fb2c55d7cd33c" args="(const T &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">xint::integer::integer </td>
+ <td>(</td>
+ <td class="paramtype">const T &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00319">319</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00043">_init()</a>, <a class="el" href="integer_8cpp_source.html#l00101">_set_negative()</a>, and <a class="el" href="xint_8hpp_source.html#l00073">xint::detail::digit_mask</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6dfc86dfc539cfda1062ef1bc24aa526"></a><!-- doxytag: member="xint::integer::integer" ref="a6dfc86dfc539cfda1062ef1bc24aa526" args="(const std::string &amp;str, size_t base=10)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xint::integer::integer </td>
+ <td>(</td>
+ <td class="paramtype">const std::string &amp;&nbsp;</td>
+ <td class="paramname"> <em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>base</em> = <code>10</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [explicit]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Copy constructs a integer from a digits string (decimal by default). </p>
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00031">31</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00043">_init()</a>, and <a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">xint::from_string()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1211c9298c3281815bc9b709439d031a"></a><!-- doxytag: member="xint::integer::integer" ref="a1211c9298c3281815bc9b709439d031a" args="(const not_a_number &amp;)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xint::integer::integer </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1not__a__number.html">not_a_number</a> &amp;&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [explicit]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Constructs an extended integer with the NotANumber value;. </p>
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00035">35</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4f687cc90353b1c347448f1d94fa157e"></a><!-- doxytag: member="xint::integer::~integer" ref="a4f687cc90353b1c347448f1d94fa157e" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xint::integer::~integer </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00039">39</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00084">_detach()</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ab76e68e21fd5fd584d40ab09a6f7197d"></a><!-- doxytag: member="xint::integer::_attach" ref="ab76e68e21fd5fd584d40ab09a6f7197d" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::integer::_attach </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00080">80</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="xint__data__t_8hpp_source.html#l00059">xint::detail::data_t::attach()</a>, and <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00043">_init()</a>, <a class="el" href="integer_8cpp_source.html#l00088">_make_unique()</a>, and <a class="el" href="integer_8cpp_source.html#l00158">operator=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a53752a9fd32dc65cb8085da60a44e6b4"></a><!-- doxytag: member="xint::integer::_detach" ref="a53752a9fd32dc65cb8085da60a44e6b4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::integer::_detach </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00084">84</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00060">xint::detail::data_t::detach()</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00088">_make_unique()</a>, <a class="el" href="integer_8cpp_source.html#l00158">operator=()</a>, and <a class="el" href="integer_8cpp_source.html#l00039">~integer()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aff99f7868567ae0dd4666a985873a5a7"></a><!-- doxytag: member="xint::integer::_get_data" ref="aff99f7868567ae0dd4666a985873a5a7" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a>* xint::integer::_get_data </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00142">142</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae5578d7d5be17df3ecd3ddc5a852d0a0"></a><!-- doxytag: member="xint::integer::_get_data" ref="ae5578d7d5be17df3ecd3ddc5a852d0a0" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a>* xint::integer::_get_data </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p><dl class="return"><dt><b>Returns:</b></dt><dd>raw data representing an extended integer. </dd></dl>
+</p>
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00138">138</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a81ab47d2f92ec66ac1586b61d7fd8b60"></a><!-- doxytag: member="xint::integer::_get_digit" ref="a81ab47d2f92ec66ac1586b61d7fd8b60" args="(size_t index) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> xint::integer::_get_digit </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>index</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00210">210</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00042">xint::detail::data_t::digits</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00110">even()</a>, <a class="el" href="integer_8cpp_source.html#l00105">odd()</a>, <a class="el" href="integer_8cpp_source.html#l00115">sign()</a>, and <a class="el" href="xint_8hpp_source.html#l00343">xint::to()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5723a74b98da2d5ed9452a7ec10c0ca2"></a><!-- doxytag: member="xint::integer::_get_length" ref="a5723a74b98da2d5ed9452a7ec10c0ca2" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">size_t xint::integer::_get_length </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00214">214</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00041">xint::detail::data_t::mLength</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00115">sign()</a>, and <a class="el" href="xint_8hpp_source.html#l00343">xint::to()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aed205d80e7b1a495a2d67abde5c406e8"></a><!-- doxytag: member="xint::integer::_init" ref="aed205d80e7b1a495a2d67abde5c406e8" args="(boost::uintmax_t n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::integer::_init </td>
+ <td>(</td>
+ <td class="paramtype">boost::uintmax_t&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00061">61</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00080">_attach()</a>, <a class="el" href="data__t_8cpp_source.html#l00085">xint::detail::data_t::alloc()</a>, <a class="el" href="xint_8hpp_source.html#l00069">xint::detail::bits_per_digit</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, <a class="el" href="xint_8hpp_source.html#l00073">xint::detail::digit_mask</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">xint::detail::data_t::digits</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">xint::detail::data_t::skipLeadingZeros()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adaaff26c817fec0bef3cf903773e3f7b"></a><!-- doxytag: member="xint::integer::_init" ref="adaaff26c817fec0bef3cf903773e3f7b" args="(const integer &amp;c)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::integer::_init </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>c</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00052">52</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00080">_attach()</a>, and <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aff4a9e0584c9f920a6cdfdc717bcda0d"></a><!-- doxytag: member="xint::integer::_init" ref="aff4a9e0584c9f920a6cdfdc717bcda0d" args="(detail::digit_t init=0)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::integer::_init </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a>&nbsp;</td>
+ <td class="paramname"> <em>init</em> = <code>0</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00043">43</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00080">_attach()</a>, and <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00022">integer()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adc5c7b5bc30c0cfa30d62610e0bc0366"></a><!-- doxytag: member="xint::integer::_make_unique" ref="adc5c7b5bc30c0cfa30d62610e0bc0366" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::integer::_make_unique </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00088">88</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00080">_attach()</a>, <a class="el" href="integer_8cpp_source.html#l00084">_detach()</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00048">xint::detail::data_t::mCopies</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00132">operator+=()</a>, <a class="el" href="integer_8cpp_source.html#l00146">operator-=()</a>, <a class="el" href="integer_8cpp_source.html#l00184">operator&lt;&lt;=()</a>, and <a class="el" href="integer_8cpp_source.html#l00192">operator&gt;&gt;=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab2f4df250e1030c518180b7e832c5ebd"></a><!-- doxytag: member="xint::integer::_set_negative" ref="ab2f4df250e1030c518180b7e832c5ebd" args="(bool negative)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::integer::_set_negative </td>
+ <td>(</td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>negative</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00101">101</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">xint::negate()</a>, and <a class="el" href="integer_8cpp_source.html#l00115">sign()</a>.</p>
+
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00319">integer()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad5935c358b92f15064b1f910613f7a3e"></a><!-- doxytag: member="xint::integer::_throw_if_nan" ref="ad5935c358b92f15064b1f910613f7a3e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::integer::_throw_if_nan </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00218">218</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00122">nan()</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00110">even()</a>, <a class="el" href="integer_8cpp_source.html#l00126">hex_digits()</a>, <a class="el" href="integer_8cpp_source.html#l00105">odd()</a>, <a class="el" href="integer_8cpp_source.html#l00115">sign()</a>, and <a class="el" href="xint_8hpp_source.html#l00343">xint::to()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2ffb63eee276c65d8ea8b365adeb1ee2"></a><!-- doxytag: member="xint::integer::even" ref="a2ffb63eee276c65d8ea8b365adeb1ee2" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::integer::even </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<dl class="return"><dt><b>Returns:</b></dt><dd>true if extended integer is even. </dd></dl>
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00110">110</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00210">_get_digit()</a>, and <a class="el" href="integer_8cpp_source.html#l00218">_throw_if_nan()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a25f066e30e4548bc22e0e9d75b809955"></a><!-- doxytag: member="xint::integer::hex_digits" ref="a25f066e30e4548bc22e0e9d75b809955" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">size_t xint::integer::hex_digits </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<dl class="return"><dt><b>Returns:</b></dt><dd>the number of hex digits to show the integer. </dd></dl>
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00126">126</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00218">_throw_if_nan()</a>, and <a class="el" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">xint::log2()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aece07e741fa78e1329373ff10d44e264"></a><!-- doxytag: member="xint::integer::nan" ref="aece07e741fa78e1329373ff10d44e264" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::integer::nan </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<dl class="return"><dt><b>Returns:</b></dt><dd>true if extended integer is Not-a-Number. </dd></dl>
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00122">122</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00218">_throw_if_nan()</a>, <a class="el" href="integer_8cpp_source.html#l00026">integer()</a>, and <a class="el" href="xint_8hpp_source.html#l00381">xint::operator&lt;&lt;()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af2d420708a02755a8851140928e50e23"></a><!-- doxytag: member="xint::integer::odd" ref="af2d420708a02755a8851140928e50e23" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::integer::odd </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<dl class="return"><dt><b>Returns:</b></dt><dd>true if extended integer is odd. </dd></dl>
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00105">105</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00210">_get_digit()</a>, and <a class="el" href="integer_8cpp_source.html#l00218">_throw_if_nan()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9237b21f4162146c7b5749b169c081b8"></a><!-- doxytag: member="xint::integer::one" ref="a9237b21f4162146c7b5749b169c081b8" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::one </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Extended integer holding one. </p>
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00205">205</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00157">cOne</a>, and <a class="el" href="integer_8cpp_source.html#l00022">integer()</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00173">operator++()</a>, and <a class="el" href="integer_8cpp_source.html#l00174">operator--()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abee8874a961c2bb15a288494e096f36b"></a><!-- doxytag: member="xint::integer::operator%=" ref="abee8874a961c2bb15a288494e096f36b" args="(const integer &amp;b)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::operator%= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>b</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00171">171</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">xint::mod()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0d4c730e3d45d3fa2895b706b202d860"></a><!-- doxytag: member="xint::integer::operator&amp;=" ref="a0d4c730e3d45d3fa2895b706b202d860" args="(const integer &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::operator&amp;= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00180">180</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">xint::bitwise_and()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a531cdc9ce5667c4553fd1e4dac151b51"></a><!-- doxytag: member="xint::integer::operator*=" ref="a531cdc9ce5667c4553fd1e4dac151b51" args="(const integer &amp;b)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::operator*= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>b</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00169">169</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">xint::multiply()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a79624fb580bdb2ba19fe13223c801c25"></a><!-- doxytag: member="xint::integer::operator++" ref="a79624fb580bdb2ba19fe13223c801c25" args="(int)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::integer::operator++ </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00175">175</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00205">one()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a60cd241278892070d14a0d57e45c9264"></a><!-- doxytag: member="xint::integer::operator++" ref="a60cd241278892070d14a0d57e45c9264" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::operator++ </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00173">173</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00205">one()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa0259f75f66b97b68310cfed2c0ecc7b"></a><!-- doxytag: member="xint::integer::operator+=" ref="aa0259f75f66b97b68310cfed2c0ecc7b" args="(const integer &amp;b)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::operator+= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>b</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00132">132</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00088">_make_unique()</a>, <a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint::add()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">xint::detail::data_t::add()</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">xint::detail::data_t::mLength</a>, and <a class="el" href="integer_8cpp_source.html#l00115">sign()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a40ff1ffeda1df544b8bcd907f76d93cd"></a><!-- doxytag: member="xint::integer::operator&#45;&#45;" ref="a40ff1ffeda1df544b8bcd907f76d93cd" args="(int)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::integer::operator-- </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00176">176</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00205">one()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a48452b868e2279e202039c9918f0dcf3"></a><!-- doxytag: member="xint::integer::operator&#45;&#45;" ref="a48452b868e2279e202039c9918f0dcf3" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::operator-- </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00174">174</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00205">one()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2ce7f54adccb88836d1474fc67fa9a62"></a><!-- doxytag: member="xint::integer::operator&#45;=" ref="a2ce7f54adccb88836d1474fc67fa9a62" args="(const integer &amp;b)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::operator-= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>b</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00146">146</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00088">_make_unique()</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, <a class="el" href="integer_8cpp_source.html#l00115">sign()</a>, <a class="el" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint::subtract()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">xint::detail::data_t::subtract()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3366a33f7ca5ad3285515e260d0dce66"></a><!-- doxytag: member="xint::integer::operator/=" ref="a3366a33f7ca5ad3285515e260d0dce66" args="(const integer &amp;b)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::operator/= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>b</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00170">170</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">xint::divide()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3733741d7e1c8ba1c1f490c8949a308f"></a><!-- doxytag: member="xint::integer::operator&lt;&lt;" ref="a3733741d7e1c8ba1c1f490c8949a308f" args="(size_t shift) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::integer::operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>shift</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00178">178</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">xint::shift_left()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a14545146f86ed797e97758d8aea32ecd"></a><!-- doxytag: member="xint::integer::operator&lt;&lt;=" ref="a14545146f86ed797e97758d8aea32ecd" args="(size_t shift)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::operator&lt;&lt;= </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>shift</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00184">184</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00088">_make_unique()</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="data__t_8cpp_source.html#l00251">xint::detail::data_t::shift_left()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abfa13a313f2782885bbbfa9a5f4a22c2"></a><!-- doxytag: member="xint::integer::operator=" ref="abfa13a313f2782885bbbfa9a5f4a22c2" args="(const integer &amp;c)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::operator= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>c</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00158">158</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00080">_attach()</a>, <a class="el" href="integer_8cpp_source.html#l00084">_detach()</a>, and <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5cbc6986de4ca89b49162736f8750986"></a><!-- doxytag: member="xint::integer::operator&gt;&gt;" ref="a5cbc6986de4ca89b49162736f8750986" args="(size_t shift) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::integer::operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>shift</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00179">179</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">xint::shift_right()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa0151e58a97bc1801221907d68582ec2"></a><!-- doxytag: member="xint::integer::operator&gt;&gt;=" ref="aa0151e58a97bc1801221907d68582ec2" args="(size_t shift)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::operator&gt;&gt;= </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>shift</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00192">192</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00088">_make_unique()</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="data__t_8cpp_source.html#l00279">xint::detail::data_t::shift_right()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afc13b5ae9c6f28ef5e75777976aeb56d"></a><!-- doxytag: member="xint::integer::operator^=" ref="afc13b5ae9c6f28ef5e75777976aeb56d" args="(const integer &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::operator^= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00182">182</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">xint::bitwise_xor()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1af418341e64a317b4cc41fcddaa849f"></a><!-- doxytag: member="xint::integer::operator|=" ref="a1af418341e64a317b4cc41fcddaa849f" args="(const integer &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::operator|= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00181">181</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">xint::bitwise_or()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5d84398ce89b376f695ccded2d20c8c2"></a><!-- doxytag: member="xint::integer::sign" ref="a5d84398ce89b376f695ccded2d20c8c2" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int xint::integer::sign </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<dl class="return"><dt><b>Returns:</b></dt><dd>-1 if extended integer is &lt; 0. </dd></dl>
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00115">115</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00210">_get_digit()</a>, <a class="el" href="integer_8cpp_source.html#l00214">_get_length()</a>, <a class="el" href="integer_8cpp_source.html#l00218">_throw_if_nan()</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00049">xint::detail::data_t::mIsNegative</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00101">_set_negative()</a>, <a class="el" href="compare_8cpp_source.html#l00054">operator!()</a>, <a class="el" href="integer_8cpp_source.html#l00132">operator+=()</a>, <a class="el" href="integer_8cpp_source.html#l00146">operator-=()</a>, <a class="el" href="xint_8hpp_source.html#l00381">xint::operator&lt;&lt;()</a>, and <a class="el" href="xint_8hpp_source.html#l00343">xint::to()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a64a0f99de7c33239237cb59d8464f3d2"></a><!-- doxytag: member="xint::integer::zero" ref="a64a0f99de7c33239237cb59d8464f3d2" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="classxint_1_1integer.html">integer</a> &amp; xint::integer::zero </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Extended integer holding zero. </p>
+
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00200">200</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00156">cZero</a>, and <a class="el" href="integer_8cpp_source.html#l00022">integer()</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a99deec6bc6eae551f358e4699075646a"></a><!-- doxytag: member="xint::integer::cOne" ref="a99deec6bc6eae551f358e4699075646a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="classxint_1_1integer.html">integer</a> * <a class="el" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">xint::integer::cOne</a> = 0<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00157">157</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00205">one()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4903bda4b989056ee0c980aba7d07e06"></a><!-- doxytag: member="xint::integer::cZero" ref="a4903bda4b989056ee0c980aba7d07e06" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="classxint_1_1integer.html">integer</a> * <a class="el" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">xint::integer::cZero</a> = 0<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00156">156</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00200">zero()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a83a10805b1c61ed4c7b7b525a9b6b450"></a><!-- doxytag: member="xint::integer::data" ref="a83a10805b1c61ed4c7b7b525a9b6b450" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a>* <a class="el" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">xint::integer::data</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Raw data representing an extended integer. </p>
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00158">158</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00080">_attach()</a>, <a class="el" href="integer_8cpp_source.html#l00084">_detach()</a>, <a class="el" href="xint_8hpp_source.html#l00138">_get_data()</a>, <a class="el" href="integer_8cpp_source.html#l00210">_get_digit()</a>, <a class="el" href="integer_8cpp_source.html#l00214">_get_length()</a>, <a class="el" href="integer_8cpp_source.html#l00043">_init()</a>, <a class="el" href="integer_8cpp_source.html#l00088">_make_unique()</a>, <a class="el" href="integer_8cpp_source.html#l00026">integer()</a>, <a class="el" href="integer_8cpp_source.html#l00122">nan()</a>, <a class="el" href="integer_8cpp_source.html#l00132">operator+=()</a>, <a class="el" href="integer_8cpp_source.html#l00146">operator-=()</a>, <a class="el" href="integer_8cpp_source.html#l00184">operator&lt;&lt;=()</a>, <a class="el" href="integer_8cpp_source.html#l00158">operator=()</a>, <a class="el" href="integer_8cpp_source.html#l00192">operator&gt;&gt;=()</a>, and <a class="el" hr
ef="integer_8cpp_source.html#l00115">sign()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint_8hpp_source.html">xint.hpp</a></li>
+<li>I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="integer_8cpp_source.html">integer.cpp</a></li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__base-members.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__base-members.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,90 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::invalid_base Member List</h1>This is the complete list of members for <a class="el" href="classxint_1_1invalid__base.html">xint::invalid_base</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1invalid__base.html#a16a577d5584652ca358450cbb55b5d55">invalid_base</a>(const std::string &amp;what=&quot;invalid base&quot;)</td><td><a class="el" href="classxint_1_1invalid__base.html">xint::invalid_base</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__base.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__base.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,125 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath"><a class="el" href="namespacexint.html">xint</a>::<a class="el" href="classxint_1_1invalid__base.html">invalid_base</a>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::invalid_base Class Reference</h1><!-- doxytag: class="xint::invalid_base" -->
+<p><code>#include &lt;<a class="el" href="xint_8hpp_source.html">xint.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__base.html#a16a577d5584652ca358450cbb55b5d55">invalid_base</a> (const std::string &amp;what=&quot;invalid base&quot;)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00279">279</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a16a577d5584652ca358450cbb55b5d55"></a><!-- doxytag: member="xint::invalid_base::invalid_base" ref="a16a577d5584652ca358450cbb55b5d55" args="(const std::string &amp;what=&quot;invalid base&quot;)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xint::invalid_base::invalid_base </td>
+ <td>(</td>
+ <td class="paramtype">const std::string &amp;&nbsp;</td>
+ <td class="paramname"> <em>what</em> = <code>&quot;invalid&nbsp;base&quot;</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00281">281</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint_8hpp_source.html">xint.hpp</a></li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__digit-members.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__digit-members.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,90 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::invalid_digit Member List</h1>This is the complete list of members for <a class="el" href="classxint_1_1invalid__digit.html">xint::invalid_digit</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1invalid__digit.html#a832283e75569bd7e9d09f38ebae87a27">invalid_digit</a>(const std::string &amp;what=&quot;invalid digit&quot;)</td><td><a class="el" href="classxint_1_1invalid__digit.html">xint::invalid_digit</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__digit.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__digit.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,125 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath"><a class="el" href="namespacexint.html">xint</a>::<a class="el" href="classxint_1_1invalid__digit.html">invalid_digit</a>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::invalid_digit Class Reference</h1><!-- doxytag: class="xint::invalid_digit" -->
+<p><code>#include &lt;<a class="el" href="xint_8hpp_source.html">xint.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__digit.html#a832283e75569bd7e9d09f38ebae87a27">invalid_digit</a> (const std::string &amp;what=&quot;invalid digit&quot;)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00285">285</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a832283e75569bd7e9d09f38ebae87a27"></a><!-- doxytag: member="xint::invalid_digit::invalid_digit" ref="a832283e75569bd7e9d09f38ebae87a27" args="(const std::string &amp;what=&quot;invalid digit&quot;)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xint::invalid_digit::invalid_digit </td>
+ <td>(</td>
+ <td class="paramtype">const std::string &amp;&nbsp;</td>
+ <td class="paramname"> <em>what</em> = <code>&quot;invalid&nbsp;digit&quot;</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00287">287</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint_8hpp_source.html">xint.hpp</a></li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__modulus-members.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__modulus-members.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,90 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::invalid_modulus Member List</h1>This is the complete list of members for <a class="el" href="classxint_1_1invalid__modulus.html">xint::invalid_modulus</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1invalid__modulus.html#a691026e352d38fc5120c12d6d134e854">invalid_modulus</a>(const std::string &amp;what=&quot;invalid modulus&quot;)</td><td><a class="el" href="classxint_1_1invalid__modulus.html">xint::invalid_modulus</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__modulus.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__modulus.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,125 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath"><a class="el" href="namespacexint.html">xint</a>::<a class="el" href="classxint_1_1invalid__modulus.html">invalid_modulus</a>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::invalid_modulus Class Reference</h1><!-- doxytag: class="xint::invalid_modulus" -->
+<p><code>#include &lt;<a class="el" href="xint_8hpp_source.html">xint.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__modulus.html#a691026e352d38fc5120c12d6d134e854">invalid_modulus</a> (const std::string &amp;what=&quot;invalid modulus&quot;)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00291">291</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a691026e352d38fc5120c12d6d134e854"></a><!-- doxytag: member="xint::invalid_modulus::invalid_modulus" ref="a691026e352d38fc5120c12d6d134e854" args="(const std::string &amp;what=&quot;invalid modulus&quot;)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xint::invalid_modulus::invalid_modulus </td>
+ <td>(</td>
+ <td class="paramtype">const std::string &amp;&nbsp;</td>
+ <td class="paramname"> <em>what</em> = <code>&quot;invalid&nbsp;modulus&quot;</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00293">293</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint_8hpp_source.html">xint.hpp</a></li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1not__a__number-members.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1not__a__number-members.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,90 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::not_a_number Member List</h1>This is the complete list of members for <a class="el" href="classxint_1_1not__a__number.html">xint::not_a_number</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1not__a__number.html#a4ecc5bcc06a5d660176d51fc63c996cd">not_a_number</a>(const std::string &amp;what=&quot;attempted to use a Not-a-Number&quot;)</td><td><a class="el" href="classxint_1_1not__a__number.html">xint::not_a_number</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1not__a__number.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1not__a__number.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,125 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath"><a class="el" href="namespacexint.html">xint</a>::<a class="el" href="classxint_1_1not__a__number.html">not_a_number</a>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::not_a_number Class Reference</h1><!-- doxytag: class="xint::not_a_number" -->
+<p><code>#include &lt;<a class="el" href="xint_8hpp_source.html">xint.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1not__a__number.html#a4ecc5bcc06a5d660176d51fc63c996cd">not_a_number</a> (const std::string &amp;what=&quot;attempted to use a Not-a-Number&quot;)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00309">309</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a4ecc5bcc06a5d660176d51fc63c996cd"></a><!-- doxytag: member="xint::not_a_number::not_a_number" ref="a4ecc5bcc06a5d660176d51fc63c996cd" args="(const std::string &amp;what=&quot;attempted to use a Not&#45;a&#45;Number&quot;)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xint::not_a_number::not_a_number </td>
+ <td>(</td>
+ <td class="paramtype">const std::string &amp;&nbsp;</td>
+ <td class="paramname"> <em>what</em> = <code>&quot;attempted&nbsp;to&nbsp;use&nbsp;a&nbsp;Not-a-Number&quot;</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00311">311</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint_8hpp_source.html">xint.hpp</a></li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1too__big-members.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1too__big-members.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,90 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::too_big Member List</h1>This is the complete list of members for <a class="el" href="classxint_1_1too__big.html">xint::too_big</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classxint_1_1too__big.html#a37a714ef8bfef8a1cf6cfa08a5db1ccc">too_big</a>(const std::string &amp;what=&quot;value out of range for requested &quot;&quot;conversion&quot;)</td><td><a class="el" href="classxint_1_1too__big.html">xint::too_big</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1too__big.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1too__big.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,125 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath"><a class="el" href="namespacexint.html">xint</a>::<a class="el" href="classxint_1_1too__big.html">too_big</a>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::too_big Class Reference</h1><!-- doxytag: class="xint::too_big" -->
+<p><code>#include &lt;<a class="el" href="xint_8hpp_source.html">xint.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1too__big.html#a37a714ef8bfef8a1cf6cfa08a5db1ccc">too_big</a> (const std::string &amp;what=&quot;value out of range for requested &quot;&quot;conversion&quot;)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00303">303</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a37a714ef8bfef8a1cf6cfa08a5db1ccc"></a><!-- doxytag: member="xint::too_big::too_big" ref="a37a714ef8bfef8a1cf6cfa08a5db1ccc" args="(const std::string &amp;what=&quot;value out of range for requested &quot;&quot;conversion&quot;)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xint::too_big::too_big </td>
+ <td>(</td>
+ <td class="paramtype">const std::string &amp;&nbsp;</td>
+ <td class="paramname"> <em>what</em> = <code>&quot;value&nbsp;out&nbsp;of&nbsp;range&nbsp;for&nbsp;requested&nbsp;&quot;&nbsp;&quot;conversion&quot;</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00305">305</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint_8hpp_source.html">xint.hpp</a></li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/compare_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/compare_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,318 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/compare.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+<code>#include &quot;../xint_data_t.hpp&quot;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a> (const integer &amp;b1, const integer &amp;b2, bool ignoresign)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="compare_8cpp.html#ac7523d81be85d97950c95f10c17a8c9d">operator!</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num1)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="compare_8cpp.html#a8afed82c679c5a4edee2108ddbf24e76">operator==</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="compare_8cpp.html#ae28b8d9fc3781805e9bb9cfaf0dc01df">operator!=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="compare_8cpp.html#a13bf860274cbfba7049ee1109ef79ece">operator&lt;</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="compare_8cpp.html#aafe4265378fbdfe8382de5624439cf86">operator&gt;</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="compare_8cpp.html#aab167dd151d36a75704e98361c845e67">operator&lt;=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="compare_8cpp.html#a3e59818919966e38b68c5af625acf65e">operator&gt;=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num2)</td></tr>
+</table>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ac7523d81be85d97950c95f10c17a8c9d"></a><!-- doxytag: member="compare.cpp::operator!" ref="ac7523d81be85d97950c95f10c17a8c9d" args="(const xint::integer &amp;num1)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool operator! </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num1</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00054">54</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00115">xint::integer::sign()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae28b8d9fc3781805e9bb9cfaf0dc01df"></a><!-- doxytag: member="compare.cpp::operator!=" ref="ae28b8d9fc3781805e9bb9cfaf0dc01df" args="(const xint::integer &amp;num1, const xint::integer &amp;num2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool operator!= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00056">56</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a13bf860274cbfba7049ee1109ef79ece"></a><!-- doxytag: member="compare.cpp::operator&lt;" ref="a13bf860274cbfba7049ee1109ef79ece" args="(const xint::integer &amp;num1, const xint::integer &amp;num2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool operator&lt; </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00057">57</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aab167dd151d36a75704e98361c845e67"></a><!-- doxytag: member="compare.cpp::operator&lt;=" ref="aab167dd151d36a75704e98361c845e67" args="(const xint::integer &amp;num1, const xint::integer &amp;num2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool operator&lt;= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00059">59</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8afed82c679c5a4edee2108ddbf24e76"></a><!-- doxytag: member="compare.cpp::operator==" ref="a8afed82c679c5a4edee2108ddbf24e76" args="(const xint::integer &amp;num1, const xint::integer &amp;num2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool operator== </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00055">55</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aafe4265378fbdfe8382de5624439cf86"></a><!-- doxytag: member="compare.cpp::operator&gt;" ref="aafe4265378fbdfe8382de5624439cf86" args="(const xint::integer &amp;num1, const xint::integer &amp;num2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool operator&gt; </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00058">58</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3e59818919966e38b68c5af625acf65e"></a><!-- doxytag: member="compare.cpp::operator&gt;=" ref="a3e59818919966e38b68c5af625acf65e" args="(const xint::integer &amp;num1, const xint::integer &amp;num2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool operator&gt;= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00060">60</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/compare_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/compare_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,146 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/compare.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the definition for the compare function, and the</span>
+<a name="l00012"></a>00012 <span class="comment"> comparison operators that use it.</span>
+<a name="l00013"></a>00013 <span class="comment">*/</span>
+<a name="l00014"></a>00014
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include &quot;../xint_data_t.hpp&quot;</span>
+<a name="l00017"></a>00017
+<a name="l00018"></a>00018 <span class="keyword">namespace </span>xint {
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020 <span class="keywordtype">int</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">compare</a>(<span class="keyword">const</span> integer &amp;b1, <span class="keyword">const</span> integer &amp;b2, <span class="keywordtype">bool</span> ignoresign) {
+<a name="l00021"></a>00021 b1._throw_if_nan();
+<a name="l00022"></a>00022 b2._throw_if_nan();
+<a name="l00023"></a>00023
+<a name="l00024"></a>00024 <span class="keywordflow">if</span> (!ignoresign) {
+<a name="l00025"></a>00025 <span class="keywordtype">int</span> sign1=b1.sign(), sign2=b2.sign();
+<a name="l00026"></a>00026 <span class="keywordflow">if</span> (sign1==0 &amp;&amp; sign2==0) <span class="keywordflow">return</span> 0;
+<a name="l00027"></a>00027 <span class="keywordflow">if</span> (sign1==0) <span class="keywordflow">return</span> -sign2;
+<a name="l00028"></a>00028 <span class="keywordflow">if</span> (sign2==0) <span class="keywordflow">return</span> sign1;
+<a name="l00029"></a>00029
+<a name="l00030"></a>00030 <span class="keywordflow">if</span> (sign1 != sign2) <span class="keywordflow">return</span> sign1;
+<a name="l00031"></a>00031 <span class="keywordflow">if</span> (sign1 &lt; 0) <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">compare</a>(-b2, -b1, ignoresign);
+<a name="l00032"></a>00032 }
+<a name="l00033"></a>00033
+<a name="l00034"></a>00034 <span class="keyword">const</span> detail::data_t *b1data=b1._get_data();
+<a name="l00035"></a>00035 <span class="keyword">const</span> detail::data_t *b2data=b2._get_data();
+<a name="l00036"></a>00036
+<a name="l00037"></a>00037 <span class="keywordtype">int</span> answer=0;
+<a name="l00038"></a>00038 <span class="keywordflow">if</span> (b1data-&gt;mLength != b2data-&gt;mLength) {
+<a name="l00039"></a>00039 answer=((b1data-&gt;mLength &lt; b2data-&gt;mLength) ? -1 : 1);
+<a name="l00040"></a>00040 } <span class="keywordflow">else</span> {
+<a name="l00041"></a>00041 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = b1data-&gt;mLength - 1; x &gt;= 0; --x) {
+<a name="l00042"></a>00042 <span class="keywordflow">if</span> (b1data-&gt;digits[x] != b2data-&gt;digits[x]) {
+<a name="l00043"></a>00043 answer=((b1data-&gt;digits[x] &lt; b2data-&gt;digits[x]) ? -1 : 1);
+<a name="l00044"></a>00044 <span class="keywordflow">break</span>;
+<a name="l00045"></a>00045 }
+<a name="l00046"></a>00046 }
+<a name="l00047"></a>00047 }
+<a name="l00048"></a>00048
+<a name="l00049"></a>00049 <span class="keywordflow">return</span> answer;
+<a name="l00050"></a>00050 }
+<a name="l00051"></a>00051
+<a name="l00052"></a>00052 } <span class="comment">// namespace xint</span>
+<a name="l00053"></a>00053
+<a name="l00054"></a><a class="code" href="xint_8hpp.html#aab9cb2021cb63480542f266a67c50314">00054</a> <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#ac7523d81be85d97950c95f10c17a8c9d">operator!</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a> &amp;num1) { <span class="keywordflow">return</span> num1.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>()==0; }
+<a name="l00055"></a><a class="code" href="xint_8hpp.html#a255c817c8569ac9365878a9476bfe3b3">00055</a> <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#a8afed82c679c5a4edee2108ddbf24e76">operator==</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a> &amp;num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a> &amp;num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)==0; }
+<a name="l00056"></a><a class="code" href="xint_8hpp.html#a7f95e1c65d52023897d57fac225ba297">00056</a> <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#ae28b8d9fc3781805e9bb9cfaf0dc01df">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)!=0; }
+<a name="l00057"></a><a class="code" href="xint_8hpp.html#a2271282006f914e5442f53508f6c5355">00057</a> <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#a13bf860274cbfba7049ee1109ef79ece">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)&lt;0; }
+<a name="l00058"></a><a class="code" href="xint_8hpp.html#a328006b6ca161372a3cd91ca199a56df">00058</a> <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#aafe4265378fbdfe8382de5624439cf86">operator&gt;</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)&gt;0; }
+<a name="l00059"></a><a class="code" href="xint_8hpp.html#aa6909705d9662396b60b7dca7193895c">00059</a> <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#aab167dd151d36a75704e98361c845e67">operator&lt;=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)&lt;=0; }
+<a name="l00060"></a><a class="code" href="xint_8hpp.html#a9b081858436ec650e95e857faff0cf4e">00060</a> <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#a3e59818919966e38b68c5af625acf65e">operator&gt;=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)&gt;=0; }
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/convert_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/convert_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,108 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/convert.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+<code>#include &quot;../xint_data_t.hpp&quot;</code><br/>
+<code>#include &lt;vector&gt;</code><br/>
+<code>#include &lt;algorithm&gt;</code><br/>
+<code>#include &lt;sstream&gt;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">xint::to_string</a> (const integer &amp;n, size_t base, bool upperCase)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">xint::from_string</a> (const std::string &amp;str, size_t base)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">xint::from_binary</a> (const std::string &amp;str)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab8f33201a251e3e118dc82f214e22aeb">xint::to_binary</a> (const integer &amp;n)</td></tr>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/convert_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/convert_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,278 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/convert.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the conversion functions. Note that the to&lt;T&gt; function is</span>
+<a name="l00012"></a>00012 <span class="comment"> not here, because it&#39;s a template function and must be defined in a header</span>
+<a name="l00013"></a>00013 <span class="comment"> file.</span>
+<a name="l00014"></a>00014 <span class="comment"></span>
+<a name="l00015"></a>00015 <span class="comment"> TODO: the to_string function could be made more efficient by using only</span>
+<a name="l00016"></a>00016 <span class="comment"> doubledigit_t-sized pieces of the integer at a time, and dividing the whole</span>
+<a name="l00017"></a>00017 <span class="comment"> thing by the total of the divisions done to get the digits. Same with the</span>
+<a name="l00018"></a>00018 <span class="comment"> from_string function.</span>
+<a name="l00019"></a>00019 <span class="comment">*/</span>
+<a name="l00020"></a>00020
+<a name="l00021"></a>00021 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include &quot;../xint_data_t.hpp&quot;</span>
+<a name="l00023"></a>00023
+<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;algorithm&gt;</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;sstream&gt;</span>
+<a name="l00027"></a>00027
+<a name="l00028"></a>00028 <span class="keyword">namespace </span>xint {
+<a name="l00029"></a>00029
+<a name="l00030"></a>00030 <span class="keyword">using namespace </span>detail;
+<a name="l00031"></a>00031
+<a name="l00032"></a>00032 <span class="keyword">namespace </span>{
+<a name="l00033"></a>00033
+<a name="l00034"></a>00034 <span class="keywordtype">char</span> nToChar(<span class="keywordtype">int</span> n, <span class="keywordtype">bool</span> upperCase) {
+<a name="l00035"></a>00035 <span class="keywordflow">if</span> (n &lt; 10) <span class="keywordflow">return</span> char(n+<span class="charliteral">&#39;0&#39;</span>);
+<a name="l00036"></a>00036 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (upperCase) <span class="keywordflow">return</span> char((n - 10) + <span class="charliteral">&#39;A&#39;</span>);
+<a name="l00037"></a>00037 <span class="keywordflow">else</span> <span class="keywordflow">return</span> char((n - 10) + <span class="charliteral">&#39;a&#39;</span>);
+<a name="l00038"></a>00038 }
+<a name="l00039"></a>00039
+<a name="l00040"></a>00040 } <span class="comment">// namespace</span>
+<a name="l00041"></a>00041
+<a name="l00042"></a>00042 std::string <a class="code" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">to_string</a>(<span class="keyword">const</span> integer&amp; n, <span class="keywordtype">size_t</span> base, <span class="keywordtype">bool</span> upperCase) {
+<a name="l00043"></a>00043 <span class="keywordflow">if</span> (n.nan()) <span class="keywordflow">return</span> <a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">detail::nan_text</a>;
+<a name="l00044"></a>00044 <span class="keywordflow">if</span> (base&lt;2 || base&gt;36) {
+<a name="l00045"></a>00045 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_base();
+<a name="l00046"></a>00046 <span class="keywordflow">else</span> <span class="keywordflow">return</span> std::string();
+<a name="l00047"></a>00047 }
+<a name="l00048"></a>00048
+<a name="l00049"></a>00049 <span class="keywordflow">if</span> (n.sign()==0) <span class="keywordflow">return</span> <span class="stringliteral">&quot;0&quot;</span>;
+<a name="l00050"></a>00050
+<a name="l00051"></a>00051 std::ostringstream out;
+<a name="l00052"></a>00052 <span class="keywordflow">if</span> (base==16) {
+<a name="l00053"></a>00053 <span class="comment">// Special no-division version, primarily for debugging division</span>
+<a name="l00054"></a>00054 <span class="keyword">const</span> data_t *ndata=n._get_data();
+<a name="l00055"></a>00055 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *firstDigit=ndata-&gt;digits,
+<a name="l00056"></a>00056 *lastDigit=firstDigit + ndata-&gt;mLength - 1;
+<a name="l00057"></a>00057
+<a name="l00058"></a>00058 <span class="keyword">const</span> <span class="keywordtype">int</span> bitsPerDigit=4;
+<a name="l00059"></a>00059 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> mask=(<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(1) &lt;&lt; bitsPerDigit)-1;
+<a name="l00060"></a>00060
+<a name="l00061"></a>00061 <span class="comment">// Suppress any leading zeros</span>
+<a name="l00062"></a>00062 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d=lastDigit;
+<a name="l00063"></a>00063 <span class="keywordtype">int</span> digitShift=(<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bitsPerDigit);
+<a name="l00064"></a>00064 <span class="keywordflow">while</span> (digitShift &gt;= 0 &amp;&amp; ((*d &gt;&gt; digitShift) &amp; mask) == 0)
+<a name="l00065"></a>00065 digitShift -= bitsPerDigit;
+<a name="l00066"></a>00066
+<a name="l00067"></a>00067 <span class="keywordflow">do</span> {
+<a name="l00068"></a>00068 <span class="keywordflow">while</span> (digitShift &gt;= 0) {
+<a name="l00069"></a>00069 out &lt;&lt; nToChar((*d &gt;&gt; digitShift) &amp; mask, upperCase);
+<a name="l00070"></a>00070 digitShift -= bitsPerDigit;
+<a name="l00071"></a>00071 }
+<a name="l00072"></a>00072
+<a name="l00073"></a>00073 digitShift=(<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bitsPerDigit);
+<a name="l00074"></a>00074 } <span class="keywordflow">while</span> (d-- != firstDigit);
+<a name="l00075"></a>00075
+<a name="l00076"></a>00076 std::string r(n.sign() &lt; 0 ? std::string(<span class="stringliteral">&quot;-&quot;</span>)+out.str() : out.str());
+<a name="l00077"></a>00077 <span class="keywordflow">return</span> r;
+<a name="l00078"></a>00078 } <span class="keywordflow">else</span> {
+<a name="l00079"></a>00079 <span class="keyword">const</span> integer <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>=base;
+<a name="l00080"></a>00080 std::pair&lt;integer, integer&gt; a=std::make_pair(n, <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>());
+<a name="l00081"></a>00081 a.first._set_negative(<span class="keyword">false</span>);
+<a name="l00082"></a>00082
+<a name="l00083"></a>00083 integer r;
+<a name="l00084"></a>00084 <span class="keywordflow">while</span> (a.first.sign()!=0) {
+<a name="l00085"></a>00085 a=<a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">divide_r</a>(a.first, shift);
+<a name="l00086"></a>00086 out &lt;&lt; nToChar(a.second._get_digit(0), upperCase);
+<a name="l00087"></a>00087 }
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 <span class="keywordflow">if</span> (n.sign() &lt; 0) out &lt;&lt; <span class="charliteral">&#39;-&#39;</span>;
+<a name="l00090"></a>00090
+<a name="l00091"></a>00091 std::string rval=out.str();
+<a name="l00092"></a>00092 std::reverse(rval.begin(), rval.end());
+<a name="l00093"></a>00093 <span class="keywordflow">return</span> rval;
+<a name="l00094"></a>00094 }
+<a name="l00095"></a>00095 }
+<a name="l00096"></a>00096
+<a name="l00097"></a>00097 integer <a class="code" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">from_string</a>(<span class="keyword">const</span> std::string&amp; str, <span class="keywordtype">size_t</span> base) {
+<a name="l00098"></a>00098 <span class="keywordflow">if</span> (str==<a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">detail::nan_text</a>) <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00099"></a>00099
+<a name="l00100"></a>00100 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">negate</a>=<span class="keyword">false</span>;
+<a name="l00101"></a>00101 <span class="keyword">const</span> <span class="keywordtype">char</span> *c=str.c_str();
+<a name="l00102"></a>00102 <span class="keywordflow">if</span> (*c==<span class="charliteral">&#39;+&#39;</span>) ++c;
+<a name="l00103"></a>00103 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c==<span class="charliteral">&#39;-&#39;</span>) { negate=<span class="keyword">true</span>; ++c; }
+<a name="l00104"></a>00104
+<a name="l00105"></a>00105 <span class="keywordflow">if</span> (base==<a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a>) {
+<a name="l00106"></a>00106 <span class="keywordflow">if</span> (*c==<span class="charliteral">&#39;0&#39;</span>) {
+<a name="l00107"></a>00107 ++c;
+<a name="l00108"></a>00108 <span class="keywordflow">if</span> (*c==<span class="charliteral">&#39;x&#39;</span> || *c==<span class="charliteral">&#39;X&#39;</span>) {
+<a name="l00109"></a>00109 ++c;
+<a name="l00110"></a>00110 base=16;
+<a name="l00111"></a>00111 } <span class="keywordflow">else</span> base=8;
+<a name="l00112"></a>00112 } <span class="keywordflow">else</span> base=10;
+<a name="l00113"></a>00113 }
+<a name="l00114"></a>00114
+<a name="l00115"></a>00115 <span class="keywordflow">if</span> (base&lt;2 || base&gt;36) {
+<a name="l00116"></a>00116 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_base();
+<a name="l00117"></a>00117 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00118"></a>00118 }
+<a name="l00119"></a>00119
+<a name="l00120"></a>00120 <span class="keywordflow">if</span> (*c==0) {
+<a name="l00121"></a>00121 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_digit(<span class="stringliteral">&quot;No valid digits&quot;</span>);
+<a name="l00122"></a>00122 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00123"></a>00123 }
+<a name="l00124"></a>00124
+<a name="l00125"></a>00125 <span class="keyword">const</span> integer <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>(base);
+<a name="l00126"></a>00126
+<a name="l00127"></a>00127 integer r;
+<a name="l00128"></a>00128 <span class="keywordflow">while</span> (*c) {
+<a name="l00129"></a>00129 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> digit;
+<a name="l00130"></a>00130 <span class="keywordflow">if</span> (*c&gt;=<span class="charliteral">&#39;0&#39;</span> &amp;&amp; *c&lt;=<span class="charliteral">&#39;9&#39;</span>) digit=*c-<span class="charliteral">&#39;0&#39;</span>;
+<a name="l00131"></a>00131 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c&gt;=<span class="charliteral">&#39;A&#39;</span> &amp;&amp; *c&lt;=<span class="charliteral">&#39;Z&#39;</span>) digit=*c-<span class="charliteral">&#39;A&#39;</span>+10;
+<a name="l00132"></a>00132 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c&gt;=<span class="charliteral">&#39;a&#39;</span> &amp;&amp; *c&lt;=<span class="charliteral">&#39;z&#39;</span>) digit=*c-<span class="charliteral">&#39;a&#39;</span>+10;
+<a name="l00133"></a>00133 <span class="keywordflow">else</span> {
+<a name="l00134"></a>00134 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_digit(<span class="stringliteral">&quot;encountered non-alphanumeric character in string&quot;</span>);
+<a name="l00135"></a>00135 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00136"></a>00136 }
+<a name="l00137"></a>00137
+<a name="l00138"></a>00138 <span class="keywordflow">if</span> (digit &gt;= base) {
+<a name="l00139"></a>00139 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_digit(<span class="stringliteral">&quot;encountered digit greater than base allows&quot;</span>);
+<a name="l00140"></a>00140 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00141"></a>00141 }
+<a name="l00142"></a>00142
+<a name="l00143"></a>00143 r = (r * shift) + digit;
+<a name="l00144"></a>00144 ++c;
+<a name="l00145"></a>00145 }
+<a name="l00146"></a>00146 r._set_negative(negate);
+<a name="l00147"></a>00147 <span class="keywordflow">return</span> r;
+<a name="l00148"></a>00148 }
+<a name="l00149"></a>00149
+<a name="l00150"></a>00150 integer <a class="code" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">from_binary</a>(<span class="keyword">const</span> std::string&amp; str) {
+<a name="l00151"></a>00151 <span class="keyword">const</span> <span class="keywordtype">size_t</span> bytesPerDigit=<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>);
+<a name="l00152"></a>00152 <span class="keyword">const</span> <span class="keywordtype">size_t</span> bitsPerByte=std::numeric_limits&lt;unsigned char&gt;::digits;
+<a name="l00153"></a>00153
+<a name="l00154"></a>00154 integer r;
+<a name="l00155"></a>00155 detail::data_t *rdata=r.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
+<a name="l00156"></a>00156 rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>((str.length() + bytesPerDigit - 1)/bytesPerDigit);
+<a name="l00157"></a>00157 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *p=rdata-&gt;digits;
+<a name="l00158"></a>00158
+<a name="l00159"></a>00159 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *s=(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)str.data(), *se=s+str.length();
+<a name="l00160"></a>00160 <span class="keywordflow">while</span> (s&lt;se) {
+<a name="l00161"></a>00161 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d=0;
+<a name="l00162"></a>00162 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i&lt;bytesPerDigit &amp;&amp; s&lt;se; ++i)
+<a name="l00163"></a>00163 d |= (<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(*s++) &lt;&lt; (i * bitsPerByte));
+<a name="l00164"></a>00164 *p++=d;
+<a name="l00165"></a>00165 }
+<a name="l00166"></a>00166 rdata-&gt;skipLeadingZeros();
+<a name="l00167"></a>00167 <span class="keywordflow">return</span> r;
+<a name="l00168"></a>00168 }
+<a name="l00169"></a>00169
+<a name="l00170"></a>00170 std::string <a class="code" href="namespacexint.html#ab8f33201a251e3e118dc82f214e22aeb">to_binary</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00171"></a>00171 n._throw_if_nan();
+<a name="l00172"></a>00172
+<a name="l00173"></a>00173 <span class="keyword">const</span> <span class="keywordtype">size_t</span> bytesPerDigit=<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>);
+<a name="l00174"></a>00174 <span class="keyword">const</span> <span class="keywordtype">size_t</span> bitsPerByte=std::numeric_limits&lt;unsigned char&gt;::digits;
+<a name="l00175"></a>00175 std::vector&lt;unsigned char&gt; temp;
+<a name="l00176"></a>00176 temp.reserve(n._get_length() * bytesPerDigit);
+<a name="l00177"></a>00177
+<a name="l00178"></a>00178 <span class="keyword">const</span> detail::data_t *ndata=n._get_data();
+<a name="l00179"></a>00179 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *p=ndata-&gt;digits, *pe=p+n._get_length();
+<a name="l00180"></a>00180 <span class="keywordflow">while</span> (p != pe) {
+<a name="l00181"></a>00181 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d(*p++);
+<a name="l00182"></a>00182 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i&lt;bytesPerDigit; ++i) {
+<a name="l00183"></a>00183 temp.push_back((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(d));
+<a name="l00184"></a>00184 d &gt;&gt;= bitsPerByte;
+<a name="l00185"></a>00185 }
+<a name="l00186"></a>00186 }
+<a name="l00187"></a>00187 <span class="keywordflow">while</span> (!temp.empty() &amp;&amp; temp.back()==0) temp.pop_back();
+<a name="l00188"></a>00188 <span class="keywordtype">char</span> *c=(<span class="keywordtype">char</span>*)&amp;temp[0];
+<a name="l00189"></a>00189 <span class="keywordflow">return</span> std::string(c, c+temp.size());
+<a name="l00190"></a>00190 }
+<a name="l00191"></a>00191
+<a name="l00192"></a>00192 } <span class="comment">// namespace xint</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/data__t_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/data__t_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,106 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/data_t.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+<code>#include &quot;../xint_data_t.hpp&quot;</code><br/>
+<code>#include &lt;cassert&gt;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html">xint::detail</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>implementation details, normal users should not need to use these. </p>
+<br/></td></tr>
+</p>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/data__t_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/data__t_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,398 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/data_t.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the definitions for data_t member functions.</span>
+<a name="l00012"></a>00012 <span class="comment">*/</span>
+<a name="l00013"></a>00013
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../xint_data_t.hpp&quot;</span>
+<a name="l00016"></a>00016
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;cassert&gt;</span>
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019 <span class="keyword">namespace </span>xint {
+<a name="l00020"></a><a class="code" href="namespacexint_1_1detail.html">00020</a> <span class="keyword">namespace </span>detail {
+<a name="l00021"></a>00021
+<a name="l00022"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">00022</a> <a class="code" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">data_t::data_t</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial1, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial2, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial3) {
+<a name="l00023"></a>00023 <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=1;
+<a name="l00024"></a>00024 <a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>=<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>;
+<a name="l00025"></a>00025 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>;
+<a name="l00026"></a>00026 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[0]=initial1;
+<a name="l00027"></a>00027 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[1]=initial2;
+<a name="l00028"></a>00028 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[2]=initial3;
+<a name="l00029"></a>00029 <a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>=0;
+<a name="l00030"></a>00030 <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>=<span class="keyword">false</span>;
+<a name="l00031"></a>00031 }
+<a name="l00032"></a>00032
+<a name="l00033"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#ae5afaa677468a9624ed3fb04318fd2a3">00033</a> <a class="code" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">data_t::data_t</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a> *c) {
+<a name="l00034"></a>00034 <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00035"></a>00035 <span class="keywordflow">if</span> (c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a> == c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>) {
+<a name="l00036"></a>00036 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>;
+<a name="l00037"></a>00037 <a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>=<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>;
+<a name="l00038"></a>00038 } <span class="keywordflow">else</span> {
+<a name="l00039"></a>00039 <span class="keywordflow">try</span> {
+<a name="l00040"></a>00040 <a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>=<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00041"></a>00041 <span class="preprocessor"> #ifdef XINT_SECURE</span>
+<a name="l00042"></a>00042 <span class="preprocessor"></span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=<span class="keyword">new</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>[<a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>];
+<a name="l00043"></a>00043 <span class="preprocessor"> #else</span>
+<a name="l00044"></a>00044 <span class="preprocessor"></span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>.resize(<a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>, 0);
+<a name="l00045"></a>00045 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=&amp;<a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>[0];
+<a name="l00046"></a>00046 <span class="preprocessor"> #endif</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span> } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
+<a name="l00048"></a>00048 <span class="keywordflow">throw</span> std::overflow_error(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
+<a name="l00049"></a>00049 }
+<a name="l00050"></a>00050 }
+<a name="l00051"></a>00051 memcpy(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>));
+<a name="l00052"></a>00052
+<a name="l00053"></a>00053 <a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>=0;
+<a name="l00054"></a>00054 <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>=c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>;
+<a name="l00055"></a>00055 }
+<a name="l00056"></a>00056
+<a name="l00057"></a>00057 <span class="preprocessor">#ifdef XINT_SECURE</span>
+<a name="l00058"></a>00058 <span class="preprocessor"></span>data_t::~data_t() {
+<a name="l00059"></a>00059 <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>, <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>);
+<a name="l00060"></a>00060 <span class="keywordflow">if</span> (<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a> != <a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>) {
+<a name="l00061"></a>00061 <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>);
+<a name="l00062"></a>00062 <span class="keyword">delete</span>[] <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
+<a name="l00063"></a>00063 }
+<a name="l00064"></a>00064 }
+<a name="l00065"></a>00065 <span class="preprocessor">#endif</span>
+<a name="l00066"></a>00066 <span class="preprocessor"></span>
+<a name="l00067"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">00067</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">data_t::skipLeadingZeros</a>() {
+<a name="l00068"></a>00068 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>-1;
+<a name="l00069"></a>00069 <span class="keywordflow">while</span> (d&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a> &amp;&amp; *d==0) --d;
+<a name="l00070"></a>00070 mLength=int((d-<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>)+1);
+<a name="l00071"></a>00071 <span class="keywordflow">if</span> (mLength==1 &amp;&amp; <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[0]==0) <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>=<span class="keyword">false</span>; <span class="comment">// Zero isn&#39;t negative</span>
+<a name="l00072"></a>00072 }
+<a name="l00073"></a>00073
+<a name="l00074"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a57fc3966c44d09daeede53899673cde3">00074</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a57fc3966c44d09daeede53899673cde3">data_t::quickset</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d1, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d2, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d3) {
+<a name="l00075"></a>00075 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
+<a name="l00076"></a>00076
+<a name="l00077"></a>00077 <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=3;
+<a name="l00078"></a>00078 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[0]=d1;
+<a name="l00079"></a>00079 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[1]=d2;
+<a name="l00080"></a>00080 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[2]=d3;
+<a name="l00081"></a>00081 <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>=<span class="keyword">false</span>;
+<a name="l00082"></a>00082 <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00083"></a>00083 }
+<a name="l00084"></a>00084
+<a name="l00085"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">00085</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">data_t::alloc</a>(<span class="keywordtype">int</span> newcount, <span class="keywordtype">bool</span> copydigits) {
+<a name="l00086"></a>00086 <span class="keywordflow">if</span> (<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>==<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a> &amp;&amp; newcount&lt;=<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>) {
+<a name="l00087"></a>00087 <span class="keywordflow">if</span> (!copydigits) <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>);
+<a name="l00088"></a>00088 <span class="keywordflow">else</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>, (newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>));
+<a name="l00089"></a>00089 <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=newcount;
+<a name="l00090"></a>00090 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (newcount &lt; <a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>) {
+<a name="l00091"></a>00091 <span class="keywordflow">if</span> (copydigits) {
+<a name="l00092"></a>00092 <span class="keywordflow">if</span> (newcount&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>) <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>, newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>);
+<a name="l00093"></a>00093 <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=newcount;
+<a name="l00094"></a>00094 } <span class="keywordflow">else</span> {
+<a name="l00095"></a>00095 <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=newcount;
+<a name="l00096"></a>00096 <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>);
+<a name="l00097"></a>00097 }
+<a name="l00098"></a>00098 } <span class="keywordflow">else</span> {
+<a name="l00099"></a>00099 <span class="preprocessor"> #ifdef XINT_SECURE</span>
+<a name="l00100"></a>00100 <span class="preprocessor"></span> <span class="keywordtype">int</span> e=newcount;
+<a name="l00101"></a>00101 newcount=1;
+<a name="l00102"></a>00102 <span class="keywordflow">while</span> (newcount &lt; e) newcount &lt;&lt;= 1;
+<a name="l00103"></a>00103 <span class="preprocessor"> #endif</span>
+<a name="l00104"></a>00104 <span class="preprocessor"></span>
+<a name="l00105"></a>00105 <span class="keywordflow">if</span> (<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>==<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a> &amp;&amp; copydigits) {
+<a name="l00106"></a>00106 <span class="keywordflow">try</span> {
+<a name="l00107"></a>00107 <span class="preprocessor"> #ifdef XINT_SECURE</span>
+<a name="l00108"></a>00108 <span class="preprocessor"></span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=<span class="keyword">new</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>[newcount];
+<a name="l00109"></a>00109 <span class="preprocessor"> #else</span>
+<a name="l00110"></a>00110 <span class="preprocessor"></span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>.resize(newcount);
+<a name="l00111"></a>00111 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=&amp;<a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>[0];
+<a name="l00112"></a>00112 <span class="preprocessor"> #endif</span>
+<a name="l00113"></a>00113 <span class="preprocessor"></span> } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
+<a name="l00114"></a>00114 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>; <span class="comment">// Might allow for recovery in some cases</span>
+<a name="l00115"></a>00115 <span class="keywordflow">throw</span> std::overflow_error(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
+<a name="l00116"></a>00116 }
+<a name="l00117"></a>00117
+<a name="l00118"></a>00118 memcpy(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>));
+<a name="l00119"></a>00119 <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>, newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>);
+<a name="l00120"></a>00120 } <span class="keywordflow">else</span> {
+<a name="l00121"></a>00121 <span class="preprocessor"> #ifdef XINT_SECURE</span>
+<a name="l00122"></a>00122 <span class="preprocessor"></span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *newDigits=0;
+<a name="l00123"></a>00123 <span class="keywordflow">try</span> {
+<a name="l00124"></a>00124 newDigits=<span class="keyword">new</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>[newcount];
+<a name="l00125"></a>00125 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
+<a name="l00126"></a>00126 <span class="keywordflow">throw</span> std::overflow_error(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
+<a name="l00127"></a>00127 }
+<a name="l00128"></a>00128
+<a name="l00129"></a>00129 <span class="keywordflow">if</span> (copydigits) {
+<a name="l00130"></a>00130 memcpy(newDigits, <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>));
+<a name="l00131"></a>00131 <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(newDigits+<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>, newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>);
+<a name="l00132"></a>00132 } <span class="keywordflow">else</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(newDigits, newcount);
+<a name="l00133"></a>00133
+<a name="l00134"></a>00134 <span class="keywordflow">if</span> (<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>!=<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>) {
+<a name="l00135"></a>00135 <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>);
+<a name="l00136"></a>00136 <span class="keyword">delete</span>[] <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
+<a name="l00137"></a>00137 }
+<a name="l00138"></a>00138 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=newDigits;
+<a name="l00139"></a>00139 <span class="preprocessor"> #else</span>
+<a name="l00140"></a>00140 <span class="preprocessor"></span> <span class="keywordflow">try</span> {
+<a name="l00141"></a>00141 <a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>.resize(newcount);
+<a name="l00142"></a>00142 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
+<a name="l00143"></a>00143 <span class="keywordflow">throw</span> std::overflow_error(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
+<a name="l00144"></a>00144 }
+<a name="l00145"></a>00145 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=&amp;<a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>[0];
+<a name="l00146"></a>00146 <span class="keywordflow">if</span> (!copydigits) <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, newcount);
+<a name="l00147"></a>00147 <span class="preprocessor"> #endif</span>
+<a name="l00148"></a>00148 <span class="preprocessor"></span> }
+<a name="l00149"></a>00149 <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=<a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>=newcount;
+<a name="l00150"></a>00150 }
+<a name="l00151"></a>00151 }
+<a name="l00152"></a>00152
+<a name="l00153"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#acc02d0c3b8c867ff12af155dae8445dd">00153</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#acc02d0c3b8c867ff12af155dae8445dd">data_t::copy</a>(<span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a> *c, <span class="keywordtype">int</span> extraDigits) {
+<a name="l00154"></a>00154 <a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>+extraDigits);
+<a name="l00155"></a>00155
+<a name="l00156"></a>00156 <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00157"></a>00157 <span class="keywordflow">if</span> (c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>==1) *<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a> = *c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
+<a name="l00158"></a>00158 <span class="keywordflow">else</span> memcpy(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>));
+<a name="l00159"></a>00159
+<a name="l00160"></a>00160 <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>=c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>;
+<a name="l00161"></a>00161
+<a name="l00162"></a>00162 <span class="comment">// Deliberately doesn&#39;t call skipLeadingZeros().</span>
+<a name="l00163"></a>00163 }
+<a name="l00164"></a>00164
+<a name="l00165"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">00165</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">data_t::zero</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *p, <span class="keywordtype">size_t</span> count) {
+<a name="l00166"></a>00166 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *pe=p+count;
+<a name="l00167"></a>00167 <span class="keywordflow">while</span> (p&lt;pe) *p++=0;
+<a name="l00168"></a>00168 }
+<a name="l00169"></a>00169
+<a name="l00170"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#aaf6f202db416ad8fe18ec8a6c8c48904">00170</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#aaf6f202db416ad8fe18ec8a6c8c48904">data_t::invert</a>() {
+<a name="l00171"></a>00171 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
+<a name="l00172"></a>00172
+<a name="l00173"></a>00173 <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>=!<a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>;
+<a name="l00174"></a>00174
+<a name="l00175"></a>00175 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *e=d+<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00176"></a>00176 <span class="keywordflow">while</span> (d&lt;e) {
+<a name="l00177"></a>00177 *d=<span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a> - 1 - *d);
+<a name="l00178"></a>00178 ++d;
+<a name="l00179"></a>00179 }
+<a name="l00180"></a>00180
+<a name="l00181"></a>00181 d=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
+<a name="l00182"></a>00182 <span class="keywordflow">while</span> (d&lt;e) {
+<a name="l00183"></a>00183 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> w=(*d)+1;
+<a name="l00184"></a>00184 (*d++)=static_cast&lt;digit_t&gt;(w);
+<a name="l00185"></a>00185 <span class="keywordflow">if</span> (w&lt;<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) <span class="keywordflow">break</span>;
+<a name="l00186"></a>00186 }
+<a name="l00187"></a>00187
+<a name="l00188"></a>00188 <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00189"></a>00189 }
+<a name="l00190"></a>00190
+<a name="l00191"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">00191</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">data_t::negate</a>() {
+<a name="l00192"></a>00192 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
+<a name="l00193"></a>00193
+<a name="l00194"></a>00194 <span class="comment">// If it&#39;s zero, don&#39;t change the sign</span>
+<a name="l00195"></a>00195 <span class="keywordflow">if</span> (<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>&gt;1 || <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[0]!=0) <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>=!<a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>;
+<a name="l00196"></a>00196 }
+<a name="l00197"></a>00197
+<a name="l00198"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">00198</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">data_t::add</a>(<span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>&amp; addend) {
+<a name="l00199"></a>00199 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
+<a name="l00200"></a>00200 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> &gt;= addend.<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>);
+<a name="l00201"></a>00201
+<a name="l00202"></a>00202 <span class="comment">// The answer to any addition problem contains, at most, one digit more</span>
+<a name="l00203"></a>00203 <span class="comment">// than the largest addend.</span>
+<a name="l00204"></a>00204 <a class="code" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">realloc</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>+1);
+<a name="l00205"></a>00205
+<a name="l00206"></a>00206 <span class="comment">// Now add the digits, starting at the least-significant digit.</span>
+<a name="l00207"></a>00207 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> carry=0;
+<a name="l00208"></a>00208 <span class="keywordtype">int</span> x=0;
+<a name="l00209"></a>00209 <span class="keywordflow">for</span> (; x&lt;addend.<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>; ++x) {
+<a name="l00210"></a>00210 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> t=<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x])+addend.<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]+carry;
+<a name="l00211"></a>00211 <span class="keywordflow">if</span> (t&gt;=<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) { carry=1; t-=<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>; } <span class="keywordflow">else</span> carry=0;
+<a name="l00212"></a>00212 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]=<span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(t);
+<a name="l00213"></a>00213 }
+<a name="l00214"></a>00214
+<a name="l00215"></a>00215 <span class="keywordflow">while</span> (carry) {
+<a name="l00216"></a>00216 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> t=<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x])+1;
+<a name="l00217"></a>00217 <span class="keywordflow">if</span> (t&gt;=<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) { carry=1; t-=<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>; } <span class="keywordflow">else</span> carry=0;
+<a name="l00218"></a>00218 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]=<span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(t);
+<a name="l00219"></a>00219 ++x;
+<a name="l00220"></a>00220 }
+<a name="l00221"></a>00221
+<a name="l00222"></a>00222 <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00223"></a>00223 }
+<a name="l00224"></a>00224
+<a name="l00225"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">00225</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">data_t::subtract</a>(<span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>&amp; subtrahend) {
+<a name="l00226"></a>00226 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
+<a name="l00227"></a>00227 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> &gt;= subtrahend.<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>);
+<a name="l00228"></a>00228
+<a name="l00229"></a>00229 <span class="comment">// For subtraction, the answer will always be less than or equal to the</span>
+<a name="l00230"></a>00230 <span class="comment">// size of the longest operand, so we&#39;ve already got enough room.</span>
+<a name="l00231"></a>00231
+<a name="l00232"></a>00232 <span class="comment">// Now subtract the digits, starting at the least-significant one.</span>
+<a name="l00233"></a>00233 <span class="keywordtype">int</span> borrow=0, x;
+<a name="l00234"></a>00234 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> t;
+<a name="l00235"></a>00235 <span class="keywordflow">for</span> (x=0; x&lt;subtrahend.<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>; ++x) {
+<a name="l00236"></a>00236 t=(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]+<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>)-subtrahend.<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]-borrow;
+<a name="l00237"></a>00237 if (t&lt;<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) borrow=1; <span class="keywordflow">else</span> { borrow=0; t-=<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>; }
+<a name="l00238"></a>00238 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]=<span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(t);
+<a name="l00239"></a>00239 }
+<a name="l00240"></a>00240
+<a name="l00241"></a>00241 <span class="keywordflow">for</span> (; x&lt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> &amp;&amp; borrow; ++x) {
+<a name="l00242"></a>00242 t=(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]+<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>)-borrow;
+<a name="l00243"></a>00243 <span class="keywordflow">if</span> (t&lt;<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) borrow=1; <span class="keywordflow">else</span> { borrow=0; t-=<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>; }
+<a name="l00244"></a>00244 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]=<span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(t);
+<a name="l00245"></a>00245 }
+<a name="l00246"></a>00246
+<a name="l00247"></a>00247 <span class="keywordflow">if</span> (borrow) <a class="code" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">negate</a>();
+<a name="l00248"></a>00248 <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00249"></a>00249 }
+<a name="l00250"></a>00250
+<a name="l00251"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">00251</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">data_t::shift_left</a>(<span class="keywordtype">int</span> byBits) {
+<a name="l00252"></a>00252 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
+<a name="l00253"></a>00253 assert(byBits&gt;0);
+<a name="l00254"></a>00254
+<a name="l00255"></a>00255 <span class="keywordtype">int</span> bytes=byBits / <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>, bits=byBits % <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>;
+<a name="l00256"></a>00256 <span class="keywordtype">int</span> oldLength=<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00257"></a>00257
+<a name="l00258"></a>00258 <a class="code" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">realloc</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>+bytes+1);
+<a name="l00259"></a>00259
+<a name="l00260"></a>00260 <span class="keywordflow">if</span> (bits != 0) {
+<a name="l00261"></a>00261 <span class="comment">// Handle both bits and bytes in one pass</span>
+<a name="l00262"></a>00262 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+oldLength-1, *t=s+bytes+1;
+<a name="l00263"></a>00263
+<a name="l00264"></a>00264 *t-- = *s &gt;&gt; (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bits);
+<a name="l00265"></a>00265 <span class="keywordflow">while</span> (s &gt; <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>) {
+<a name="l00266"></a>00266 *t = (*s-- &lt;&lt; bits);
+<a name="l00267"></a>00267 *t-- |= (*s &gt;&gt; (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bits));
+<a name="l00268"></a>00268 }
+<a name="l00269"></a>00269 *t = (*s &lt;&lt; bits);
+<a name="l00270"></a>00270
+<a name="l00271"></a>00271 <span class="keywordflow">if</span> (bytes != 0) memset(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>) * bytes);
+<a name="l00272"></a>00272 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bytes != 0) {
+<a name="l00273"></a>00273 memmove(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+bytes, <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>) * oldLength);
+<a name="l00274"></a>00274 memset(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>) * bytes);
+<a name="l00275"></a>00275 }
+<a name="l00276"></a>00276 <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00277"></a>00277 }
+<a name="l00278"></a>00278
+<a name="l00279"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">00279</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">data_t::shift_right</a>(<span class="keywordtype">int</span> byBits) {
+<a name="l00280"></a>00280 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
+<a name="l00281"></a>00281 assert(byBits&gt;0);
+<a name="l00282"></a>00282
+<a name="l00283"></a>00283 <span class="keywordtype">int</span> bytes=byBits / <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>, bits=byBits % <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>,
+<a name="l00284"></a>00284 bits2 = <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bits;
+<a name="l00285"></a>00285
+<a name="l00286"></a>00286 <span class="keywordflow">if</span> (bytes &gt;= <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>) {
+<a name="l00287"></a>00287 <span class="comment">// Right-shift it into oblivion.</span>
+<a name="l00288"></a>00288 <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=1;
+<a name="l00289"></a>00289 *<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=0;
+<a name="l00290"></a>00290 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits != 0) {
+<a name="l00291"></a>00291 <span class="comment">// Handle both bits and bytes in one pass</span>
+<a name="l00292"></a>00292 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *t=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *s=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+bytes, *se=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>-1;
+<a name="l00293"></a>00293 <span class="keywordflow">while</span> (s!=se) {
+<a name="l00294"></a>00294 *t = (*s++ &gt;&gt; bits);
+<a name="l00295"></a>00295 *t++ |= (*s &lt;&lt; bits2);
+<a name="l00296"></a>00296 }
+<a name="l00297"></a>00297 *t = (*s &gt;&gt; bits);
+<a name="l00298"></a>00298 <span class="keywordflow">if</span> (bytes != 0) {
+<a name="l00299"></a>00299 memset(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+mLength-bytes, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>) * bytes);
+<a name="l00300"></a>00300 mLength-=bytes;
+<a name="l00301"></a>00301 }
+<a name="l00302"></a>00302 <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00303"></a>00303 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bytes != 0) {
+<a name="l00304"></a>00304 memmove(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a> + bytes, <span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>) * (<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> - bytes));
+<a name="l00305"></a>00305 memset(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a> + <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> - bytes, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>) * bytes);
+<a name="l00306"></a>00306 <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>-=bytes;
+<a name="l00307"></a>00307 <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00308"></a>00308 }
+<a name="l00309"></a>00309 }
+<a name="l00310"></a>00310
+<a name="l00311"></a>00311 } <span class="comment">// namespace detail</span>
+<a name="l00312"></a>00312 } <span class="comment">// namespace xint</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/doxygen.png
==============================================================================
Binary file. No diff available.

Added: sandbox/xint/libs/xint/doc/doxygen/html/exception__blocker_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/exception__blocker_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,119 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/exception_blocker.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">xint::exceptions_allowed</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">token&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">xint::block_exceptions</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">token&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">xint::allow_exceptions</a> ()</td></tr>
+</table>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="a50f7131c1e1f52ac26fb604e489b0dbe"></a><!-- doxytag: member="exception_blocker.cpp::mOldState" ref="a50f7131c1e1f52ac26fb604e489b0dbe" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="exception__blocker_8cpp_source.html#l00043">43</a> of file <a class="el" href="exception__blocker_8cpp_source.html">exception_blocker.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/exception__blocker_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/exception__blocker_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,153 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/exception_blocker.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file holds definitions for the exception blocker classes and functions.</span>
+<a name="l00012"></a>00012 <span class="comment">*/</span>
+<a name="l00013"></a>00013
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00015"></a>00015
+<a name="l00016"></a>00016 <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor"> #include &lt;boost/thread.hpp&gt;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#endif</span>
+<a name="l00019"></a>00019 <span class="preprocessor"></span>
+<a name="l00020"></a>00020 <span class="keyword">namespace </span>xint {
+<a name="l00021"></a>00021 <span class="keyword">namespace </span>{
+<a name="l00022"></a>00022
+<a name="l00023"></a>00023 <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
+<a name="l00024"></a>00024 <span class="preprocessor"></span> boost::thread_specific_ptr&lt;bool&gt; allowed;
+<a name="l00025"></a>00025
+<a name="l00026"></a>00026 <span class="keyword">struct </span>EBlockerToken: <span class="keyword">public</span> detail::<a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">token</a> {
+<a name="l00027"></a>00027 EBlockerToken(<span class="keywordtype">bool</span> newAllowState) {
+<a name="l00028"></a>00028 <span class="keywordflow">if</span> (allowed.get()==0) allowed.reset(<span class="keyword">new</span> <span class="keywordtype">bool</span>(<span class="keyword">true</span>));
+<a name="l00029"></a>00029 <a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a>=*allowed;
+<a name="l00030"></a>00030 *allowed=newAllowState;
+<a name="l00031"></a>00031 }
+<a name="l00032"></a>00032 ~EBlockerToken() { *allowed=<a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a>; }
+<a name="l00033"></a>00033
+<a name="l00034"></a>00034 <span class="keywordtype">bool</span> <a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a>;
+<a name="l00035"></a>00035 };
+<a name="l00036"></a>00036 <span class="preprocessor">#else</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span> <span class="keywordtype">bool</span> allowed=<span class="keyword">true</span>;
+<a name="l00038"></a>00038
+<a name="l00039"></a>00039 <span class="keyword">struct </span>EBlockerToken: <span class="keyword">public</span> detail::<a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">token</a> {
+<a name="l00040"></a>00040 EBlockerToken(<span class="keywordtype">bool</span> newAllowState): <a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a>(allowed) { allowed=newAllowState; }
+<a name="l00041"></a>00041 ~EBlockerToken() { allowed=<a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a>; }
+<a name="l00042"></a>00042
+<a name="l00043"></a><a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">00043</a> <span class="keywordtype">bool</span> <a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a>;
+<a name="l00044"></a>00044 };
+<a name="l00045"></a>00045 <span class="preprocessor">#endif</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span>
+<a name="l00047"></a>00047 } <span class="comment">// namespace</span>
+<a name="l00048"></a>00048
+<a name="l00049"></a>00049 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>() {
+<a name="l00050"></a>00050 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
+<a name="l00051"></a>00051 <span class="preprocessor"></span> <span class="comment">// Defaults to true</span>
+<a name="l00052"></a>00052 <span class="keywordflow">return</span> (allowed.get()==0 || *allowed==<span class="keyword">true</span>);
+<a name="l00053"></a>00053 <span class="preprocessor"> #else</span>
+<a name="l00054"></a>00054 <span class="preprocessor"></span> <span class="keywordflow">return</span> allowed;
+<a name="l00055"></a>00055 <span class="preprocessor"> #endif</span>
+<a name="l00056"></a>00056 <span class="preprocessor"></span>}
+<a name="l00057"></a>00057
+<a name="l00058"></a>00058 <a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">token</a> <a class="code" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">block_exceptions</a>() {
+<a name="l00059"></a>00059 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">token</a>(<span class="keyword">new</span> EBlockerToken(<span class="keyword">false</span>));
+<a name="l00060"></a>00060 }
+<a name="l00061"></a>00061
+<a name="l00062"></a>00062 <a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">token</a> <a class="code" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">allow_exceptions</a>() {
+<a name="l00063"></a>00063 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">token</a>(<span class="keyword">new</span> EBlockerToken(<span class="keyword">true</span>));
+<a name="l00064"></a>00064 }
+<a name="l00065"></a>00065
+<a name="l00066"></a>00066 } <span class="comment">// namespace xint</span>
+<a name="l00067"></a>00067
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/files.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/files.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,112 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li class="current">File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>File List</h1>Here is a list of all files with brief descriptions:<table>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint_8hpp.html">xint.hpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint__data__t_8hpp.html">xint_data_t.hpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint__monty_8hpp.html">xint_monty.hpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint__test_8hpp.html">xint_test.hpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="bit__manipulations_8cpp.html">bit_manipulations.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="compare_8cpp.html">compare.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="convert_8cpp.html">convert.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="data__t_8cpp.html">data_t.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="exception__blocker_8cpp.html">exception_blocker.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="gcd_8cpp.html">gcd.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="integer_8cpp.html">integer.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="misc_8cpp.html">misc.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="modular_8cpp.html">modular.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="monty_8cpp.html">monty.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="operators_8cpp.html">operators.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="powers_8cpp.html">powers.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="primes_8cpp.html">primes.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="primitives_8cpp.html">primitives.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="random_8cpp.html">random.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="roots_8cpp.html">roots.cpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/libs/xint/example/<a class="el" href="xint__fibonacci_8cpp.html">xint_fibonacci.cpp</a> [code]</td><td class="indexvalue">Simple demo of xint sending the fibonacci sequence to stream output </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/xInt/libs/xint/example/<a class="el" href="xint__simple_8cpp.html">xint_simple.cpp</a> [code]</td><td class="indexvalue">Simple demo of xint including stream output </td></tr>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/functions.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/functions.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,381 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>_</li>
+ <li>a</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>h</li>
+ <li>i</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>z</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all class members with links to the classes they belong to:
+
+<h3><a class="anchor" id="index__">- _ -</a></h3><ul>
+<li>_attach()
+: <a class="el" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">xint::integer</a>
+</li>
+<li>_detach()
+: <a class="el" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">xint::integer</a>
+</li>
+<li>_get_data()
+: <a class="el" href="classxint_1_1integer.html#aff99f7868567ae0dd4666a985873a5a7">xint::integer</a>
+</li>
+<li>_get_digit()
+: <a class="el" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">xint::integer</a>
+</li>
+<li>_get_length()
+: <a class="el" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">xint::integer</a>
+</li>
+<li>_init()
+: <a class="el" href="classxint_1_1integer.html#aed205d80e7b1a495a2d67abde5c406e8">xint::integer</a>
+</li>
+<li>_make_unique()
+: <a class="el" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">xint::integer</a>
+</li>
+<li>_set_negative()
+: <a class="el" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">xint::integer</a>
+</li>
+<li>_throw_if_nan()
+: <a class="el" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">xint::integer</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
+<li>add()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">xint::detail::data_t</a>
+</li>
+<li>alloc()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">xint::detail::data_t</a>
+</li>
+<li>attach()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">xint::detail::data_t</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
+<li>cOne
+: <a class="el" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">xint::integer</a>
+</li>
+<li>copy()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#acc02d0c3b8c867ff12af155dae8445dd">xint::detail::data_t</a>
+</li>
+<li>count
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">xint::detail::data_t::QuickDigits</a>
+</li>
+<li>cZero
+: <a class="el" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">xint::integer</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
+<li>data
+: <a class="el" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">xint::integer</a>
+</li>
+<li>data_t()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">xint::detail::data_t</a>
+</li>
+<li>detach()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">xint::detail::data_t</a>
+</li>
+<li>digits
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">xint::detail::data_t</a>
+</li>
+<li>divide_by_zero()
+: <a class="el" href="classxint_1_1divide__by__zero.html#a31233d42a45ca6ef7078e700fa114ad2">xint::divide_by_zero</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e">- e -</a></h3><ul>
+<li>even()
+: <a class="el" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">xint::integer</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h">- h -</a></h3><ul>
+<li>hex_digits()
+: <a class="el" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">xint::integer</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
+<li>intbits
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">xint::detail::data_t::QuickDigits</a>
+</li>
+<li>integer()
+: <a class="el" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">xint::integer</a>
+</li>
+<li>invalid_base()
+: <a class="el" href="classxint_1_1invalid__base.html#a16a577d5584652ca358450cbb55b5d55">xint::invalid_base</a>
+</li>
+<li>invalid_digit()
+: <a class="el" href="classxint_1_1invalid__digit.html#a832283e75569bd7e9d09f38ebae87a27">xint::invalid_digit</a>
+</li>
+<li>invalid_modulus()
+: <a class="el" href="classxint_1_1invalid__modulus.html#a691026e352d38fc5120c12d6d134e854">xint::invalid_modulus</a>
+</li>
+<li>invert()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#aaf6f202db416ad8fe18ec8a6c8c48904">xint::detail::data_t</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
+<li>mAllocated
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">xint::detail::data_t</a>
+</li>
+<li>mCopies
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">xint::detail::data_t</a>
+</li>
+<li>minimum
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">xint::detail::data_t::QuickDigits</a>
+</li>
+<li>mIsNegative
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">xint::detail::data_t</a>
+</li>
+<li>mLength
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">xint::detail::data_t</a>
+</li>
+<li>mQuickDigits
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">xint::detail::data_t</a>
+</li>
+<li>mStorage
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">xint::detail::data_t</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
+<li>nan()
+: <a class="el" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">xint::integer</a>
+</li>
+<li>negate()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">xint::detail::data_t</a>
+</li>
+<li>not_a_number()
+: <a class="el" href="classxint_1_1not__a__number.html#a4ecc5bcc06a5d660176d51fc63c996cd">xint::not_a_number</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>odd()
+: <a class="el" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">xint::integer</a>
+</li>
+<li>one()
+: <a class="el" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">xint::integer</a>
+</li>
+<li>operator%=()
+: <a class="el" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">xint::integer</a>
+</li>
+<li>operator&amp;=()
+: <a class="el" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">xint::integer</a>
+</li>
+<li>operator*=()
+: <a class="el" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">xint::integer</a>
+</li>
+<li>operator++()
+: <a class="el" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">xint::integer</a>
+</li>
+<li>operator+=()
+: <a class="el" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">xint::integer</a>
+</li>
+<li>operator--()
+: <a class="el" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">xint::integer</a>
+</li>
+<li>operator-=()
+: <a class="el" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">xint::integer</a>
+</li>
+<li>operator/=()
+: <a class="el" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">xint::integer</a>
+</li>
+<li>operator&lt;&lt;()
+: <a class="el" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">xint::integer</a>
+</li>
+<li>operator&lt;&lt;=()
+: <a class="el" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">xint::integer</a>
+</li>
+<li>operator=()
+: <a class="el" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">xint::integer</a>
+</li>
+<li>operator&gt;&gt;()
+: <a class="el" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">xint::integer</a>
+</li>
+<li>operator&gt;&gt;=()
+: <a class="el" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">xint::integer</a>
+</li>
+<li>operator^=()
+: <a class="el" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">xint::integer</a>
+</li>
+<li>operator|=()
+: <a class="el" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">xint::integer</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_q">- q -</a></h3><ul>
+<li>quickset()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a57fc3966c44d09daeede53899673cde3">xint::detail::data_t</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
+<li>realloc()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">xint::detail::data_t</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
+<li>shift_left()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">xint::detail::data_t</a>
+</li>
+<li>shift_right()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">xint::detail::data_t</a>
+</li>
+<li>sign()
+: <a class="el" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">xint::integer</a>
+</li>
+<li>skipLeadingZeros()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">xint::detail::data_t</a>
+</li>
+<li>subtract()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">xint::detail::data_t</a>
+</li>
+<li>suggested
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">xint::detail::data_t::QuickDigits</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
+<li>too_big()
+: <a class="el" href="classxint_1_1too__big.html#a37a714ef8bfef8a1cf6cfa08a5db1ccc">xint::too_big</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_z">- z -</a></h3><ul>
+<li>zero()
+: <a class="el" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">xint::integer</a>
+, <a class="el" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">xint::detail::data_t</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_0x7e">- ~ -</a></h3><ul>
+<li>~integer()
+: <a class="el" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">xint::integer</a>
+</li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/functions_func.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/functions_func.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,334 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>_</li>
+ <li>a</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>h</li>
+ <li>i</li>
+ <li>n</li>
+ <li>o</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>z</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index__">- _ -</a></h3><ul>
+<li>_attach()
+: <a class="el" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">xint::integer</a>
+</li>
+<li>_detach()
+: <a class="el" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">xint::integer</a>
+</li>
+<li>_get_data()
+: <a class="el" href="classxint_1_1integer.html#aff99f7868567ae0dd4666a985873a5a7">xint::integer</a>
+</li>
+<li>_get_digit()
+: <a class="el" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">xint::integer</a>
+</li>
+<li>_get_length()
+: <a class="el" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">xint::integer</a>
+</li>
+<li>_init()
+: <a class="el" href="classxint_1_1integer.html#aed205d80e7b1a495a2d67abde5c406e8">xint::integer</a>
+</li>
+<li>_make_unique()
+: <a class="el" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">xint::integer</a>
+</li>
+<li>_set_negative()
+: <a class="el" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">xint::integer</a>
+</li>
+<li>_throw_if_nan()
+: <a class="el" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">xint::integer</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
+<li>add()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">xint::detail::data_t</a>
+</li>
+<li>alloc()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">xint::detail::data_t</a>
+</li>
+<li>attach()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">xint::detail::data_t</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
+<li>copy()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#acc02d0c3b8c867ff12af155dae8445dd">xint::detail::data_t</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
+<li>data_t()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">xint::detail::data_t</a>
+</li>
+<li>detach()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">xint::detail::data_t</a>
+</li>
+<li>divide_by_zero()
+: <a class="el" href="classxint_1_1divide__by__zero.html#a31233d42a45ca6ef7078e700fa114ad2">xint::divide_by_zero</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e">- e -</a></h3><ul>
+<li>even()
+: <a class="el" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">xint::integer</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h">- h -</a></h3><ul>
+<li>hex_digits()
+: <a class="el" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">xint::integer</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
+<li>integer()
+: <a class="el" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">xint::integer</a>
+</li>
+<li>invalid_base()
+: <a class="el" href="classxint_1_1invalid__base.html#a16a577d5584652ca358450cbb55b5d55">xint::invalid_base</a>
+</li>
+<li>invalid_digit()
+: <a class="el" href="classxint_1_1invalid__digit.html#a832283e75569bd7e9d09f38ebae87a27">xint::invalid_digit</a>
+</li>
+<li>invalid_modulus()
+: <a class="el" href="classxint_1_1invalid__modulus.html#a691026e352d38fc5120c12d6d134e854">xint::invalid_modulus</a>
+</li>
+<li>invert()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#aaf6f202db416ad8fe18ec8a6c8c48904">xint::detail::data_t</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
+<li>nan()
+: <a class="el" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">xint::integer</a>
+</li>
+<li>negate()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">xint::detail::data_t</a>
+</li>
+<li>not_a_number()
+: <a class="el" href="classxint_1_1not__a__number.html#a4ecc5bcc06a5d660176d51fc63c996cd">xint::not_a_number</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>odd()
+: <a class="el" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">xint::integer</a>
+</li>
+<li>one()
+: <a class="el" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">xint::integer</a>
+</li>
+<li>operator%=()
+: <a class="el" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">xint::integer</a>
+</li>
+<li>operator&amp;=()
+: <a class="el" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">xint::integer</a>
+</li>
+<li>operator*=()
+: <a class="el" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">xint::integer</a>
+</li>
+<li>operator++()
+: <a class="el" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">xint::integer</a>
+</li>
+<li>operator+=()
+: <a class="el" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">xint::integer</a>
+</li>
+<li>operator--()
+: <a class="el" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">xint::integer</a>
+</li>
+<li>operator-=()
+: <a class="el" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">xint::integer</a>
+</li>
+<li>operator/=()
+: <a class="el" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">xint::integer</a>
+</li>
+<li>operator&lt;&lt;()
+: <a class="el" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">xint::integer</a>
+</li>
+<li>operator&lt;&lt;=()
+: <a class="el" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">xint::integer</a>
+</li>
+<li>operator=()
+: <a class="el" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">xint::integer</a>
+</li>
+<li>operator&gt;&gt;()
+: <a class="el" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">xint::integer</a>
+</li>
+<li>operator&gt;&gt;=()
+: <a class="el" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">xint::integer</a>
+</li>
+<li>operator^=()
+: <a class="el" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">xint::integer</a>
+</li>
+<li>operator|=()
+: <a class="el" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">xint::integer</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_q">- q -</a></h3><ul>
+<li>quickset()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a57fc3966c44d09daeede53899673cde3">xint::detail::data_t</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
+<li>realloc()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">xint::detail::data_t</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
+<li>shift_left()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">xint::detail::data_t</a>
+</li>
+<li>shift_right()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">xint::detail::data_t</a>
+</li>
+<li>sign()
+: <a class="el" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">xint::integer</a>
+</li>
+<li>skipLeadingZeros()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">xint::detail::data_t</a>
+</li>
+<li>subtract()
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">xint::detail::data_t</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
+<li>too_big()
+: <a class="el" href="classxint_1_1too__big.html#a37a714ef8bfef8a1cf6cfa08a5db1ccc">xint::too_big</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_z">- z -</a></h3><ul>
+<li>zero()
+: <a class="el" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">xint::integer</a>
+, <a class="el" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">xint::detail::data_t</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_0x7e">- ~ -</a></h3><ul>
+<li>~integer()
+: <a class="el" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">xint::integer</a>
+</li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/functions_vars.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/functions_vars.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,139 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>All</li>
+ <li>Functions</li>
+ <li class="current">Variables</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;<ul>
+<li>cOne
+: <a class="el" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">xint::integer</a>
+</li>
+<li>count
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">xint::detail::data_t::QuickDigits</a>
+</li>
+<li>cZero
+: <a class="el" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">xint::integer</a>
+</li>
+<li>data
+: <a class="el" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">xint::integer</a>
+</li>
+<li>digits
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">xint::detail::data_t</a>
+</li>
+<li>intbits
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">xint::detail::data_t::QuickDigits</a>
+</li>
+<li>mAllocated
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">xint::detail::data_t</a>
+</li>
+<li>mCopies
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">xint::detail::data_t</a>
+</li>
+<li>minimum
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">xint::detail::data_t::QuickDigits</a>
+</li>
+<li>mIsNegative
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">xint::detail::data_t</a>
+</li>
+<li>mLength
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">xint::detail::data_t</a>
+</li>
+<li>mQuickDigits
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">xint::detail::data_t</a>
+</li>
+<li>mStorage
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">xint::detail::data_t</a>
+</li>
+<li>suggested
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">xint::detail::data_t::QuickDigits</a>
+</li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/gcd_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/gcd_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,149 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/gcd.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">xint::gcd</a> (const integer &amp;num1, const integer &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a17c5e4e807cfa425f48d9f5b464bc8dc">xint::lcm</a> (const integer &amp;num1, const integer &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">xint::invmod</a> (const integer &amp;n, const integer &amp;m)</td></tr>
+</table>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="accb7b3088be4aa6fea6fe05dc527f01c"></a><!-- doxytag: member="gcd.cpp::u1" ref="accb7b3088be4aa6fea6fe05dc527f01c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">integer <a class="el" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="gcd_8cpp_source.html#l00049">49</a> of file <a class="el" href="gcd_8cpp_source.html">gcd.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a35cdbdce7a7d33309a6cabd35c878b2f"></a><!-- doxytag: member="gcd.cpp::u2" ref="a35cdbdce7a7d33309a6cabd35c878b2f" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">integer <a class="el" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="gcd_8cpp_source.html#l00049">49</a> of file <a class="el" href="gcd_8cpp_source.html">gcd.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7ac8f5a4ca4a1c621ad1c8ea155faaf2"></a><!-- doxytag: member="gcd.cpp::u3" ref="a7ac8f5a4ca4a1c621ad1c8ea155faaf2" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">integer <a class="el" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="gcd_8cpp_source.html#l00049">49</a> of file <a class="el" href="gcd_8cpp_source.html">gcd.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/gcd_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/gcd_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,187 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/gcd.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the Greatest Common Denominator function.</span>
+<a name="l00012"></a>00012 <span class="comment">*/</span>
+<a name="l00013"></a>00013
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00015"></a>00015
+<a name="l00016"></a>00016 <span class="keyword">namespace </span>xint {
+<a name="l00017"></a>00017
+<a name="l00018"></a>00018 <span class="keyword">namespace </span>{
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020 <span class="keyword">struct </span>gcd_core {
+<a name="l00021"></a>00021 gcd_core(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m): <a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a>(integer::one()),
+<a name="l00022"></a>00022 <a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a>(integer::zero()), <a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a>(n)
+<a name="l00023"></a>00023 {
+<a name="l00024"></a>00024 integer t1=m, t2=n-<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>(), t3=m;
+<a name="l00025"></a>00025 <span class="keywordflow">do</span> {
+<a name="l00026"></a>00026 <span class="keywordflow">do</span> {
+<a name="l00027"></a>00027 <span class="keywordflow">if</span> (<a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a>.even()) {
+<a name="l00028"></a>00028 <span class="keywordflow">if</span> (<a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a>.odd() || <a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a>.odd()) { <a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a>+=m; <a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a>+=n; }
+<a name="l00029"></a>00029 <a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a> &gt;&gt;= 1;
+<a name="l00030"></a>00030 <a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a> &gt;&gt;= 1;
+<a name="l00031"></a>00031 <a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a> &gt;&gt;= 1;
+<a name="l00032"></a>00032 }
+<a name="l00033"></a>00033
+<a name="l00034"></a>00034 <span class="keywordflow">if</span> (t3.even() || <a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a> &lt; t3) {
+<a name="l00035"></a>00035 <span class="comment">// Swap the u&#39;s with the t&#39;s</span>
+<a name="l00036"></a>00036 std::swap(<a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a>, t1);
+<a name="l00037"></a>00037 std::swap(<a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a>, t2);
+<a name="l00038"></a>00038 std::swap(<a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a>, t3);
+<a name="l00039"></a>00039 }
+<a name="l00040"></a>00040 } <span class="keywordflow">while</span> (<a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a>.even());
+<a name="l00041"></a>00041
+<a name="l00042"></a>00042 <span class="keywordflow">while</span> (<a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a> &lt; t1 || <a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a> &lt; t2) { <a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a>+=m; <a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a>+=n; }
+<a name="l00043"></a>00043 <a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a>-=t1; <a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a>-=t2; <a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a>-=t3;
+<a name="l00044"></a>00044 } <span class="keywordflow">while</span> (t3 &gt; 0);
+<a name="l00045"></a>00045
+<a name="l00046"></a>00046 <span class="keywordflow">while</span> (<a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a> &gt;= m &amp;&amp; <a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a> &gt;= n) { <a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a>-=m; <a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a>-=n; }
+<a name="l00047"></a>00047 }
+<a name="l00048"></a>00048
+<a name="l00049"></a><a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">00049</a> integer <a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a>, <a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a>, <a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a>;
+<a name="l00050"></a>00050 };
+<a name="l00051"></a>00051
+<a name="l00052"></a>00052 } <span class="comment">// namespace</span>
+<a name="l00053"></a>00053
+<a name="l00054"></a>00054 integer <a class="code" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">gcd</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) {
+<a name="l00055"></a>00055 num1.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00056"></a>00056 num2._throw_if_nan();
+<a name="l00057"></a>00057
+<a name="l00058"></a>00058 integer n(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(num1)), m(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(num2));
+<a name="l00059"></a>00059
+<a name="l00060"></a>00060 <span class="keywordtype">size_t</span> k=0;
+<a name="l00061"></a>00061 <span class="keywordflow">while</span> (n.even() &amp;&amp; m.even()) { ++k; n &gt;&gt;= 1; m &gt;&gt;= 1; }
+<a name="l00062"></a>00062
+<a name="l00063"></a>00063 gcd_core core(n, m);
+<a name="l00064"></a>00064
+<a name="l00065"></a>00065 <span class="keywordflow">if</span> (core.u3.sign() != 0) <span class="keywordflow">return</span> core.u3 &lt;&lt; k;
+<a name="l00066"></a>00066 <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>() &lt;&lt; k;
+<a name="l00067"></a>00067 }
+<a name="l00068"></a>00068
+<a name="l00069"></a>00069 integer <a class="code" href="namespacexint.html#a17c5e4e807cfa425f48d9f5b464bc8dc">lcm</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) {
+<a name="l00070"></a>00070 <span class="keywordflow">if</span> (num1.sign() == 0 || num2.sign() == 0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>();
+<a name="l00071"></a>00071 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(num1 * num2) / <a class="code" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">gcd</a>(num1, num2);
+<a name="l00072"></a>00072 }
+<a name="l00073"></a>00073
+<a name="l00074"></a>00074 integer <a class="code" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">invmod</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m) {
+<a name="l00075"></a>00075 <span class="comment">// Calculates the modular inverse of n mod m, or (n^(-1)) mod m</span>
+<a name="l00076"></a>00076 <span class="comment">// Defined as b, where n*b corresponds to 1 (mod m)</span>
+<a name="l00077"></a>00077 <span class="keywordflow">if</span> (m &lt; <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>()) {
+<a name="l00078"></a>00078 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus();
+<a name="l00079"></a>00079 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00080"></a>00080 }
+<a name="l00081"></a>00081
+<a name="l00082"></a>00082 <span class="keywordflow">if</span> (n.sign() &lt; 0) {
+<a name="l00083"></a>00083 integer _n(n);
+<a name="l00084"></a>00084 _n._set_negative(<span class="keyword">false</span>);
+<a name="l00085"></a>00085
+<a name="l00086"></a>00086 integer nn=<a class="code" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">invmod</a>(_n, m);
+<a name="l00087"></a>00087 <span class="keywordflow">if</span> (nn.nan()) <span class="keywordflow">return</span> nn;
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 nn._set_negative(<span class="keyword">true</span>);
+<a name="l00090"></a>00090 <span class="keywordflow">return</span> nn + m;
+<a name="l00091"></a>00091 }
+<a name="l00092"></a>00092
+<a name="l00093"></a>00093 <span class="keywordflow">if</span> (n.even() &amp;&amp; m.even()) <span class="keywordflow">return</span> integer(not_a_number()); <span class="comment">// GCD(x,y)!=1, no inverse possible.</span>
+<a name="l00094"></a>00094
+<a name="l00095"></a>00095 gcd_core core(n, m);
+<a name="l00096"></a>00096
+<a name="l00097"></a>00097 <span class="keywordflow">if</span> (core.u3 != <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>()) <span class="keywordflow">return</span> integer(not_a_number()); <span class="comment">// GCD(x,y)!=1, no inverse possible.</span>
+<a name="l00098"></a>00098 <span class="keywordflow">return</span> core.u1;
+<a name="l00099"></a>00099 }
+<a name="l00100"></a>00100
+<a name="l00101"></a>00101 } <span class="comment">// namespace xint</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/globals.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/globals.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,226 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li class="current">File Members</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Defines</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>c</li>
+ <li>d</li>
+ <li>m</li>
+ <li>o</li>
+ <li>u</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all file members with links to the files they belong to:
+
+<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
+<li>cSeedMaximumBytes
+: <a class="el" href="random_8cpp.html#a5223229006a12ebbbbdfb70c32f58844">random.cpp</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
+<li>ddPowerOfTwo
+: <a class="el" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">monty.cpp</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
+<li>main()
+: <a class="el" href="xint__fibonacci_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">xint_fibonacci.cpp</a>
+, <a class="el" href="xint__simple_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">xint_simple.cpp</a>
+</li>
+<li>mGen
+: <a class="el" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">random.cpp</a>
+</li>
+<li>mNumber
+: <a class="el" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">random.cpp</a>
+</li>
+<li>mOldState
+: <a class="el" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">exception_blocker.cpp</a>
+</li>
+<li>mPtr
+: <a class="el" href="monty_8cpp.html#a997daa830ee78d2ad1a859d2f71594f6">monty.cpp</a>
+</li>
+<li>mSeeded
+: <a class="el" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">random.cpp</a>
+</li>
+<li>mString
+: <a class="el" href="random_8cpp.html#a53e7e690c68e339c9e7b89593957137a">random.cpp</a>
+</li>
+<li>mTable
+: <a class="el" href="monty_8cpp.html#a68c397b3981dc1bc151f425c0aee31b9">monty.cpp</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>operator!()
+: <a class="el" href="compare_8cpp.html#ac7523d81be85d97950c95f10c17a8c9d">compare.cpp</a>
+, <a class="el" href="xint_8hpp.html#aab9cb2021cb63480542f266a67c50314">xint.hpp</a>
+</li>
+<li>operator!=()
+: <a class="el" href="xint_8hpp.html#a7f95e1c65d52023897d57fac225ba297">xint.hpp</a>
+, <a class="el" href="compare_8cpp.html#ae28b8d9fc3781805e9bb9cfaf0dc01df">compare.cpp</a>
+</li>
+<li>operator%()
+: <a class="el" href="operators_8cpp.html#ab5c9d4bfca6c406876f2317fe4ebdc17">operators.cpp</a>
+, <a class="el" href="xint_8hpp.html#a33c06e966e5497a57df414783f4bd32d">xint.hpp</a>
+</li>
+<li>operator&amp;()
+: <a class="el" href="xint_8hpp.html#a279ea8fa85f56774ecf87a9f70e44986">xint.hpp</a>
+, <a class="el" href="operators_8cpp.html#a279ea8fa85f56774ecf87a9f70e44986">operators.cpp</a>
+</li>
+<li>operator*()
+: <a class="el" href="operators_8cpp.html#a9b5f3e5db8d7dac5c83687433265d679">operators.cpp</a>
+, <a class="el" href="xint_8hpp.html#a17b0f742cf4240f0453ecdc690527f55">xint.hpp</a>
+</li>
+<li>operator+()
+: <a class="el" href="operators_8cpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operators.cpp</a>
+, <a class="el" href="xint_8hpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">xint.hpp</a>
+</li>
+<li>operator-()
+: <a class="el" href="operators_8cpp.html#aed0b4dc3caadb337775cebf4434c9b4a">operators.cpp</a>
+, <a class="el" href="xint_8hpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">xint.hpp</a>
+, <a class="el" href="operators_8cpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operators.cpp</a>
+</li>
+<li>operator/()
+: <a class="el" href="operators_8cpp.html#ade5c31d601a221f90102f09d3985a1b1">operators.cpp</a>
+, <a class="el" href="xint_8hpp.html#a92017cd694e753636affcb05919a7dc2">xint.hpp</a>
+</li>
+<li>operator&lt;()
+: <a class="el" href="compare_8cpp.html#a13bf860274cbfba7049ee1109ef79ece">compare.cpp</a>
+, <a class="el" href="xint_8hpp.html#a2271282006f914e5442f53508f6c5355">xint.hpp</a>
+</li>
+<li>operator&lt;=()
+: <a class="el" href="xint_8hpp.html#aa6909705d9662396b60b7dca7193895c">xint.hpp</a>
+, <a class="el" href="compare_8cpp.html#aab167dd151d36a75704e98361c845e67">compare.cpp</a>
+</li>
+<li>operator==()
+: <a class="el" href="compare_8cpp.html#a8afed82c679c5a4edee2108ddbf24e76">compare.cpp</a>
+, <a class="el" href="xint_8hpp.html#a255c817c8569ac9365878a9476bfe3b3">xint.hpp</a>
+</li>
+<li>operator&gt;()
+: <a class="el" href="xint_8hpp.html#a328006b6ca161372a3cd91ca199a56df">xint.hpp</a>
+, <a class="el" href="compare_8cpp.html#aafe4265378fbdfe8382de5624439cf86">compare.cpp</a>
+</li>
+<li>operator&gt;=()
+: <a class="el" href="compare_8cpp.html#a3e59818919966e38b68c5af625acf65e">compare.cpp</a>
+, <a class="el" href="xint_8hpp.html#a9b081858436ec650e95e857faff0cf4e">xint.hpp</a>
+</li>
+<li>operator^()
+: <a class="el" href="xint_8hpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">xint.hpp</a>
+, <a class="el" href="operators_8cpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">operators.cpp</a>
+</li>
+<li>operator|()
+: <a class="el" href="xint_8hpp.html#ae43c9ba6b179f6336284e00609951c7c">xint.hpp</a>
+, <a class="el" href="operators_8cpp.html#ae43c9ba6b179f6336284e00609951c7c">operators.cpp</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u">- u -</a></h3><ul>
+<li>u1
+: <a class="el" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">gcd.cpp</a>
+</li>
+<li>u2
+: <a class="el" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">gcd.cpp</a>
+</li>
+<li>u3
+: <a class="el" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">gcd.cpp</a>
+</li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/globals_defs.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/globals_defs.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,101 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li class="current">File Members</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li class="current">Defines</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;<ul>
+<li>ddPowerOfTwo
+: <a class="el" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">monty.cpp</a>
+</li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/globals_func.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/globals_func.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,175 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li class="current">File Members</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Defines</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>m</li>
+ <li>o</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
+<li>main()
+: <a class="el" href="xint__fibonacci_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">xint_fibonacci.cpp</a>
+, <a class="el" href="xint__simple_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">xint_simple.cpp</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>operator!()
+: <a class="el" href="compare_8cpp.html#ac7523d81be85d97950c95f10c17a8c9d">compare.cpp</a>
+, <a class="el" href="xint_8hpp.html#aab9cb2021cb63480542f266a67c50314">xint.hpp</a>
+</li>
+<li>operator!=()
+: <a class="el" href="xint_8hpp.html#a7f95e1c65d52023897d57fac225ba297">xint.hpp</a>
+, <a class="el" href="compare_8cpp.html#ae28b8d9fc3781805e9bb9cfaf0dc01df">compare.cpp</a>
+</li>
+<li>operator%()
+: <a class="el" href="operators_8cpp.html#ab5c9d4bfca6c406876f2317fe4ebdc17">operators.cpp</a>
+, <a class="el" href="xint_8hpp.html#a33c06e966e5497a57df414783f4bd32d">xint.hpp</a>
+</li>
+<li>operator&amp;()
+: <a class="el" href="xint_8hpp.html#a279ea8fa85f56774ecf87a9f70e44986">xint.hpp</a>
+, <a class="el" href="operators_8cpp.html#a279ea8fa85f56774ecf87a9f70e44986">operators.cpp</a>
+</li>
+<li>operator*()
+: <a class="el" href="operators_8cpp.html#a9b5f3e5db8d7dac5c83687433265d679">operators.cpp</a>
+, <a class="el" href="xint_8hpp.html#a17b0f742cf4240f0453ecdc690527f55">xint.hpp</a>
+</li>
+<li>operator+()
+: <a class="el" href="operators_8cpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operators.cpp</a>
+, <a class="el" href="xint_8hpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">xint.hpp</a>
+</li>
+<li>operator-()
+: <a class="el" href="operators_8cpp.html#aed0b4dc3caadb337775cebf4434c9b4a">operators.cpp</a>
+, <a class="el" href="xint_8hpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">xint.hpp</a>
+, <a class="el" href="operators_8cpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operators.cpp</a>
+</li>
+<li>operator/()
+: <a class="el" href="operators_8cpp.html#ade5c31d601a221f90102f09d3985a1b1">operators.cpp</a>
+, <a class="el" href="xint_8hpp.html#a92017cd694e753636affcb05919a7dc2">xint.hpp</a>
+</li>
+<li>operator&lt;()
+: <a class="el" href="compare_8cpp.html#a13bf860274cbfba7049ee1109ef79ece">compare.cpp</a>
+, <a class="el" href="xint_8hpp.html#a2271282006f914e5442f53508f6c5355">xint.hpp</a>
+</li>
+<li>operator&lt;=()
+: <a class="el" href="xint_8hpp.html#aa6909705d9662396b60b7dca7193895c">xint.hpp</a>
+, <a class="el" href="compare_8cpp.html#aab167dd151d36a75704e98361c845e67">compare.cpp</a>
+</li>
+<li>operator==()
+: <a class="el" href="compare_8cpp.html#a8afed82c679c5a4edee2108ddbf24e76">compare.cpp</a>
+, <a class="el" href="xint_8hpp.html#a255c817c8569ac9365878a9476bfe3b3">xint.hpp</a>
+</li>
+<li>operator&gt;()
+: <a class="el" href="xint_8hpp.html#a328006b6ca161372a3cd91ca199a56df">xint.hpp</a>
+, <a class="el" href="compare_8cpp.html#aafe4265378fbdfe8382de5624439cf86">compare.cpp</a>
+</li>
+<li>operator&gt;=()
+: <a class="el" href="compare_8cpp.html#a3e59818919966e38b68c5af625acf65e">compare.cpp</a>
+, <a class="el" href="xint_8hpp.html#a9b081858436ec650e95e857faff0cf4e">xint.hpp</a>
+</li>
+<li>operator^()
+: <a class="el" href="xint_8hpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">xint.hpp</a>
+, <a class="el" href="operators_8cpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">operators.cpp</a>
+</li>
+<li>operator|()
+: <a class="el" href="xint_8hpp.html#ae43c9ba6b179f6336284e00609951c7c">xint.hpp</a>
+, <a class="el" href="operators_8cpp.html#ae43c9ba6b179f6336284e00609951c7c">operators.cpp</a>
+</li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/globals_vars.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/globals_vars.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,131 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li class="current">File Members</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>All</li>
+ <li>Functions</li>
+ <li class="current">Variables</li>
+ <li>Defines</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;<ul>
+<li>cSeedMaximumBytes
+: <a class="el" href="random_8cpp.html#a5223229006a12ebbbbdfb70c32f58844">random.cpp</a>
+</li>
+<li>mGen
+: <a class="el" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">random.cpp</a>
+</li>
+<li>mNumber
+: <a class="el" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">random.cpp</a>
+</li>
+<li>mOldState
+: <a class="el" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">exception_blocker.cpp</a>
+</li>
+<li>mPtr
+: <a class="el" href="monty_8cpp.html#a997daa830ee78d2ad1a859d2f71594f6">monty.cpp</a>
+</li>
+<li>mSeeded
+: <a class="el" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">random.cpp</a>
+</li>
+<li>mString
+: <a class="el" href="random_8cpp.html#a53e7e690c68e339c9e7b89593957137a">random.cpp</a>
+</li>
+<li>mTable
+: <a class="el" href="monty_8cpp.html#a68c397b3981dc1bc151f425c0aee31b9">monty.cpp</a>
+</li>
+<li>u1
+: <a class="el" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">gcd.cpp</a>
+</li>
+<li>u2
+: <a class="el" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">gcd.cpp</a>
+</li>
+<li>u3
+: <a class="el" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">gcd.cpp</a>
+</li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/index.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/index.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,91 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li class="current">Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>eXtended Integer library. </h1><p>The Extended Integer (XInt) Library A fast, portable C++ library for multi-precision integer math.</p>
+<p>This is the main header file for the library, and the only one that programs using it should need to include.</p>
+<p>A C++ library that lets your program handle much, much larger integer numbers than the built-in int, long, or even long long types, and handle them using the same syntax that C and C++ use for the standard integer types.</p>
+<p>Completely portable, written entirely in modern C++, with many different types of operating system, compiler, and hardware in mind. It will compile cleanly on many operating systems without any changes, automatically adapting to whatever native integer sizes are available.</p>
+<p>It's fast. Speed of execution takes a back seat to portability, so it doesn't include things like assembly-language modules to wring every last CPU cycle out of it -- but it's still pretty darn fast.</p>
+<p>Features you need. Modular arithmetic. Bit manipulation functions. Cryptographically-secure random and prime number generation. A friendly and intuitive interface. An option for thread-safe operation.</p>
+<p>It has the Boost Software License, Version 1.0. at http://www.boost.org/LICENSE_1_0.txt</p>
+<p>Documentation in full as html is at https://svn.boost.org/svn/boost/sandbox/xint/libs/xint/doc/html/index/html</p>
+<p>and a pdf version is also available. </p>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/integer_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/integer_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,100 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/integer.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+<code>#include &quot;../xint_data_t.hpp&quot;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/integer_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/integer_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,308 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/integer.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the definitions for the integer member functions.</span>
+<a name="l00012"></a>00012 <span class="comment">*/</span>
+<a name="l00013"></a>00013
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../xint_data_t.hpp&quot;</span>
+<a name="l00016"></a>00016
+<a name="l00017"></a>00017 <span class="keyword">namespace </span>xint {
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019 <span class="keyword">const</span> integer *<a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">integer::cZero</a>=0, *<a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">integer::cOne</a>=0;
+<a name="l00020"></a>00020 <span class="keyword">const</span> std::string <a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">detail::nan_text</a>(<span class="stringliteral">&quot;#NaN#&quot;</span>);
+<a name="l00021"></a>00021
+<a name="l00022"></a><a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">00022</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer::integer</a>() {
+<a name="l00023"></a>00023 <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>();
+<a name="l00024"></a>00024 }
+<a name="l00025"></a>00025
+<a name="l00026"></a><a class="code" href="classxint_1_1integer.html#aa123fb47accd778f87e2866c9d986bb7">00026</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer::integer</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; b) {
+<a name="l00027"></a>00027 <span class="keywordflow">if</span> (b.<a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a>()) <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=0;
+<a name="l00028"></a>00028 <span class="keywordflow">else</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(b);
+<a name="l00029"></a>00029 }
+<a name="l00030"></a>00030
+<a name="l00031"></a><a class="code" href="classxint_1_1integer.html#a6dfc86dfc539cfda1062ef1bc24aa526">00031</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer::integer</a>(<span class="keyword">const</span> std::string&amp; str, <span class="keywordtype">size_t</span> base) {
+<a name="l00032"></a>00032 <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<a class="code" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">from_string</a>(str, base));
+<a name="l00033"></a>00033 }
+<a name="l00034"></a>00034
+<a name="l00035"></a><a class="code" href="classxint_1_1integer.html#a1211c9298c3281815bc9b709439d031a">00035</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer::integer</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>&amp;) {
+<a name="l00036"></a>00036 <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=0;
+<a name="l00037"></a>00037 }
+<a name="l00038"></a>00038
+<a name="l00039"></a><a class="code" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">00039</a> <a class="code" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">integer::~integer</a>() {
+<a name="l00040"></a>00040 <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a>();
+<a name="l00041"></a>00041 }
+<a name="l00042"></a>00042
+<a name="l00043"></a><a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">00043</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">integer::_init</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> init) {
+<a name="l00044"></a>00044 <span class="keywordflow">try</span> {
+<a name="l00045"></a>00045 <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=<span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a>(init);
+<a name="l00046"></a>00046 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
+<a name="l00047"></a>00047 <span class="keywordflow">throw</span> std::overflow_error(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
+<a name="l00048"></a>00048 }
+<a name="l00049"></a>00049 <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
+<a name="l00050"></a>00050 }
+<a name="l00051"></a>00051
+<a name="l00052"></a><a class="code" href="classxint_1_1integer.html#adaaff26c817fec0bef3cf903773e3f7b">00052</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">integer::_init</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &amp;c) {
+<a name="l00053"></a>00053 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
+<a name="l00054"></a>00054 <span class="preprocessor"></span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=(c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a> ? <span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>(c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>) : 0);
+<a name="l00055"></a>00055 <span class="preprocessor"> #else</span>
+<a name="l00056"></a>00056 <span class="preprocessor"></span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>;
+<a name="l00057"></a>00057 <span class="preprocessor"> #endif</span>
+<a name="l00058"></a>00058 <span class="preprocessor"></span> <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
+<a name="l00059"></a>00059 }
+<a name="l00060"></a>00060
+<a name="l00061"></a><a class="code" href="classxint_1_1integer.html#aed205d80e7b1a495a2d67abde5c406e8">00061</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">integer::_init</a>(boost::uintmax_t n) {
+<a name="l00062"></a>00062 <span class="keyword">static</span> <span class="keywordtype">int</span> bits=std::numeric_limits&lt;boost::uintmax_t&gt;::digits;
+<a name="l00063"></a>00063 <span class="keyword">static</span> <span class="keywordtype">int</span> maxDigits=(bits+<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">detail::bits_per_digit</a>-1)/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">detail::bits_per_digit</a>;
+<a name="l00064"></a>00064
+<a name="l00065"></a>00065 <span class="keywordflow">try</span> {
+<a name="l00066"></a>00066 <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=<span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a>;
+<a name="l00067"></a>00067 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
+<a name="l00068"></a>00068 <span class="keywordflow">throw</span> std::overflow_error(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
+<a name="l00069"></a>00069 }
+<a name="l00070"></a>00070 <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
+<a name="l00071"></a>00071
+<a name="l00072"></a>00072 <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(maxDigits);
+<a name="l00073"></a>00073 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x=0; n != 0; ++x) {
+<a name="l00074"></a>00074 <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]=<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a>(n &amp; <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">detail::digit_mask</a>);
+<a name="l00075"></a>00075 n &gt;&gt;= <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">detail::bits_per_digit</a>;
+<a name="l00076"></a>00076 }
+<a name="l00077"></a>00077 <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079
+<a name="l00080"></a><a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">00080</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">integer::_attach</a>() {
+<a name="l00081"></a>00081 <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>) <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">attach</a>();
+<a name="l00082"></a>00082 }
+<a name="l00083"></a>00083
+<a name="l00084"></a><a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">00084</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">integer::_detach</a>() {
+<a name="l00085"></a>00085 <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a> &amp;&amp; <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">detach</a>()) <span class="keyword">delete</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>;
+<a name="l00086"></a>00086 }
+<a name="l00087"></a>00087
+<a name="l00088"></a><a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">00088</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">integer::_make_unique</a>() {
+<a name="l00089"></a>00089 <span class="keywordflow">try</span> {
+<a name="l00090"></a>00090 <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a> &amp;&amp; <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a> &gt; 1) {
+<a name="l00091"></a>00091 <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *newstore=<span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a>(<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>);
+<a name="l00092"></a>00092 <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a>();
+<a name="l00093"></a>00093 <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=newstore;
+<a name="l00094"></a>00094 <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
+<a name="l00095"></a>00095 }
+<a name="l00096"></a>00096 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
+<a name="l00097"></a>00097 <span class="keywordflow">throw</span> std::overflow_error(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
+<a name="l00098"></a>00098 }
+<a name="l00099"></a>00099 }
+<a name="l00100"></a>00100
+<a name="l00101"></a><a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">00101</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">integer::_set_negative</a>(<span class="keywordtype">bool</span> negative) {
+<a name="l00102"></a>00102 <span class="keywordflow">if</span> (negative != (<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() &lt; 0)) *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">negate</a>(*<span class="keyword">this</span>);
+<a name="l00103"></a>00103 }
+<a name="l00104"></a>00104
+<a name="l00105"></a><a class="code" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">00105</a> <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">integer::odd</a>()<span class="keyword"> const </span>{
+<a name="l00106"></a>00106 <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00107"></a>00107 <span class="keywordflow">return</span> ((<a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(0) &amp; 0x01)==1);
+<a name="l00108"></a>00108 }
+<a name="l00109"></a>00109
+<a name="l00110"></a><a class="code" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">00110</a> <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">integer::even</a>()<span class="keyword"> const </span>{
+<a name="l00111"></a>00111 <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00112"></a>00112 <span class="keywordflow">return</span> ((<a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(0) &amp; 0x01)==0);
+<a name="l00113"></a>00113 }
+<a name="l00114"></a>00114
+<a name="l00115"></a><a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">00115</a> <span class="keywordtype">int</span> <a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">integer::sign</a>()<span class="keyword"> const </span>{
+<a name="l00116"></a>00116 <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00117"></a>00117 <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>) <span class="keywordflow">return</span> -1;
+<a name="l00118"></a>00118 <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>()==1 &amp;&amp; <a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(0)==0) <span class="keywordflow">return</span> 0;
+<a name="l00119"></a>00119 <span class="keywordflow">return</span> 1;
+<a name="l00120"></a>00120 }
+<a name="l00121"></a>00121
+<a name="l00122"></a><a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">00122</a> <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">integer::nan</a>()<span class="keyword"> const </span>{
+<a name="l00123"></a>00123 <span class="keywordflow">return</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>==0);
+<a name="l00124"></a>00124 }
+<a name="l00125"></a>00125
+<a name="l00126"></a><a class="code" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">00126</a> <span class="keywordtype">size_t</span> <a class="code" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">integer::hex_digits</a>()<span class="keyword"> const </span>{
+<a name="l00127"></a>00127 <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00128"></a>00128 <span class="keywordtype">size_t</span> bits=<a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(*<span class="keyword">this</span>);
+<a name="l00129"></a>00129 <span class="keywordflow">return</span> (bits+3)/4; <span class="comment">// Four bits per hex digit, rounded up</span>
+<a name="l00130"></a>00130 }
+<a name="l00131"></a>00131
+<a name="l00132"></a><a class="code" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">00132</a> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">integer::operator+=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; addend) {
+<a name="l00133"></a>00133 <span class="keywordflow">if</span> ((<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() &lt; 0) == (addend.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() &lt; 0)
+<a name="l00134"></a>00134 &amp;&amp; <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> &gt;= addend.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>)
+<a name="l00135"></a>00135 {
+<a name="l00136"></a>00136 <span class="comment">// Fast in-place add</span>
+<a name="l00137"></a>00137 <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
+<a name="l00138"></a>00138 <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">add</a>(addend.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>);
+<a name="l00139"></a>00139 } <span class="keywordflow">else</span> {
+<a name="l00140"></a>00140 <span class="comment">// This works for all cases</span>
+<a name="l00141"></a>00141 *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">add</a>(*<span class="keyword">this</span>, addend);
+<a name="l00142"></a>00142 }
+<a name="l00143"></a>00143 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00144"></a>00144 }
+<a name="l00145"></a>00145
+<a name="l00146"></a><a class="code" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">00146</a> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">integer::operator-=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; subtrahend) {
+<a name="l00147"></a>00147 <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() &gt;= 0 &amp;&amp; subtrahend.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() &gt;= 0 &amp;&amp; *<span class="keyword">this</span> &gt;= subtrahend) {
+<a name="l00148"></a>00148 <span class="comment">// Fast in-place subtract</span>
+<a name="l00149"></a>00149 <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
+<a name="l00150"></a>00150 <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">subtract</a>(subtrahend.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>);
+<a name="l00151"></a>00151 } <span class="keywordflow">else</span> {
+<a name="l00152"></a>00152 <span class="comment">// This works for all cases</span>
+<a name="l00153"></a>00153 *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(*<span class="keyword">this</span>, subtrahend);
+<a name="l00154"></a>00154 }
+<a name="l00155"></a>00155 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00156"></a>00156 }
+<a name="l00157"></a>00157
+<a name="l00158"></a><a class="code" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">00158</a> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">integer::operator=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &amp;c) {
+<a name="l00159"></a>00159 <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a>();
+<a name="l00160"></a>00160 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
+<a name="l00161"></a>00161 <span class="preprocessor"></span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=(c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a> ? <span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>(c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>) : 0);
+<a name="l00162"></a>00162 <span class="preprocessor"> #else</span>
+<a name="l00163"></a>00163 <span class="preprocessor"></span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>;
+<a name="l00164"></a>00164 <span class="preprocessor"> #endif</span>
+<a name="l00165"></a>00165 <span class="preprocessor"></span> <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
+<a name="l00166"></a>00166 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00167"></a>00167 }
+<a name="l00168"></a>00168
+<a name="l00169"></a><a class="code" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">00169</a> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">integer::operator*=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; b) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">multiply</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00170"></a><a class="code" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">00170</a> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">integer::operator/=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; b) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">divide</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00171"></a><a class="code" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">00171</a> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">integer::operator%=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; b) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">mod</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00172"></a>00172
+<a name="l00173"></a><a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">00173</a> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">integer::operator++</a>() { *<span class="keyword">this</span> += <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">one</a>(); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00174"></a><a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">00174</a> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">integer::operator--</a>() { *<span class="keyword">this</span> -= <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">one</a>(); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00175"></a><a class="code" href="classxint_1_1integer.html#a79624fb580bdb2ba19fe13223c801c25">00175</a> <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">integer::operator++</a>(<span class="keywordtype">int</span>) { <a class="code" href="classxint_1_1integer.html">integer</a> s=*<span class="keyword">this</span>; *<span class="keyword">this</span> += <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">one</a>(); <span class="keywordflow">return</span> s; }
+<a name="l00176"></a><a class="code" href="classxint_1_1integer.html#a40ff1ffeda1df544b8bcd907f76d93cd">00176</a> <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">integer::operator--</a>(<span class="keywordtype">int</span>) { <a class="code" href="classxint_1_1integer.html">integer</a> s=*<span class="keyword">this</span>; *<span class="keyword">this</span> -= <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">one</a>(); <span class="keywordflow">return</span> s; }
+<a name="l00177"></a>00177
+<a name="l00178"></a><a class="code" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">00178</a> <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">integer::operator&lt;&lt;</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">shift_left</a>(*<span class="keyword">this</span>, shift); }
+<a name="l00179"></a><a class="code" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">00179</a> <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">integer::operator&gt;&gt;</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">shift_right</a>(*<span class="keyword">this</span>, shift); }
+<a name="l00180"></a><a class="code" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">00180</a> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">integer::operator&amp;=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">bitwise_and</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00181"></a><a class="code" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">00181</a> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">integer::operator|=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">bitwise_or</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00182"></a><a class="code" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">00182</a> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">integer::operator^=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">bitwise_xor</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00183"></a>00183
+<a name="l00184"></a><a class="code" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">00184</a> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">integer::operator&lt;&lt;=</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>) {
+<a name="l00185"></a>00185 <span class="keywordflow">if</span> (shift&gt;0) {
+<a name="l00186"></a>00186 <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
+<a name="l00187"></a>00187 <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">shift_left</a>(shift);
+<a name="l00188"></a>00188 }
+<a name="l00189"></a>00189 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00190"></a>00190 }
+<a name="l00191"></a>00191
+<a name="l00192"></a><a class="code" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">00192</a> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">integer::operator&gt;&gt;=</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>) {
+<a name="l00193"></a>00193 <span class="keywordflow">if</span> (shift&gt;0) {
+<a name="l00194"></a>00194 <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
+<a name="l00195"></a>00195 <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">shift_right</a>(shift);
+<a name="l00196"></a>00196 }
+<a name="l00197"></a>00197 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00198"></a>00198 }
+<a name="l00199"></a>00199
+<a name="l00200"></a><a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">00200</a> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>() {
+<a name="l00201"></a>00201 <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a>==0) <a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a>=<span class="keyword">new</span> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer</a>(0);
+<a name="l00202"></a>00202 <span class="keywordflow">return</span> *<a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a>;
+<a name="l00203"></a>00203 }
+<a name="l00204"></a>00204
+<a name="l00205"></a><a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">00205</a> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>() {
+<a name="l00206"></a>00206 <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a>==0) <a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a>=<span class="keyword">new</span> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer</a>(1);
+<a name="l00207"></a>00207 <span class="keywordflow">return</span> *<a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a>;
+<a name="l00208"></a>00208 }
+<a name="l00209"></a>00209
+<a name="l00210"></a><a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">00210</a> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> <a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">integer::_get_digit</a>(<span class="keywordtype">size_t</span> index)<span class="keyword"> const </span>{
+<a name="l00211"></a>00211 <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[index];
+<a name="l00212"></a>00212 }
+<a name="l00213"></a>00213
+<a name="l00214"></a><a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">00214</a> <span class="keywordtype">size_t</span> <a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">integer::_get_length</a>()<span class="keyword"> const </span>{
+<a name="l00215"></a>00215 <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00216"></a>00216 }
+<a name="l00217"></a>00217
+<a name="l00218"></a><a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">00218</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">integer::_throw_if_nan</a>()<span class="keyword"> const </span>{
+<a name="l00219"></a>00219 <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a>()) <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>();
+<a name="l00220"></a>00220 }
+<a name="l00221"></a>00221
+<a name="l00222"></a>00222 } <span class="comment">// namespace xint</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/misc_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/misc_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,103 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/misc.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd">xint::opt_secure_mode</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad55aa4d44083238d9ec313511f5b1dfa">xint::opt_thread_safe</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">xint::log2</a> (const integer &amp;n)</td></tr>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/misc_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/misc_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,134 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/misc.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the definitions for functions that don&#39;t fall into any</span>
+<a name="l00012"></a>00012 <span class="comment"> of the other categories.</span>
+<a name="l00013"></a>00013 <span class="comment">*/</span>
+<a name="l00014"></a>00014
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00016"></a>00016
+<a name="l00017"></a>00017 <span class="keyword">namespace </span>xint {
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd">opt_secure_mode</a>() {
+<a name="l00020"></a>00020 <span class="preprocessor"> #ifdef XINT_SECURE</span>
+<a name="l00021"></a>00021 <span class="preprocessor"></span> <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00022"></a>00022 <span class="preprocessor"> #else</span>
+<a name="l00023"></a>00023 <span class="preprocessor"></span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00024"></a>00024 <span class="preprocessor"> #endif</span>
+<a name="l00025"></a>00025 <span class="preprocessor"></span>}
+<a name="l00026"></a>00026
+<a name="l00027"></a>00027 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ad55aa4d44083238d9ec313511f5b1dfa">opt_thread_safe</a>() {
+<a name="l00028"></a>00028 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span> <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00030"></a>00030 <span class="preprocessor"> #else</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00032"></a>00032 <span class="preprocessor"> #endif</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span>}
+<a name="l00034"></a>00034
+<a name="l00035"></a>00035 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00036"></a>00036 n._throw_if_nan();
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038 <span class="keywordtype">size_t</span> r=<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">detail::bits_per_digit</a> * n._get_length();
+<a name="l00039"></a>00039 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> mask=<a class="code" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">detail::digit_hibit</a>, d=n._get_digit(n._get_length()-1);
+<a name="l00040"></a>00040 <span class="keywordflow">while</span> (mask!=0) {
+<a name="l00041"></a>00041 <span class="keywordflow">if</span> ((mask &amp; d)!=0) <span class="keywordflow">break</span>;
+<a name="l00042"></a>00042 mask&gt;&gt;=1;
+<a name="l00043"></a>00043 --r;
+<a name="l00044"></a>00044 }
+<a name="l00045"></a>00045 <span class="keywordflow">return</span> r;
+<a name="l00046"></a>00046 }
+<a name="l00047"></a>00047
+<a name="l00048"></a>00048 } <span class="comment">// namespace xint</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/modular_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/modular_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,105 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/modular.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+<code>#include &quot;<a class="el" href="modular_8cpp_source.html">../xint_monty.hpp</a>&quot;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">xint::mod</a> (const integer &amp;n, const integer &amp;modBy)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a67ad0747617ca6e780d6f67d60260450">xint::mulmod</a> (const integer &amp;n, const integer &amp;by, const integer &amp;modulus)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a594bd29593aad9a1c047af22e91e749c">xint::sqrmod</a> (const integer &amp;n, const integer &amp;modulus)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a1f8b43b537ff9de1d5612ed228a8fbe1">xint::powmod</a> (const integer &amp;n, const integer &amp;exponent, const integer &amp;modulus, bool noMontgomery)</td></tr>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/modular_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/modular_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,161 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/modular.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the basic modular math functions, except invmod, which</span>
+<a name="l00012"></a>00012 <span class="comment"> is in gcd.cpp to share gcd_core.</span>
+<a name="l00013"></a>00013 <span class="comment">*/</span>
+<a name="l00014"></a>00014
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include &quot;../xint_monty.hpp&quot;</span>
+<a name="l00017"></a>00017
+<a name="l00018"></a>00018 <span class="keyword">namespace </span>xint {
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020 integer <a class="code" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">mod</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; modBy) {
+<a name="l00021"></a>00021 integer r=<a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">divide_r</a>(n, modBy).second;
+<a name="l00022"></a>00022 <span class="keywordflow">if</span> (r.sign() &lt; 0) r+=<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(modBy);
+<a name="l00023"></a>00023 <span class="keywordflow">return</span> r;
+<a name="l00024"></a>00024 }
+<a name="l00025"></a>00025
+<a name="l00026"></a>00026 integer <a class="code" href="namespacexint.html#a67ad0747617ca6e780d6f67d60260450">mulmod</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; by, <span class="keyword">const</span> integer&amp; modulus) {
+<a name="l00027"></a>00027 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">mod</a>(n * by, modulus);
+<a name="l00028"></a>00028 }
+<a name="l00029"></a>00029
+<a name="l00030"></a>00030 integer <a class="code" href="namespacexint.html#a594bd29593aad9a1c047af22e91e749c">sqrmod</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; modulus) {
+<a name="l00031"></a>00031 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">mod</a>(<a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">sqr</a>(n), modulus);
+<a name="l00032"></a>00032 }
+<a name="l00033"></a>00033
+<a name="l00034"></a>00034 integer <a class="code" href="namespacexint.html#a1f8b43b537ff9de1d5612ed228a8fbe1">powmod</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; exponent, <span class="keyword">const</span> integer&amp;
+<a name="l00035"></a>00035 modulus, <span class="keywordtype">bool</span> noMontgomery)
+<a name="l00036"></a>00036 {
+<a name="l00037"></a>00037 <span class="keywordflow">if</span> (modulus &lt; <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>()) {
+<a name="l00038"></a>00038 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus();
+<a name="l00039"></a>00039 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00040"></a>00040 }
+<a name="l00041"></a>00041 <span class="keywordflow">if</span> (exponent.sign()==0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>();
+<a name="l00042"></a>00042
+<a name="l00043"></a>00043 <span class="keywordtype">bool</span> neg=(n.sign() &lt; 0 &amp;&amp; exponent.odd());
+<a name="l00044"></a>00044
+<a name="l00045"></a>00045 integer answer(<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>());
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 <span class="comment">// Montgomery&#39;s method is often noticeably faster, but only works if the</span>
+<a name="l00048"></a>00048 <span class="comment">// modulus is odd.</span>
+<a name="l00049"></a>00049 <span class="keywordflow">if</span> (modulus.odd() &amp;&amp; !noMontgomery) {
+<a name="l00050"></a>00050 answer=<a class="code" href="namespacexint.html#a7d7e8604c467bc007820c60e1bc21626">montgomeryPowerMod</a>(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(n) % modulus, <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(exponent), modulus);
+<a name="l00051"></a>00051 } <span class="keywordflow">else</span> {
+<a name="l00052"></a>00052 integer p(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(n));
+<a name="l00053"></a>00053
+<a name="l00054"></a>00054 <span class="keywordtype">int</span> length=exponent._get_length(), lastBitCount=0;
+<a name="l00055"></a>00055 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> ee(exponent._get_digit(length-1));
+<a name="l00056"></a>00056 <span class="keywordflow">while</span> (ee != 0) { ee &gt;&gt;= 1; ++lastBitCount; }
+<a name="l00057"></a>00057
+<a name="l00058"></a>00058 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> eIndex=0; eIndex &lt; length; ++eIndex) {
+<a name="l00059"></a>00059 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> e(exponent._get_digit(eIndex));
+<a name="l00060"></a>00060
+<a name="l00061"></a>00061 <span class="keywordtype">int</span> bitCount(eIndex == length-1 ? lastBitCount :
+<a name="l00062"></a>00062 <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">detail::bits_per_digit</a>);
+<a name="l00063"></a>00063 <span class="keywordflow">while</span> (bitCount-- &gt; 0) {
+<a name="l00064"></a>00064 <span class="keywordflow">if</span> (e &amp; 0x01) answer=<a class="code" href="namespacexint.html#a67ad0747617ca6e780d6f67d60260450">mulmod</a>(answer, p, modulus);
+<a name="l00065"></a>00065 p=<a class="code" href="namespacexint.html#a594bd29593aad9a1c047af22e91e749c">sqrmod</a>(p, modulus);
+<a name="l00066"></a>00066 e &gt;&gt;= 1;
+<a name="l00067"></a>00067 }
+<a name="l00068"></a>00068 }
+<a name="l00069"></a>00069 }
+<a name="l00070"></a>00070
+<a name="l00071"></a>00071 answer._set_negative(neg);
+<a name="l00072"></a>00072 <span class="keywordflow">return</span> answer;
+<a name="l00073"></a>00073 }
+<a name="l00074"></a>00074
+<a name="l00075"></a>00075 } <span class="comment">// namespace xint</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/monty_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/monty_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,162 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/monty.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+<code>#include &quot;../xint_data_t.hpp&quot;</code><br/>
+<code>#include &lt;vector&gt;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(p)&nbsp;&nbsp;&nbsp;(doubledigit_t(1) &lt;&lt; p)</td></tr>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">digit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afd561fd7c7631267fbc7e5c75c2bde71">xint::inverse0</a> (const integer &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b">xint::montgomeryR</a> (const integer &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab8e85cd5425fcec419c07155e2a91e13">xint::toMontgomeryForm</a> (const integer &amp;n, const integer &amp;m)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a93ed16c5350b34ca22108e48b51918a5">xint::fromMontgomeryForm</a> (const integer &amp;n, const integer &amp;m)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">xint::montgomeryMultiplyMod</a> (const integer &amp;a, const integer &amp;b, const integer &amp;n, digit_t nPrime0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7d7e8604c467bc007820c60e1bc21626">xint::montgomeryPowerMod</a> (const integer &amp;a, const integer &amp;e, const integer &amp;n)</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a5e044fcc16f6eb5e891ef312f47209ac"></a><!-- doxytag: member="monty.cpp::ddPowerOfTwo" ref="a5e044fcc16f6eb5e891ef312f47209ac" args="(p)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ddPowerOfTwo</td>
+ <td>(</td>
+ <td class="paramtype">p&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td>&nbsp;&nbsp;&nbsp;(doubledigit_t(1) &lt;&lt; p)</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="monty_8cpp_source.html#l00112">112</a> of file <a class="el" href="monty_8cpp_source.html">monty.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="a997daa830ee78d2ad1a859d2f71594f6"></a><!-- doxytag: member="monty.cpp::mPtr" ref="a997daa830ee78d2ad1a859d2f71594f6" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TUTable* <a class="el" href="monty_8cpp.html#a997daa830ee78d2ad1a859d2f71594f6">mPtr</a><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="monty_8cpp_source.html#l00148">148</a> of file <a class="el" href="monty_8cpp_source.html">monty.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a68c397b3981dc1bc151f425c0aee31b9"></a><!-- doxytag: member="monty.cpp::mTable" ref="a68c397b3981dc1bc151f425c0aee31b9" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">value_t* <a class="el" href="monty_8cpp.html#a68c397b3981dc1bc151f425c0aee31b9">mTable</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="monty_8cpp_source.html#l00150">150</a> of file <a class="el" href="monty_8cpp_source.html">monty.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/monty_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/monty_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,354 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/monty.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the definitions for functions based on the Montgomery</span>
+<a name="l00012"></a>00012 <span class="comment"> reduction. Used for an extra-fast powerMod.</span>
+<a name="l00013"></a>00013 <span class="comment">*/</span>
+<a name="l00014"></a>00014
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include &quot;../xint_data_t.hpp&quot;</span>
+<a name="l00017"></a>00017
+<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020 <span class="keyword">namespace </span>xint {
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 <span class="keyword">using namespace </span>detail;
+<a name="l00023"></a>00023
+<a name="l00024"></a>00024 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> <a class="code" href="namespacexint.html#afd561fd7c7631267fbc7e5c75c2bde71">inverse0</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00025"></a>00025 <span class="comment">// Using the Dussé and Kalisk simplification</span>
+<a name="l00026"></a>00026 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> x = 2, y = 1;
+<a name="l00027"></a>00027 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> n0 = n._get_digit(0);
+<a name="l00028"></a>00028 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 2; i &lt;= <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>; ++i, x &lt;&lt;= 1)
+<a name="l00029"></a>00029 <span class="keywordflow">if</span> (x &lt; ((n0 * y) &amp; ((x &lt;&lt; 1) - 1)))
+<a name="l00030"></a>00030 y += x;
+<a name="l00031"></a>00031 <span class="keywordflow">return</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(x - y);
+<a name="l00032"></a>00032 }
+<a name="l00033"></a>00033
+<a name="l00034"></a>00034 integer <a class="code" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b">montgomeryR</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00035"></a>00035 <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>() &lt;&lt; (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * n._get_data()-&gt;mLength);
+<a name="l00036"></a>00036 }
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038 integer <a class="code" href="namespacexint.html#ab8e85cd5425fcec419c07155e2a91e13">toMontgomeryForm</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m) {
+<a name="l00039"></a>00039 <span class="keywordflow">return</span> (n * <a class="code" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b">montgomeryR</a>(m) % m);
+<a name="l00040"></a>00040 }
+<a name="l00041"></a>00041
+<a name="l00042"></a>00042 integer <a class="code" href="namespacexint.html#a93ed16c5350b34ca22108e48b51918a5">fromMontgomeryForm</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m) {
+<a name="l00043"></a>00043 integer inv=<a class="code" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">invmod</a>(<a class="code" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b">montgomeryR</a>(m), m);
+<a name="l00044"></a>00044 <span class="keywordflow">if</span> (inv.nan()) {
+<a name="l00045"></a>00045 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus(<span class="stringliteral">&quot;modulus has no inverse&quot;</span>);
+<a name="l00046"></a>00046 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00047"></a>00047 }
+<a name="l00048"></a>00048 <span class="keywordflow">return</span> (n * inv % m);
+<a name="l00049"></a>00049 }
+<a name="l00050"></a>00050
+<a name="l00051"></a>00051 <span class="comment">//integer montgomeryReduction(const integer&amp; m, const integer&amp; mPrime, const</span>
+<a name="l00052"></a>00052 <span class="comment">// integer&amp; T)</span>
+<a name="l00053"></a>00053 <span class="comment">//{</span>
+<a name="l00054"></a>00054 <span class="comment">// // Unstated parameter b is digit_overflowbit, a power of 2</span>
+<a name="l00055"></a>00055 <span class="comment">// // Unstated parameter n is m.data-&gt;mLength</span>
+<a name="l00056"></a>00056 <span class="comment">// // Unstated parameter R is b^n</span>
+<a name="l00057"></a>00057 <span class="comment">// // gcd(m, b)==1, or in other words, m must be an odd number</span>
+<a name="l00058"></a>00058 <span class="comment">// // m&#39;=-m^(-1) mod b (precalculated)</span>
+<a name="l00059"></a>00059 <span class="comment">// // T is any arbitrary number greater than zero and &lt;= m*R</span>
+<a name="l00060"></a>00060 <span class="comment">//</span>
+<a name="l00061"></a>00061 <span class="comment">// int n=m._get_data()-&gt;mLength;</span>
+<a name="l00062"></a>00062 <span class="comment">// doubledigit_t mprime = mPrime._get_data()-&gt;digits[0];</span>
+<a name="l00063"></a>00063 <span class="comment">//</span>
+<a name="l00064"></a>00064 <span class="comment">// integer A(T);</span>
+<a name="l00065"></a>00065 <span class="comment">// for (int i=0; i &lt; n; ++i) {</span>
+<a name="l00066"></a>00066 <span class="comment">// integer ui((A._get_data()-&gt;digits[i] * mprime) &amp; digit_mask);</span>
+<a name="l00067"></a>00067 <span class="comment">// ui &lt;&lt;= (bits_per_digit * i); // Fast-multiply by b^i</span>
+<a name="l00068"></a>00068 <span class="comment">// A+=(ui*m);</span>
+<a name="l00069"></a>00069 <span class="comment">// }</span>
+<a name="l00070"></a>00070 <span class="comment">// A &gt;&gt;= (bits_per_digit * n); // Fast-divide by b^n</span>
+<a name="l00071"></a>00071 <span class="comment">// if (A &gt;= m) A -= m;</span>
+<a name="l00072"></a>00072 <span class="comment">// return A;</span>
+<a name="l00073"></a>00073 <span class="comment">//}</span>
+<a name="l00074"></a>00074
+<a name="l00075"></a>00075 integer <a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">montgomeryMultiplyMod</a>(<span class="keyword">const</span> integer&amp; a, <span class="keyword">const</span> integer&amp; b, <span class="keyword">const</span> integer&amp; n,
+<a name="l00076"></a>00076 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> nPrime0)
+<a name="l00077"></a>00077 {
+<a name="l00078"></a>00078 <span class="comment">// Using the Dussé and Kalisk simplification</span>
+<a name="l00079"></a>00079 <span class="comment">// Unstated parameter B is a power of two representing the number of values</span>
+<a name="l00080"></a>00080 <span class="comment">// that a single digit can hold, i.e. digit_overflowbit</span>
+<a name="l00081"></a>00081 <span class="comment">// Unstated parameter L is the number of digits in the modulus, i.e.</span>
+<a name="l00082"></a>00082 <span class="comment">// n._get_length()</span>
+<a name="l00083"></a>00083 <span class="comment">// Unstated parameter r is B^L</span>
+<a name="l00084"></a>00084 <span class="comment">// nPrime0 is nPrime mod B, or digit zero of nPrime</span>
+<a name="l00085"></a>00085
+<a name="l00086"></a>00086 <span class="keyword">const</span> integer B(<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>);
+<a name="l00087"></a>00087 <span class="keyword">const</span> <span class="keywordtype">int</span> L(n._get_length()), L1(L-1);
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 integer t=a*b;
+<a name="l00090"></a>00090 <span class="keywordtype">int</span> i=0;
+<a name="l00091"></a>00091
+<a name="l00092"></a>00092 <span class="keywordflow">do</span> {
+<a name="l00093"></a>00093 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> mi=<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(t._get_digit(i))*nPrime0);
+<a name="l00094"></a>00094 t += (n * mi) &lt;&lt; (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * i);
+<a name="l00095"></a>00095 } <span class="keywordflow">while</span> (++i &lt;= L1);
+<a name="l00096"></a>00096
+<a name="l00097"></a>00097 t &gt;&gt;= (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * L); <span class="comment">// Fast divide by r</span>
+<a name="l00098"></a>00098 <span class="keywordflow">return</span> (t &gt;= n ? t - n : t);
+<a name="l00099"></a>00099 }
+<a name="l00100"></a>00100
+<a name="l00101"></a>00101 <span class="keyword">namespace </span>{
+<a name="l00102"></a>00102
+<a name="l00103"></a>00103 <span class="comment">// cMaxK sets the balance between memory/precalculations required and the number</span>
+<a name="l00104"></a>00104 <span class="comment">// of calculations required for an exponentiation. Increasing it can only reduce</span>
+<a name="l00105"></a>00105 <span class="comment">// the calculations by a small amount, whereas it increases the memory</span>
+<a name="l00106"></a>00106 <span class="comment">// requirements and number of precalculations by an exponential amount. 8</span>
+<a name="l00107"></a>00107 <span class="comment">// provides a good balance.</span>
+<a name="l00108"></a>00108 <span class="keyword">const</span> <span class="keywordtype">size_t</span> cMaxK=8;
+<a name="l00109"></a>00109 <span class="keyword">typedef</span> boost::uint_t&lt;cMaxK&gt;::fast kbitdigit_t; <span class="comment">// k bits have to fit into it</span>
+<a name="l00110"></a>00110 <span class="keyword">typedef</span> std::vector&lt;kbitdigit_t&gt; vkbitdigit_t;
+<a name="l00111"></a>00111 <span class="keyword">typedef</span> std::vector&lt;integer&gt; vxint_t;
+<a name="l00112"></a><a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">00112</a> <span class="preprocessor">#define ddPowerOfTwo(p) (doubledigit_t(1) &lt;&lt; p)</span>
+<a name="l00113"></a>00113 <span class="preprocessor"></span>
+<a name="l00114"></a>00114 <span class="comment">// The splitIntoKBitDigits function assumes that cMaxK &lt;= bits_per_digit+1,</span>
+<a name="l00115"></a>00115 <span class="comment">// it won&#39;t work properly if it isn&#39;t.</span>
+<a name="l00116"></a>00116 BOOST_STATIC_ASSERT(cMaxK &lt;= <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>+1);
+<a name="l00117"></a>00117
+<a name="l00118"></a>00118 <span class="keyword">class </span>TUTable {
+<a name="l00119"></a>00119 <span class="keyword">public</span>:
+<a name="l00120"></a>00120 <span class="keyword">typedef</span> std::pair&lt;int, int&gt; value_t;
+<a name="l00121"></a>00121
+<a name="l00122"></a>00122 <span class="keyword">const</span> value_t&amp; operator[](<span class="keywordtype">size_t</span> x)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="monty_8cpp.html#a68c397b3981dc1bc151f425c0aee31b9">mTable</a>[x]; }
+<a name="l00123"></a>00123
+<a name="l00124"></a>00124 <span class="keyword">static</span> <span class="keyword">const</span> TUTable&amp; <span class="keyword">get</span>() {
+<a name="l00125"></a>00125 <span class="comment">// Construct a singleton instance on demand</span>
+<a name="l00126"></a>00126 <span class="keywordflow">if</span> (<a class="code" href="monty_8cpp.html#a997daa830ee78d2ad1a859d2f71594f6">mPtr</a>==0) <a class="code" href="monty_8cpp.html#a997daa830ee78d2ad1a859d2f71594f6">mPtr</a>=<span class="keyword">new</span> TUTable;
+<a name="l00127"></a>00127 <span class="keywordflow">return</span> *<a class="code" href="monty_8cpp.html#a997daa830ee78d2ad1a859d2f71594f6">mPtr</a>;
+<a name="l00128"></a>00128 }
+<a name="l00129"></a>00129
+<a name="l00130"></a>00130 <span class="keyword">private</span>:
+<a name="l00131"></a>00131 TUTable(): <a class="code" href="monty_8cpp.html#a68c397b3981dc1bc151f425c0aee31b9">mTable</a>(new value_t[<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(cMaxK)]) {
+<a name="l00132"></a>00132 value_t *p=&amp;<a class="code" href="monty_8cpp.html#a68c397b3981dc1bc151f425c0aee31b9">mTable</a>[0], *pe=p+<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(cMaxK);
+<a name="l00133"></a>00133 *p++=std::make_pair(0, 0);
+<a name="l00134"></a>00134 <span class="keywordtype">int</span> i=1;
+<a name="l00135"></a>00135 <span class="keywordflow">while</span> (p!=pe) *p++=calculateValues(i++);
+<a name="l00136"></a>00136 }
+<a name="l00137"></a>00137 ~TUTable() { <span class="keyword">delete</span>[] <a class="code" href="monty_8cpp.html#a68c397b3981dc1bc151f425c0aee31b9">mTable</a>; }
+<a name="l00138"></a>00138
+<a name="l00139"></a>00139 std::pair&lt;int, int&gt; calculateValues(<span class="keywordtype">int</span> x) {
+<a name="l00140"></a>00140 <span class="keywordtype">int</span> r=0;
+<a name="l00141"></a>00141 <span class="keywordflow">while</span> (1) {
+<a name="l00142"></a>00142 <span class="keywordflow">if</span> (x &amp; 0x01) <span class="keywordflow">return</span> std::make_pair(r, x);
+<a name="l00143"></a>00143 ++r;
+<a name="l00144"></a>00144 x &gt;&gt;= 1;
+<a name="l00145"></a>00145 }
+<a name="l00146"></a>00146 }
+<a name="l00147"></a>00147
+<a name="l00148"></a><a class="code" href="monty_8cpp.html#a997daa830ee78d2ad1a859d2f71594f6">00148</a> <span class="keyword">static</span> TUTable *<a class="code" href="monty_8cpp.html#a997daa830ee78d2ad1a859d2f71594f6">mPtr</a>;
+<a name="l00149"></a>00149
+<a name="l00150"></a><a class="code" href="monty_8cpp.html#a68c397b3981dc1bc151f425c0aee31b9">00150</a> value_t *<a class="code" href="monty_8cpp.html#a68c397b3981dc1bc151f425c0aee31b9">mTable</a>;
+<a name="l00151"></a>00151 };
+<a name="l00152"></a>00152
+<a name="l00153"></a>00153 TUTable *<a class="code" href="monty_8cpp.html#a997daa830ee78d2ad1a859d2f71594f6">TUTable::mPtr</a>=0;
+<a name="l00154"></a>00154
+<a name="l00155"></a>00155 <span class="keywordtype">int</span> mostEfficientK(<span class="keyword">const</span> integer&amp; e) {
+<a name="l00156"></a>00156 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> k=cMaxK, kTarget=<a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(e)-1;
+<a name="l00157"></a>00157 <span class="keywordflow">while</span> (k &gt; 1 &amp;&amp; ((k - 1) * (k &lt;&lt; ((k - 1) &lt;&lt; 1))
+<a name="l00158"></a>00158 / (<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(k) - k - 1)) &gt;= kTarget)
+<a name="l00159"></a>00159 --k;
+<a name="l00160"></a>00160 <span class="keywordflow">return</span> int(k);
+<a name="l00161"></a>00161 }
+<a name="l00162"></a>00162
+<a name="l00163"></a>00163 vxint_t precalculateOddPowersOfAa(<span class="keyword">const</span> integer&amp; a, <span class="keyword">const</span> integer&amp;
+<a name="l00164"></a>00164 r, <span class="keyword">const</span> integer&amp; n, <span class="keywordtype">size_t</span> k)
+<a name="l00165"></a>00165 {
+<a name="l00166"></a>00166 integer aa=a*r%n, aSquared=a*a%n;
+<a name="l00167"></a>00167
+<a name="l00168"></a>00168 vxint_t rval;
+<a name="l00169"></a>00169 rval.reserve(<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(k));
+<a name="l00170"></a>00170 rval.push_back(<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>()); <span class="comment">// Anything to the zeroth power is one</span>
+<a name="l00171"></a>00171 rval.push_back(aa); <span class="comment">// Anything to the first power is itself</span>
+<a name="l00172"></a>00172
+<a name="l00173"></a>00173 <span class="keywordflow">for</span> (<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> i=3, ie=(<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(k)); i&lt;ie; i+=2) {
+<a name="l00174"></a>00174 aa=aa*aSquared%n;
+<a name="l00175"></a>00175 rval.push_back(<a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>()); <span class="comment">// Even powers not needed or calculated</span>
+<a name="l00176"></a>00176 rval.push_back(aa); <span class="comment">// Odd power</span>
+<a name="l00177"></a>00177 }
+<a name="l00178"></a>00178
+<a name="l00179"></a>00179 <span class="keywordflow">return</span> rval;
+<a name="l00180"></a>00180 }
+<a name="l00181"></a>00181
+<a name="l00182"></a>00182 vkbitdigit_t splitIntoKBitDigits(<span class="keyword">const</span> integer&amp; e, <span class="keywordtype">size_t</span> k) {
+<a name="l00183"></a>00183 <span class="keywordtype">size_t</span> eBits=<a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(e), eDigits=(eBits+k-1)/k, i=0, bitsInHopper=0;
+<a name="l00184"></a>00184
+<a name="l00185"></a>00185 vkbitdigit_t rval;
+<a name="l00186"></a>00186 rval.reserve(eDigits);
+<a name="l00187"></a>00187
+<a name="l00188"></a>00188 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> hopper=0, mask=(<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(1)&lt;&lt;k)-1;
+<a name="l00189"></a>00189 <span class="keywordflow">while</span> (eDigits-- &gt; 0) {
+<a name="l00190"></a>00190 <span class="keywordflow">if</span> (bitsInHopper &lt; k &amp;&amp; i &lt; e._get_length()) {
+<a name="l00191"></a>00191 <span class="comment">// Add more bits to the hopper</span>
+<a name="l00192"></a>00192 hopper = hopper | (<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(e._get_digit(i++)) &lt;&lt; bitsInHopper);
+<a name="l00193"></a>00193 bitsInHopper += <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>;
+<a name="l00194"></a>00194 }
+<a name="l00195"></a>00195
+<a name="l00196"></a>00196 <span class="comment">// Grab k bits off the bottom</span>
+<a name="l00197"></a>00197 <span class="keywordflow">if</span> (bitsInHopper &gt; 0) {
+<a name="l00198"></a>00198 rval.push_back(kbitdigit_t(hopper &amp; mask));
+<a name="l00199"></a>00199 hopper &gt;&gt;= k;
+<a name="l00200"></a>00200 bitsInHopper-=k;
+<a name="l00201"></a>00201 } <span class="keywordflow">else</span> {
+<a name="l00202"></a>00202 rval.push_back(0);
+<a name="l00203"></a>00203 }
+<a name="l00204"></a>00204 }
+<a name="l00205"></a>00205
+<a name="l00206"></a>00206 <span class="keywordflow">return</span> rval;
+<a name="l00207"></a>00207 }
+<a name="l00208"></a>00208
+<a name="l00209"></a>00209 } <span class="comment">// namespace</span>
+<a name="l00210"></a>00210
+<a name="l00211"></a>00211 integer <a class="code" href="namespacexint.html#a7d7e8604c467bc007820c60e1bc21626">montgomeryPowerMod</a>(<span class="keyword">const</span> integer&amp; a, <span class="keyword">const</span> integer&amp; e, <span class="keyword">const</span> integer&amp; n)
+<a name="l00212"></a>00212 {
+<a name="l00213"></a>00213 <span class="comment">// 0 &lt;= a &lt; n, n is odd</span>
+<a name="l00214"></a>00214 <span class="comment">// Returns a^e mod n</span>
+<a name="l00215"></a>00215
+<a name="l00216"></a>00216 <span class="keyword">const</span> TUTable &amp;tuTable(TUTable::get());
+<a name="l00217"></a>00217
+<a name="l00218"></a>00218 <span class="keywordflow">if</span> (e.sign()==0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>();
+<a name="l00219"></a>00219 <span class="keywordflow">if</span> (n.even()) {
+<a name="l00220"></a>00220 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus(<span class="stringliteral">&quot;montgomeryPowerMod &quot;</span>
+<a name="l00221"></a>00221 <span class="stringliteral">&quot;requires an odd modulus&quot;</span>);
+<a name="l00222"></a>00222 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00223"></a>00223 }
+<a name="l00224"></a>00224
+<a name="l00225"></a>00225 <span class="comment">// Precalculate some values</span>
+<a name="l00226"></a>00226 <span class="keyword">const</span> <span class="keywordtype">size_t</span> k(mostEfficientK(e));
+<a name="l00227"></a>00227 <span class="keyword">const</span> integer r(<a class="code" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b">montgomeryR</a>(n));
+<a name="l00228"></a>00228 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> nPrime0(<a class="code" href="namespacexint.html#afd561fd7c7631267fbc7e5c75c2bde71">inverse0</a>(n));
+<a name="l00229"></a>00229 <span class="keyword">const</span> vxint_t oddPowersOfAa(precalculateOddPowersOfAa(a, r, n, k));
+<a name="l00230"></a>00230
+<a name="l00231"></a>00231 <span class="comment">// Slice the exponent (e) up into k-bit digits</span>
+<a name="l00232"></a>00232 vkbitdigit_t eDigits(splitIntoKBitDigits(e, k));
+<a name="l00233"></a>00233
+<a name="l00234"></a>00234 integer pp;
+<a name="l00235"></a>00235
+<a name="l00236"></a>00236 kbitdigit_t i=eDigits.back();
+<a name="l00237"></a>00237 eDigits.pop_back();
+<a name="l00238"></a>00238 <span class="keywordflow">if</span> (i == 0) {
+<a name="l00239"></a>00239 pp=r%n;
+<a name="l00240"></a>00240 } <span class="keywordflow">else</span> {
+<a name="l00241"></a>00241 std::pair&lt;int, int&gt; tu=tuTable[i];
+<a name="l00242"></a>00242 pp=oddPowersOfAa[tu.second];
+<a name="l00243"></a>00243 <span class="keywordflow">while</span> (tu.first-- &gt; 0) pp=<a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">montgomeryMultiplyMod</a>(pp, pp, n, nPrime0);
+<a name="l00244"></a>00244 }
+<a name="l00245"></a>00245
+<a name="l00246"></a>00246 <span class="keywordflow">while</span> (!eDigits.empty()) {
+<a name="l00247"></a>00247 i=eDigits.back();
+<a name="l00248"></a>00248 eDigits.pop_back();
+<a name="l00249"></a>00249
+<a name="l00250"></a>00250 <span class="keywordflow">if</span> (i == 0) {
+<a name="l00251"></a>00251 <span class="keywordtype">int</span> t=int(k);
+<a name="l00252"></a>00252 <span class="keywordflow">while</span> (t-- &gt; 0) pp=<a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">montgomeryMultiplyMod</a>(pp, pp, n, nPrime0);
+<a name="l00253"></a>00253 } <span class="keywordflow">else</span> {
+<a name="l00254"></a>00254 std::pair&lt;int, int&gt; tu=tuTable[i];
+<a name="l00255"></a>00255
+<a name="l00256"></a>00256 <span class="keywordtype">int</span> s=k-tu.first;
+<a name="l00257"></a>00257 <span class="keywordflow">while</span> (s-- &gt; 0) pp=<a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">montgomeryMultiplyMod</a>(pp, pp, n, nPrime0);
+<a name="l00258"></a>00258
+<a name="l00259"></a>00259 pp=<a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">montgomeryMultiplyMod</a>(pp, oddPowersOfAa[tu.second], n, nPrime0);
+<a name="l00260"></a>00260
+<a name="l00261"></a>00261 <span class="keywordflow">while</span> (tu.first-- &gt; 0) pp=<a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">montgomeryMultiplyMod</a>(pp, pp, n, nPrime0);
+<a name="l00262"></a>00262 }
+<a name="l00263"></a>00263 }
+<a name="l00264"></a>00264
+<a name="l00265"></a>00265 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">montgomeryMultiplyMod</a>(pp, <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>(), n, nPrime0);
+<a name="l00266"></a>00266 }
+<a name="l00267"></a>00267
+<a name="l00268"></a>00268 } <span class="comment">// namespace xint</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/my_doxygen.css
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/my_doxygen.css 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,510 @@
+/*
+ The standard CSS for doxygen
+ with changed code (syntax) colorization my_doxygen.css */
+/*
+ Copyright Paul A. Bristow 2009
+ Use, modification and distribution are subject to the
+ Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt
+ or copy at http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+body, table, div, p, dl {
+ font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+ font-size: 12px;
+}
+
+/* @group Heading Levels */
+
+h1 {
+ text-align: center;
+ font-size: 150%;
+}
+
+h2 {
+ font-size: 120%;
+}
+
+h3 {
+ font-size: 100%;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+p.startli, p.startdd {
+ margin-top: 2px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+div.qindex, div.navtab{
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ padding: 2px;
+}
+
+div.qindex, div.navpath {
+ width: 100%;
+ line-height: 140%;
+}
+
+div.navtab {
+ margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+ color: #153788;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #1b77c5;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a.qindex {
+ font-weight: bold;
+}
+
+a.qindexHL {
+ font-weight: bold;
+ background-color: #6666cc;
+ color: #ffffff;
+ border: 1px double #9295C2;
+}
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code {
+}
+
+a.codeRef {
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+.fragment {
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+pre.fragment {
+ border: 1px solid #CCCCCC;
+ background-color: #f5f5f5;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+}
+
+div.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ margin-bottom: 6px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background: white;
+ color: black;
+ margin-right: 20px;
+ margin-left: 20px;
+}
+
+td.indexkey {
+ background-color: #e8eef2;
+ font-weight: bold;
+ border: 1px solid #CCCCCC;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+}
+
+td.indexvalue {
+ background-color: #e8eef2;
+ border: 1px solid #CCCCCC;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #f0f0f0;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+/* @group Code (syntax) Colorization */
+
+span.keyword {
+ color: blue
+}
+
+span.keywordtype {
+ color: blue
+}
+
+span.keywordflow {
+ color: blue
+}
+
+span.comment {
+ color: green
+}
+
+span.preprocessor {
+ color: darkblue
+}
+
+span.stringliteral {
+ color: brown
+}
+
+span.charliteral {
+ color: brown
+}
+
+span.operator {
+ color: red
+}
+span.vhdldigit {
+ color: red
+}
+
+span.vhdlchar {
+ color: brown
+}
+
+span.vhdlkeyword {
+ color: blue
+}
+
+span.vhdllogic {
+ color: magenta
+}
+
+/* @end */
+
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #84b0c7;
+}
+
+th.dirtab {
+ background: #e8eef2;
+ font-weight: bold;
+}
+
+hr {
+ height: 0;
+ border: none;
+ border-top: 1px solid #666;
+}
+
+/* @group Member Descriptions */
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #FAFAFA;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memItemLeft, .memItemRight, .memTemplParams {
+ border-top: 1px solid #ccc;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memTemplParams {
+ color: #606060;
+ white-space: nowrap;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation. */
+
+.memtemplate {
+ font-size: 80%;
+ color: #606060;
+ font-weight: normal;
+ margin-left: 3px;
+}
+
+.memnav {
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+}
+
+.memname {
+ white-space: nowrap;
+ font-weight: bold;
+}
+
+.memproto, .memdoc {
+ border: 1px solid #84b0c7;
+}
+
+.memproto {
+ padding: 0;
+ background-color: #d5e1e8;
+ font-weight: bold;
+ -webkit-border-top-left-radius: 8px;
+ -webkit-border-top-right-radius: 8px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -moz-border-radius-topleft: 8px;
+ -moz-border-radius-topright: 8px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+
+}
+
+.memdoc {
+ padding: 2px 5px;
+ background-color: #eef3f5;
+ border-top-width: 0;
+ -webkit-border-bottom-left-radius: 8px;
+ -webkit-border-bottom-right-radius: 8px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -moz-border-radius-bottomleft: 8px;
+ -moz-border-radius-bottomright: 8px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+
+/* @end */
+
+/* @group Directory (tree) */
+
+/* for the tree view. */
+
+.ftvtree {
+ font-family: sans-serif;
+ margin: 0.5em;
+}
+
+/* These are for tree view when used as main index. */
+
+.directory {
+ font-size: 9pt;
+ font-weight: bold;
+}
+
+.directory h3 {
+ margin: 0px;
+ margin-top: 1em;
+ font-size: 11pt;
+}
+
+/*
+The following two styles can be used to replace the root node title
+with an image of your choice. Simply uncomment the next two styles,
+specify the name of your image and be sure to set 'height' to the
+proper pixel height of your image.
+*/
+
+/*
+.directory h3.swap {
+ height: 61px;
+ background-repeat: no-repeat;
+ background-image: url("yourimage.gif");
+}
+.directory h3.swap span {
+ display: none;
+}
+*/
+
+.directory > h3 {
+ margin-top: 0;
+}
+
+.directory p {
+ margin: 0px;
+ white-space: nowrap;
+}
+
+.directory div {
+ display: none;
+ margin: 0px;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+/* These are for tree view when not used as main index. */
+
+.directory-alt {
+ font-size: 100%;
+ font-weight: bold;
+}
+
+.directory-alt h3 {
+ margin: 0px;
+ margin-top: 1em;
+ font-size: 11pt;
+}
+
+.directory-alt > h3 {
+ margin-top: 0;
+}
+
+.directory-alt p {
+ margin: 0px;
+ white-space: nowrap;
+}
+
+.directory-alt div {
+ display: none;
+ margin: 0px;
+}
+
+.directory-alt img {
+ vertical-align: -30%;
+}
+
+/* @end */
+
+address {
+ font-style: normal;
+ color: #333;
+}

Added: sandbox/xint/libs/xint/doc/doxygen/html/namespacedetail.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespacedetail.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,96 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 17:06:20 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>detail Namespace Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacedetail_1_1xint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>implementation details, normal users should not need to use these. </p>
+<br/></td></tr>
+</p>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 17:06:20 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/namespacedetail_1_1xint.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespacedetail_1_1xint.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,97 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 17:06:20 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+ <div class="navpath"><a class="el" href="namespacedetail.html">detail</a>::<a class="el" href="namespacedetail_1_1xint.html">xint</a>
+ </div>
+</div>
+<div class="contents">
+<h1>detail::xint Namespace Reference</h1>
+<p>implementation details, normal users should not need to use these.
+More...</p>
+<table border="0" cellpadding="0" cellspacing="0">
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>implementation details, normal users should not need to use these. </p>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 17:06:20 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,425 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all namespace members with links to the namespace documentation for each member:
+
+<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
+<li>abs()
+: <a class="el" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">xint</a>
+</li>
+<li>add()
+: <a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint</a>
+</li>
+<li>allow_exceptions()
+: <a class="el" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">xint</a>
+</li>
+<li>autobase
+: <a class="el" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b">- b -</a></h3><ul>
+<li>bits_per_digit
+: <a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">xint::detail</a>
+</li>
+<li>bitwise_and()
+: <a class="el" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">xint</a>
+</li>
+<li>bitwise_or()
+: <a class="el" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">xint</a>
+</li>
+<li>bitwise_xor()
+: <a class="el" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">xint</a>
+</li>
+<li>block_exceptions()
+: <a class="el" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
+<li>callback_t
+: <a class="el" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">xint</a>
+</li>
+<li>clearbit()
+: <a class="el" href="namespacexint.html#a8982e3e3ab7c1c763416eadc479d9724">xint</a>
+</li>
+<li>compare()
+: <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
+<li>digit_hibit
+: <a class="el" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">xint::detail</a>
+</li>
+<li>digit_mask
+: <a class="el" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">xint::detail</a>
+</li>
+<li>digit_overflowbit
+: <a class="el" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">xint::detail</a>
+</li>
+<li>digit_t
+: <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">xint::detail</a>
+</li>
+<li>divide()
+: <a class="el" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">xint</a>
+</li>
+<li>divide_r()
+: <a class="el" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">xint</a>
+</li>
+<li>doubledigit_hibit
+: <a class="el" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">xint::detail</a>
+</li>
+<li>doubledigit_t
+: <a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">xint::detail</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e">- e -</a></h3><ul>
+<li>exceptions_allowed()
+: <a class="el" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f">- f -</a></h3><ul>
+<li>factorial()
+: <a class="el" href="namespacexint.html#aba188df925c87a0f33a79328e31e1a50">xint</a>
+</li>
+<li>from_binary()
+: <a class="el" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">xint</a>
+</li>
+<li>from_string()
+: <a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">xint</a>
+</li>
+<li>fromMontgomeryForm()
+: <a class="el" href="namespacexint.html#a93ed16c5350b34ca22108e48b51918a5">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_g">- g -</a></h3><ul>
+<li>gcd()
+: <a class="el" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">xint</a>
+</li>
+<li>getbit()
+: <a class="el" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h">- h -</a></h3><ul>
+<li>highestbit()
+: <a class="el" href="namespacexint.html#afcfbe1d95a8dabc615e97565c0ba768c">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
+<li>inverse0()
+: <a class="el" href="namespacexint.html#afd561fd7c7631267fbc7e5c75c2bde71">xint</a>
+</li>
+<li>invmod()
+: <a class="el" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">xint</a>
+</li>
+<li>is_prime()
+: <a class="el" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
+<li>lcm()
+: <a class="el" href="namespacexint.html#a17c5e4e807cfa425f48d9f5b464bc8dc">xint</a>
+</li>
+<li>log2()
+: <a class="el" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">xint</a>
+</li>
+<li>lowestbit()
+: <a class="el" href="namespacexint.html#a20e8cf2664222955e68f2ef9020bb196">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
+<li>mod()
+: <a class="el" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">xint</a>
+</li>
+<li>montgomeryMultiplyMod()
+: <a class="el" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">xint</a>
+</li>
+<li>montgomeryPowerMod()
+: <a class="el" href="namespacexint.html#a7d7e8604c467bc007820c60e1bc21626">xint</a>
+</li>
+<li>montgomeryR()
+: <a class="el" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b">xint</a>
+</li>
+<li>mulmod()
+: <a class="el" href="namespacexint.html#a67ad0747617ca6e780d6f67d60260450">xint</a>
+</li>
+<li>multiply()
+: <a class="el" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
+<li>nan_text
+: <a class="el" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">xint::detail</a>
+</li>
+<li>negate()
+: <a class="el" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">xint</a>
+</li>
+<li>no_callback
+: <a class="el" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>operator&lt;&lt;()
+: <a class="el" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">xint</a>
+</li>
+<li>operator&gt;&gt;()
+: <a class="el" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">xint</a>
+</li>
+<li>opt_secure_mode()
+: <a class="el" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd">xint</a>
+</li>
+<li>opt_thread_safe()
+: <a class="el" href="namespacexint.html#ad55aa4d44083238d9ec313511f5b1dfa">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
+<li>pow()
+: <a class="el" href="namespacexint.html#aeee80b61e0cadc12f92752104e281b2c">xint</a>
+</li>
+<li>pow2()
+: <a class="el" href="namespacexint.html#aea1ae2a423d401fa02d3f0621078fbf0">xint</a>
+</li>
+<li>powmod()
+: <a class="el" href="namespacexint.html#a1f8b43b537ff9de1d5612ed228a8fbe1">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
+<li>random()
+: <a class="el" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">xint</a>
+</li>
+<li>random&lt; integer &gt;()
+: <a class="el" href="namespacexint.html#a989d063e3298649704c804efca714ac6">xint</a>
+</li>
+<li>random_by_size()
+: <a class="el" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">xint</a>
+</li>
+<li>random_prime()
+: <a class="el" href="namespacexint.html#af148d73dc33718f9d893dac821ab699e">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
+<li>seed_fallback()
+: <a class="el" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">xint</a>
+</li>
+<li>seed_manual()
+: <a class="el" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">xint</a>
+</li>
+<li>seed_secure()
+: <a class="el" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">xint</a>
+</li>
+<li>setbit()
+: <a class="el" href="namespacexint.html#adf2652627e78682c17e120816987984a">xint</a>
+</li>
+<li>shift()
+: <a class="el" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">xint</a>
+</li>
+<li>shift_left()
+: <a class="el" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">xint</a>
+</li>
+<li>shift_right()
+: <a class="el" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">xint</a>
+</li>
+<li>sqr()
+: <a class="el" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">xint</a>
+</li>
+<li>sqrmod()
+: <a class="el" href="namespacexint.html#a594bd29593aad9a1c047af22e91e749c">xint</a>
+</li>
+<li>sqrt()
+: <a class="el" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a">xint</a>
+</li>
+<li>subtract()
+: <a class="el" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
+<li>testAddSubtract()
+: <a class="el" href="namespacexint.html#a6b7f5122683b6d924bf86c7d1507206b">xint</a>
+</li>
+<li>testAll()
+: <a class="el" href="namespacexint.html#a972fb39595e902be6c50629356b44e5b">xint</a>
+</li>
+<li>testBitManipulations()
+: <a class="el" href="namespacexint.html#a509778d505a3c8a0b335817150eaead2">xint</a>
+</li>
+<li>testConvert()
+: <a class="el" href="namespacexint.html#ae4ef5f20964fa995df7828f27bd7adbe">xint</a>
+</li>
+<li>testDivideMod()
+: <a class="el" href="namespacexint.html#a4ed78ff75865ae44a00d3709dd88c3a1">xint</a>
+</li>
+<li>testMontyMultiply()
+: <a class="el" href="namespacexint.html#ac40068d64f8c4d9002a0687935888c42">xint</a>
+</li>
+<li>testMontyPowerMod()
+: <a class="el" href="namespacexint.html#a9cce0401174b9ae173671b0800c5f457">xint</a>
+</li>
+<li>testMultiply()
+: <a class="el" href="namespacexint.html#affe2e221777d4263a420d014fa9640d0">xint</a>
+</li>
+<li>testRandom()
+: <a class="el" href="namespacexint.html#aa1dbeb0c1ad12e8a8de7efb6c47e455f">xint</a>
+</li>
+<li>testStreams()
+: <a class="el" href="namespacexint.html#ae3305f62ca9be58fbc11dbd4c703f38b">xint</a>
+</li>
+<li>to()
+: <a class="el" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">xint</a>
+</li>
+<li>to_binary()
+: <a class="el" href="namespacexint.html#ab8f33201a251e3e118dc82f214e22aeb">xint</a>
+</li>
+<li>to_string()
+: <a class="el" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">xint</a>
+</li>
+<li>token
+: <a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">xint</a>
+</li>
+<li>toMontgomeryForm()
+: <a class="el" href="namespacexint.html#ab8e85cd5425fcec419c07155e2a91e13">xint</a>
+</li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_func.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_func.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,389 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
+<li>abs()
+: <a class="el" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">xint</a>
+</li>
+<li>add()
+: <a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint</a>
+</li>
+<li>allow_exceptions()
+: <a class="el" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b">- b -</a></h3><ul>
+<li>bitwise_and()
+: <a class="el" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">xint</a>
+</li>
+<li>bitwise_or()
+: <a class="el" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">xint</a>
+</li>
+<li>bitwise_xor()
+: <a class="el" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">xint</a>
+</li>
+<li>block_exceptions()
+: <a class="el" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
+<li>clearbit()
+: <a class="el" href="namespacexint.html#a8982e3e3ab7c1c763416eadc479d9724">xint</a>
+</li>
+<li>compare()
+: <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
+<li>divide()
+: <a class="el" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">xint</a>
+</li>
+<li>divide_r()
+: <a class="el" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e">- e -</a></h3><ul>
+<li>exceptions_allowed()
+: <a class="el" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f">- f -</a></h3><ul>
+<li>factorial()
+: <a class="el" href="namespacexint.html#aba188df925c87a0f33a79328e31e1a50">xint</a>
+</li>
+<li>from_binary()
+: <a class="el" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">xint</a>
+</li>
+<li>from_string()
+: <a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">xint</a>
+</li>
+<li>fromMontgomeryForm()
+: <a class="el" href="namespacexint.html#a93ed16c5350b34ca22108e48b51918a5">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_g">- g -</a></h3><ul>
+<li>gcd()
+: <a class="el" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">xint</a>
+</li>
+<li>getbit()
+: <a class="el" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h">- h -</a></h3><ul>
+<li>highestbit()
+: <a class="el" href="namespacexint.html#afcfbe1d95a8dabc615e97565c0ba768c">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
+<li>inverse0()
+: <a class="el" href="namespacexint.html#afd561fd7c7631267fbc7e5c75c2bde71">xint</a>
+</li>
+<li>invmod()
+: <a class="el" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">xint</a>
+</li>
+<li>is_prime()
+: <a class="el" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
+<li>lcm()
+: <a class="el" href="namespacexint.html#a17c5e4e807cfa425f48d9f5b464bc8dc">xint</a>
+</li>
+<li>log2()
+: <a class="el" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">xint</a>
+</li>
+<li>lowestbit()
+: <a class="el" href="namespacexint.html#a20e8cf2664222955e68f2ef9020bb196">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
+<li>mod()
+: <a class="el" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">xint</a>
+</li>
+<li>montgomeryMultiplyMod()
+: <a class="el" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">xint</a>
+</li>
+<li>montgomeryPowerMod()
+: <a class="el" href="namespacexint.html#a7d7e8604c467bc007820c60e1bc21626">xint</a>
+</li>
+<li>montgomeryR()
+: <a class="el" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b">xint</a>
+</li>
+<li>mulmod()
+: <a class="el" href="namespacexint.html#a67ad0747617ca6e780d6f67d60260450">xint</a>
+</li>
+<li>multiply()
+: <a class="el" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
+<li>negate()
+: <a class="el" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>operator&lt;&lt;()
+: <a class="el" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">xint</a>
+</li>
+<li>operator&gt;&gt;()
+: <a class="el" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">xint</a>
+</li>
+<li>opt_secure_mode()
+: <a class="el" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd">xint</a>
+</li>
+<li>opt_thread_safe()
+: <a class="el" href="namespacexint.html#ad55aa4d44083238d9ec313511f5b1dfa">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
+<li>pow()
+: <a class="el" href="namespacexint.html#aeee80b61e0cadc12f92752104e281b2c">xint</a>
+</li>
+<li>pow2()
+: <a class="el" href="namespacexint.html#aea1ae2a423d401fa02d3f0621078fbf0">xint</a>
+</li>
+<li>powmod()
+: <a class="el" href="namespacexint.html#a1f8b43b537ff9de1d5612ed228a8fbe1">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
+<li>random()
+: <a class="el" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">xint</a>
+</li>
+<li>random&lt; integer &gt;()
+: <a class="el" href="namespacexint.html#a989d063e3298649704c804efca714ac6">xint</a>
+</li>
+<li>random_by_size()
+: <a class="el" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">xint</a>
+</li>
+<li>random_prime()
+: <a class="el" href="namespacexint.html#af148d73dc33718f9d893dac821ab699e">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
+<li>seed_fallback()
+: <a class="el" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">xint</a>
+</li>
+<li>seed_manual()
+: <a class="el" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">xint</a>
+</li>
+<li>seed_secure()
+: <a class="el" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">xint</a>
+</li>
+<li>setbit()
+: <a class="el" href="namespacexint.html#adf2652627e78682c17e120816987984a">xint</a>
+</li>
+<li>shift()
+: <a class="el" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">xint</a>
+</li>
+<li>shift_left()
+: <a class="el" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">xint</a>
+</li>
+<li>shift_right()
+: <a class="el" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">xint</a>
+</li>
+<li>sqr()
+: <a class="el" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">xint</a>
+</li>
+<li>sqrmod()
+: <a class="el" href="namespacexint.html#a594bd29593aad9a1c047af22e91e749c">xint</a>
+</li>
+<li>sqrt()
+: <a class="el" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a">xint</a>
+</li>
+<li>subtract()
+: <a class="el" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
+<li>testAddSubtract()
+: <a class="el" href="namespacexint.html#a6b7f5122683b6d924bf86c7d1507206b">xint</a>
+</li>
+<li>testAll()
+: <a class="el" href="namespacexint.html#a972fb39595e902be6c50629356b44e5b">xint</a>
+</li>
+<li>testBitManipulations()
+: <a class="el" href="namespacexint.html#a509778d505a3c8a0b335817150eaead2">xint</a>
+</li>
+<li>testConvert()
+: <a class="el" href="namespacexint.html#ae4ef5f20964fa995df7828f27bd7adbe">xint</a>
+</li>
+<li>testDivideMod()
+: <a class="el" href="namespacexint.html#a4ed78ff75865ae44a00d3709dd88c3a1">xint</a>
+</li>
+<li>testMontyMultiply()
+: <a class="el" href="namespacexint.html#ac40068d64f8c4d9002a0687935888c42">xint</a>
+</li>
+<li>testMontyPowerMod()
+: <a class="el" href="namespacexint.html#a9cce0401174b9ae173671b0800c5f457">xint</a>
+</li>
+<li>testMultiply()
+: <a class="el" href="namespacexint.html#affe2e221777d4263a420d014fa9640d0">xint</a>
+</li>
+<li>testRandom()
+: <a class="el" href="namespacexint.html#aa1dbeb0c1ad12e8a8de7efb6c47e455f">xint</a>
+</li>
+<li>testStreams()
+: <a class="el" href="namespacexint.html#ae3305f62ca9be58fbc11dbd4c703f38b">xint</a>
+</li>
+<li>to()
+: <a class="el" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">xint</a>
+</li>
+<li>to_binary()
+: <a class="el" href="namespacexint.html#ab8f33201a251e3e118dc82f214e22aeb">xint</a>
+</li>
+<li>to_string()
+: <a class="el" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">xint</a>
+</li>
+<li>toMontgomeryForm()
+: <a class="el" href="namespacexint.html#ab8e85cd5425fcec419c07155e2a91e13">xint</a>
+</li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_type.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_type.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,110 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li class="current">Typedefs</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;<ul>
+<li>callback_t
+: <a class="el" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">xint</a>
+</li>
+<li>digit_t
+: <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">xint::detail</a>
+</li>
+<li>doubledigit_t
+: <a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">xint::detail</a>
+</li>
+<li>token
+: <a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">xint</a>
+</li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_vars.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_vars.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,122 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>All</li>
+ <li>Functions</li>
+ <li class="current">Variables</li>
+ <li>Typedefs</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;<ul>
+<li>autobase
+: <a class="el" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">xint</a>
+</li>
+<li>bits_per_digit
+: <a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">xint::detail</a>
+</li>
+<li>digit_hibit
+: <a class="el" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">xint::detail</a>
+</li>
+<li>digit_mask
+: <a class="el" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">xint::detail</a>
+</li>
+<li>digit_overflowbit
+: <a class="el" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">xint::detail</a>
+</li>
+<li>doubledigit_hibit
+: <a class="el" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">xint::detail</a>
+</li>
+<li>nan_text
+: <a class="el" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">xint::detail</a>
+</li>
+<li>no_callback
+: <a class="el" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">xint</a>
+</li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/namespaces.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespaces.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,92 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li class="current">Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>Namespace List</h1>Here is a list of all namespaces with brief descriptions:<table>
+ <tr><td class="indexkey"><a class="el" href="namespacexint.html">xint</a></td><td class="indexvalue">Namespace for all extended integer classes and functions </td></tr>
+ <tr><td class="indexkey"><a class="el" href="namespacexint_1_1detail.html">xint::detail</a></td><td class="indexvalue">Implementation details, normal users should not need to use these </td></tr>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/namespacexint.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespacexint.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,1979 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>xint Namespace Reference</h1>
+<p>namespace for all extended integer classes and functions.
+More...</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html">detail</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>implementation details, normal users should not need to use these. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html">integer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__base.html">invalid_base</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__digit.html">invalid_digit</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__modulus.html">invalid_modulus</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1divide__by__zero.html">divide_by_zero</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1too__big.html">too_big</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1not__a__number.html">not_a_number</a></td></tr>
+<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::auto_ptr<br class="typebreak"/>
+&lt; <a class="el" href="structxint_1_1detail_1_1token.html">detail::token</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">token</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef boost::function&lt; bool()&gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a></td></tr>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952">getbit</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, size_t bit)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a> (<a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, size_t bit)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a8982e3e3ab7c1c763416eadc479d9724">clearbit</a> (<a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, size_t bit)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a20e8cf2664222955e68f2ef9020bb196">lowestbit</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, size_t defaultValue)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afcfbe1d95a8dabc615e97565c0ba768c">highestbit</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, size_t defaultValue)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">bitwise_and</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">bitwise_or</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">bitwise_xor</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, int byBits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">shift_left</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;_n, size_t byBits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">shift_right</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;_n, size_t byBits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">compare</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;b1, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;b2, bool ignoresign)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">to_string</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, size_t base, bool upperCase)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">from_string</a> (const std::string &amp;str, size_t base)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">from_binary</a> (const std::string &amp;str)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab8f33201a251e3e118dc82f214e22aeb">to_binary</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structxint_1_1detail_1_1token.html">token</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">block_exceptions</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structxint_1_1detail_1_1token.html">token</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">allow_exceptions</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">gcd</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;num1, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a17c5e4e807cfa425f48d9f5b464bc8dc">lcm</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;num1, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">invmod</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;m)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd">opt_secure_mode</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad55aa4d44083238d9ec313511f5b1dfa">opt_thread_safe</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">mod</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;modBy)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a67ad0747617ca6e780d6f67d60260450">mulmod</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;by, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;modulus)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a594bd29593aad9a1c047af22e91e749c">sqrmod</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;modulus)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a1f8b43b537ff9de1d5612ed228a8fbe1">powmod</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;exponent, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;modulus, bool noMontgomery)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">digit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afd561fd7c7631267fbc7e5c75c2bde71">inverse0</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b">montgomeryR</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab8e85cd5425fcec419c07155e2a91e13">toMontgomeryForm</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;m)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a93ed16c5350b34ca22108e48b51918a5">fromMontgomeryForm</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;m)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">montgomeryMultiplyMod</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;a, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;b, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, digit_t nPrime0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7d7e8604c467bc007820c60e1bc21626">montgomeryPowerMod</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;a, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;e, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aea1ae2a423d401fa02d3f0621078fbf0">pow2</a> (size_t exponent)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">sqr</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aeee80b61e0cadc12f92752104e281b2c">pow</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;exponent)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aba188df925c87a0f33a79328e31e1a50">factorial</a> (size_t n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f">is_prime</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, <a class="el" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af148d73dc33718f9d893dac821ab699e">random_prime</a> (size_t sizeInBits, <a class="el" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">negate</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;_n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">add</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">multiply</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;by)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">divide</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;dividend, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;divisor)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::pair&lt; <a class="el" href="classxint_1_1integer.html">integer</a>, <a class="el" href="classxint_1_1integer.html">integer</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">divide_r</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;d1, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;d2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">seed_secure</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">seed_fallback</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">seed_manual</a> (const std::string &amp;value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size</a> (size_t bits, bool highBitOn, bool lowBitOn, bool canBeNegative)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a989d063e3298649704c804efca714ac6">random&lt; integer &gt;</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;lowest, const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;highest)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a">sqrt</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">to</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &amp;n)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae04e871bc550a858d66901f64d42b17f">random</a> (const T &amp;lessThanThis)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a342a8b817f74234c393fd9ed32f13f5f">random</a> (const T &amp;lowest, const T &amp;highest)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , typename traits &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream&lt; charT, <br class="typebreak"/>
+traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">operator&lt;&lt;</a> (std::basic_ostream&lt; charT, traits &gt; &amp;out, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , typename traits &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_istream&lt; charT, <br class="typebreak"/>
+traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">operator&gt;&gt;</a> (std::basic_istream&lt; charT, traits &gt; &amp;in, <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a972fb39595e902be6c50629356b44e5b">testAll</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a509778d505a3c8a0b335817150eaead2">testBitManipulations</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a6b7f5122683b6d924bf86c7d1507206b">testAddSubtract</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#affe2e221777d4263a420d014fa9640d0">testMultiply</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4ed78ff75865ae44a00d3709dd88c3a1">testDivideMod</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae4ef5f20964fa995df7828f27bd7adbe">testConvert</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae3305f62ca9be58fbc11dbd4c703f38b">testStreams</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aa1dbeb0c1ad12e8a8de7efb6c47e455f">testRandom</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac40068d64f8c4d9002a0687935888c42">testMontyMultiply</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a9cce0401174b9ae173671b0800c5f457">testMontyPowerMod</a> ()</td></tr>
+<tr><td colspan="2"><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">no_callback</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a> = (std::numeric_limits&lt;size_t&gt;::max)()</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>namespace for all extended integer classes and functions. </p>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="ac8a660c33746c536469d347307b8da7a"></a><!-- doxytag: member="xint::callback_t" ref="ac8a660c33746c536469d347307b8da7a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef boost::function&lt;bool ()&gt; <a class="el" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">xint::callback_t</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00083">83</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad63045584f06221eb6a7581ad3091582"></a><!-- doxytag: member="xint::token" ref="ad63045584f06221eb6a7581ad3091582" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef std::auto_ptr&lt;<a class="el" href="structxint_1_1detail_1_1token.html">detail::token</a>&gt; <a class="el" href="structxint_1_1detail_1_1token.html">xint::token</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00081">81</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ac9e4ed282bafa93dbf608350df0127ba"></a><!-- doxytag: member="xint::abs" ref="ac9e4ed282bafa93dbf608350df0127ba" args="(const integer &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::abs </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00381">operator&lt;&lt;()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7cc636a05af16eba73014bf88273d163"></a><!-- doxytag: member="xint::add" ref="a7cc636a05af16eba73014bf88273d163" args="(const integer &amp;n1, const integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::add </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00018">operator+()</a>, and <a class="el" href="integer_8cpp_source.html#l00132">xint::integer::operator+=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4b5a1a791ba11bb8f158a3b56bd9723e"></a><!-- doxytag: member="xint::allow_exceptions" ref="a4b5a1a791ba11bb8f158a3b56bd9723e" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structxint_1_1detail_1_1token.html">token</a> xint::allow_exceptions </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00408">operator&gt;&gt;()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a06138585f07fe098e24718c46e3078e1"></a><!-- doxytag: member="xint::bitwise_and" ref="a06138585f07fe098e24718c46e3078e1" args="(const integer &amp;n1, const integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::bitwise_and </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00023">operator&amp;()</a>, and <a class="el" href="integer_8cpp_source.html#l00180">xint::integer::operator&amp;=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8cd0a0dbc779e5a75c9e2f8027474e9a"></a><!-- doxytag: member="xint::bitwise_or" ref="a8cd0a0dbc779e5a75c9e2f8027474e9a" args="(const integer &amp;n1, const integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::bitwise_or </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00024">operator|()</a>, and <a class="el" href="integer_8cpp_source.html#l00181">xint::integer::operator|=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9ffe18a09f5dd354af7b967b032d3cbe"></a><!-- doxytag: member="xint::bitwise_xor" ref="a9ffe18a09f5dd354af7b967b032d3cbe" args="(const integer &amp;n1, const integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::bitwise_xor </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00025">operator^()</a>, and <a class="el" href="integer_8cpp_source.html#l00182">xint::integer::operator^=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae7e3f6afc701f6e8873a407bb418d04c"></a><!-- doxytag: member="xint::block_exceptions" ref="ae7e3f6afc701f6e8873a407bb418d04c" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structxint_1_1detail_1_1token.html">token</a> xint::block_exceptions </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8982e3e3ab7c1c763416eadc479d9724"></a><!-- doxytag: member="xint::clearbit" ref="a8982e3e3ab7c1c763416eadc479d9724" args="(integer &amp;n, size_t bit)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::clearbit </td>
+ <td>(</td>
+ <td class="paramtype">integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>bit</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aff82dd47fae4297b96282371abf4db06"></a><!-- doxytag: member="xint::compare" ref="aff82dd47fae4297b96282371abf4db06" args="(const integer &amp;b1, const integer &amp;b2, bool ignoresign)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int xint::compare </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>b1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>b2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>ignoresign</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="compare_8cpp_source.html#l00056">operator!=()</a>, <a class="el" href="compare_8cpp_source.html#l00057">operator&lt;()</a>, <a class="el" href="compare_8cpp_source.html#l00059">operator&lt;=()</a>, <a class="el" href="compare_8cpp_source.html#l00055">operator==()</a>, <a class="el" href="compare_8cpp_source.html#l00058">operator&gt;()</a>, and <a class="el" href="compare_8cpp_source.html#l00060">operator&gt;=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abf3d47f1ef1fdf334097fab055886a44"></a><!-- doxytag: member="xint::divide" ref="abf3d47f1ef1fdf334097fab055886a44" args="(const integer &amp;dividend, const integer &amp;divisor)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::divide </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>dividend</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>divisor</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00021">operator/()</a>, and <a class="el" href="integer_8cpp_source.html#l00170">xint::integer::operator/=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a23d0a0bb05cec1917d96d6aaceeb875d"></a><!-- doxytag: member="xint::divide_r" ref="a23d0a0bb05cec1917d96d6aaceeb875d" args="(const integer &amp;d1, const integer &amp;d2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::pair&lt; <a class="el" href="classxint_1_1integer.html">integer</a>, <a class="el" href="classxint_1_1integer.html">integer</a> &gt; xint::divide_r </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>d1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>d2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac8be41374700d89400f5ecddf0f789e3"></a><!-- doxytag: member="xint::exceptions_allowed" ref="ac8be41374700d89400f5ecddf0f789e3" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::exceptions_allowed </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aba188df925c87a0f33a79328e31e1a50"></a><!-- doxytag: member="xint::factorial" ref="aba188df925c87a0f33a79328e31e1a50" args="(size_t n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::factorial </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac2ac2f74b45e4179560d845e6310be9a"></a><!-- doxytag: member="xint::from_binary" ref="ac2ac2f74b45e4179560d845e6310be9a" args="(const std::string &amp;str)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::from_binary </td>
+ <td>(</td>
+ <td class="paramtype">const std::string &amp;&nbsp;</td>
+ <td class="paramname"> <em>str</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad9dcb2b835be5f8ee918979945911ac0"></a><!-- doxytag: member="xint::from_string" ref="ad9dcb2b835be5f8ee918979945911ac0" args="(const std::string &amp;str, size_t base)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::from_string </td>
+ <td>(</td>
+ <td class="paramtype">const std::string &amp;&nbsp;</td>
+ <td class="paramname"> <em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>base</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00031">xint::integer::integer()</a>, and <a class="el" href="xint_8hpp_source.html#l00408">operator&gt;&gt;()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a93ed16c5350b34ca22108e48b51918a5"></a><!-- doxytag: member="xint::fromMontgomeryForm" ref="a93ed16c5350b34ca22108e48b51918a5" args="(const integer &amp;n, const integer &amp;m)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::fromMontgomeryForm </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>m</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac9e11516ac502e97be1902cde50f97e7"></a><!-- doxytag: member="xint::gcd" ref="ac9e11516ac502e97be1902cde50f97e7" args="(const integer &amp;num1, const integer &amp;num2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::gcd </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>num1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a07bc7378c8a55e5f92aaef6d8b8ce952"></a><!-- doxytag: member="xint::getbit" ref="a07bc7378c8a55e5f92aaef6d8b8ce952" args="(const integer &amp;n, size_t bit)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::getbit </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>bit</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afcfbe1d95a8dabc615e97565c0ba768c"></a><!-- doxytag: member="xint::highestbit" ref="afcfbe1d95a8dabc615e97565c0ba768c" args="(const integer &amp;n, size_t defaultValue)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">size_t xint::highestbit </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>defaultValue</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afd561fd7c7631267fbc7e5c75c2bde71"></a><!-- doxytag: member="xint::inverse0" ref="afd561fd7c7631267fbc7e5c75c2bde71" args="(const integer &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> xint::inverse0 </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4a79f60ebe198eadf10b63924018ce66"></a><!-- doxytag: member="xint::invmod" ref="a4a79f60ebe198eadf10b63924018ce66" args="(const integer &amp;n, const integer &amp;m)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::invmod </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>m</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab205c4e52dbc6825cefe3a251f6ca99f"></a><!-- doxytag: member="xint::is_prime" ref="ab205c4e52dbc6825cefe3a251f6ca99f" args="(const integer &amp;n, callback_t callback)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int xint::is_prime </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">callback_t&nbsp;</td>
+ <td class="paramname"> <em>callback</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a17c5e4e807cfa425f48d9f5b464bc8dc"></a><!-- doxytag: member="xint::lcm" ref="a17c5e4e807cfa425f48d9f5b464bc8dc" args="(const integer &amp;num1, const integer &amp;num2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::lcm </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>num1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa074495871d366c760c5b0713f5ef048"></a><!-- doxytag: member="xint::log2" ref="aa074495871d366c760c5b0713f5ef048" args="(const integer &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">size_t xint::log2 </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00126">xint::integer::hex_digits()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a20e8cf2664222955e68f2ef9020bb196"></a><!-- doxytag: member="xint::lowestbit" ref="a20e8cf2664222955e68f2ef9020bb196" args="(const integer &amp;n, size_t defaultValue)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">size_t xint::lowestbit </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>defaultValue</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af7a1a866478f5c0a2bc4615785f17e1a"></a><!-- doxytag: member="xint::mod" ref="af7a1a866478f5c0a2bc4615785f17e1a" args="(const integer &amp;n, const integer &amp;modBy)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::mod </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>modBy</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00022">operator%()</a>, and <a class="el" href="integer_8cpp_source.html#l00171">xint::integer::operator%=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a722769c7d01e06d9f82eae07a280160c"></a><!-- doxytag: member="xint::montgomeryMultiplyMod" ref="a722769c7d01e06d9f82eae07a280160c" args="(const integer &amp;a, const integer &amp;b, const integer &amp;n, digit_t nPrime0)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::montgomeryMultiplyMod </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">digit_t&nbsp;</td>
+ <td class="paramname"> <em>nPrime0</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7d7e8604c467bc007820c60e1bc21626"></a><!-- doxytag: member="xint::montgomeryPowerMod" ref="a7d7e8604c467bc007820c60e1bc21626" args="(const integer &amp;a, const integer &amp;e, const integer &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::montgomeryPowerMod </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>e</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aaf3b26669d4e61f6af5dcae42b20e08b"></a><!-- doxytag: member="xint::montgomeryR" ref="aaf3b26669d4e61f6af5dcae42b20e08b" args="(const integer &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::montgomeryR </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a67ad0747617ca6e780d6f67d60260450"></a><!-- doxytag: member="xint::mulmod" ref="a67ad0747617ca6e780d6f67d60260450" args="(const integer &amp;n, const integer &amp;by, const integer &amp;modulus)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::mulmod </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>by</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>modulus</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af3d7059ec08bf075cec5685deca55c5d"></a><!-- doxytag: member="xint::multiply" ref="af3d7059ec08bf075cec5685deca55c5d" args="(const integer &amp;n, const integer &amp;by)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::multiply </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>by</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00020">operator*()</a>, and <a class="el" href="integer_8cpp_source.html#l00169">xint::integer::operator*=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7d9010c1d7edb88471977aecb0f91d26"></a><!-- doxytag: member="xint::negate" ref="a7d9010c1d7edb88471977aecb0f91d26" args="(const integer &amp;_n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::negate </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>_n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00101">xint::integer::_set_negative()</a>, and <a class="el" href="operators_8cpp_source.html#l00017">operator-()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa5b0dc228caee6523766326cf40297cd"></a><!-- doxytag: member="xint::operator&lt;&lt;" ref="aa5b0dc228caee6523766326cf40297cd" args="(std::basic_ostream&lt; charT, traits &gt; &amp;out, const xint::integer &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename charT , typename traits &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_ostream&lt;charT,traits&gt;&amp; xint::operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_ostream&lt; charT, traits &gt; &amp;&nbsp;</td>
+ <td class="paramname"> <em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00381">381</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs()</a>, <a class="el" href="integer_8cpp_source.html#l00122">xint::integer::nan()</a>, <a class="el" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">xint::detail::nan_text</a>, <a class="el" href="integer_8cpp_source.html#l00115">xint::integer::sign()</a>, and <a class="el" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">to_string()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a27a0715c66d7350b0f3800f6e161816f"></a><!-- doxytag: member="xint::operator&gt;&gt;" ref="a27a0715c66d7350b0f3800f6e161816f" args="(std::basic_istream&lt; charT, traits &gt; &amp;in, xint::integer &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename charT , typename traits &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_istream&lt;charT,traits&gt;&amp; xint::operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_istream&lt; charT, traits &gt; &amp;&nbsp;</td>
+ <td class="paramname"> <em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00408">408</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">allow_exceptions()</a>, <a class="el" href="xint_8hpp_source.html#l00086">autobase</a>, <a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">from_string()</a>, and <a class="el" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">xint::detail::nan_text</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a820d89c1d761a0a2c06479b1c1f9cecd"></a><!-- doxytag: member="xint::opt_secure_mode" ref="a820d89c1d761a0a2c06479b1c1f9cecd" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::opt_secure_mode </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad55aa4d44083238d9ec313511f5b1dfa"></a><!-- doxytag: member="xint::opt_thread_safe" ref="ad55aa4d44083238d9ec313511f5b1dfa" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::opt_thread_safe </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeee80b61e0cadc12f92752104e281b2c"></a><!-- doxytag: member="xint::pow" ref="aeee80b61e0cadc12f92752104e281b2c" args="(const integer &amp;n, const integer &amp;exponent)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::pow </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>exponent</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aea1ae2a423d401fa02d3f0621078fbf0"></a><!-- doxytag: member="xint::pow2" ref="aea1ae2a423d401fa02d3f0621078fbf0" args="(size_t exponent)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::pow2 </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>exponent</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1f8b43b537ff9de1d5612ed228a8fbe1"></a><!-- doxytag: member="xint::powmod" ref="a1f8b43b537ff9de1d5612ed228a8fbe1" args="(const integer &amp;n, const integer &amp;exponent, const integer &amp;modulus, bool noMontgomery)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::powmod </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>exponent</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>modulus</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>noMontgomery</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a342a8b817f74234c393fd9ed32f13f5f"></a><!-- doxytag: member="xint::random" ref="a342a8b817f74234c393fd9ed32f13f5f" args="(const T &amp;lowest, const T &amp;highest)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">T xint::random </td>
+ <td>(</td>
+ <td class="paramtype">const T &amp;&nbsp;</td>
+ <td class="paramname"> <em>lowest</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const T &amp;&nbsp;</td>
+ <td class="paramname"> <em>highest</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00370">370</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae04e871bc550a858d66901f64d42b17f"></a><!-- doxytag: member="xint::random" ref="ae04e871bc550a858d66901f64d42b17f" args="(const T &amp;lessThanThis)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">T xint::random </td>
+ <td>(</td>
+ <td class="paramtype">const T &amp;&nbsp;</td>
+ <td class="paramname"> <em>lessThanThis</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00365">365</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00359">random()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5e29caa361379cbda58d21cd569b0513"></a><!-- doxytag: member="xint::random" ref="a5e29caa361379cbda58d21cd569b0513" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">T xint::random </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00359">359</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00365">random()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a989d063e3298649704c804efca714ac6"></a><!-- doxytag: member="xint::random&lt; integer &gt;" ref="a989d063e3298649704c804efca714ac6" args="(const integer &amp;lowest, const integer &amp;highest)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::random&lt; <a class="el" href="classxint_1_1integer.html">integer</a> &gt; </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>lowest</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>highest</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6e66ca63ee442c0296ce41280fdae739"></a><!-- doxytag: member="xint::random_by_size" ref="a6e66ca63ee442c0296ce41280fdae739" args="(size_t bits, bool highBitOn, bool lowBitOn, bool canBeNegative)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::random_by_size </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>bits</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>highBitOn</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>lowBitOn</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>canBeNegative</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00370">random()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af148d73dc33718f9d893dac821ab699e"></a><!-- doxytag: member="xint::random_prime" ref="af148d73dc33718f9d893dac821ab699e" args="(size_t sizeInBits, callback_t callback)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::random_prime </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>sizeInBits</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">callback_t&nbsp;</td>
+ <td class="paramname"> <em>callback</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a16e22040e770d828903bb5d11ed6e046"></a><!-- doxytag: member="xint::seed_fallback" ref="a16e22040e770d828903bb5d11ed6e046" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::seed_fallback </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afeca589b50c2c8cb4bea98200ae51dbe"></a><!-- doxytag: member="xint::seed_manual" ref="afeca589b50c2c8cb4bea98200ae51dbe" args="(const std::string &amp;value)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::seed_manual </td>
+ <td>(</td>
+ <td class="paramtype">const std::string &amp;&nbsp;</td>
+ <td class="paramname"> <em>value</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ade2beef1aca9c4ebb119d16c2d068e70"></a><!-- doxytag: member="xint::seed_secure" ref="ade2beef1aca9c4ebb119d16c2d068e70" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::seed_secure </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adf2652627e78682c17e120816987984a"></a><!-- doxytag: member="xint::setbit" ref="adf2652627e78682c17e120816987984a" args="(integer &amp;n, size_t bit)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::setbit </td>
+ <td>(</td>
+ <td class="paramtype">integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>bit</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4f4dacd6f9398aaa500112731ab713ce"></a><!-- doxytag: member="xint::shift" ref="a4f4dacd6f9398aaa500112731ab713ce" args="(const integer &amp;n, int byBits)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::shift </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>byBits</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abe0717f5f1bed3f2c108e654f92f168a"></a><!-- doxytag: member="xint::shift_left" ref="abe0717f5f1bed3f2c108e654f92f168a" args="(const integer &amp;_n, size_t byBits)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::shift_left </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>_n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>byBits</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00178">xint::integer::operator&lt;&lt;()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a33005f5e57bca2418fae44952e28bbbf"></a><!-- doxytag: member="xint::shift_right" ref="a33005f5e57bca2418fae44952e28bbbf" args="(const integer &amp;_n, size_t byBits)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::shift_right </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>_n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>byBits</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00179">xint::integer::operator&gt;&gt;()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0aec423511839fd784b1654389dfcf5b"></a><!-- doxytag: member="xint::sqr" ref="a0aec423511839fd784b1654389dfcf5b" args="(const integer &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::sqr </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a594bd29593aad9a1c047af22e91e749c"></a><!-- doxytag: member="xint::sqrmod" ref="a594bd29593aad9a1c047af22e91e749c" args="(const integer &amp;n, const integer &amp;modulus)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::sqrmod </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>modulus</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a74891726f8af86736169dd43b929ad0a"></a><!-- doxytag: member="xint::sqrt" ref="a74891726f8af86736169dd43b929ad0a" args="(const integer &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::sqrt </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af196cd74cb23970032fddcce71957a80"></a><!-- doxytag: member="xint::subtract" ref="af196cd74cb23970032fddcce71957a80" args="(const integer &amp;n1, const integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::subtract </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00019">operator-()</a>, and <a class="el" href="integer_8cpp_source.html#l00146">xint::integer::operator-=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6b7f5122683b6d924bf86c7d1507206b"></a><!-- doxytag: member="xint::testAddSubtract" ref="a6b7f5122683b6d924bf86c7d1507206b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::testAddSubtract </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a972fb39595e902be6c50629356b44e5b"></a><!-- doxytag: member="xint::testAll" ref="a972fb39595e902be6c50629356b44e5b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::testAll </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a509778d505a3c8a0b335817150eaead2"></a><!-- doxytag: member="xint::testBitManipulations" ref="a509778d505a3c8a0b335817150eaead2" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::testBitManipulations </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae4ef5f20964fa995df7828f27bd7adbe"></a><!-- doxytag: member="xint::testConvert" ref="ae4ef5f20964fa995df7828f27bd7adbe" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::testConvert </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4ed78ff75865ae44a00d3709dd88c3a1"></a><!-- doxytag: member="xint::testDivideMod" ref="a4ed78ff75865ae44a00d3709dd88c3a1" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::testDivideMod </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac40068d64f8c4d9002a0687935888c42"></a><!-- doxytag: member="xint::testMontyMultiply" ref="ac40068d64f8c4d9002a0687935888c42" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::testMontyMultiply </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9cce0401174b9ae173671b0800c5f457"></a><!-- doxytag: member="xint::testMontyPowerMod" ref="a9cce0401174b9ae173671b0800c5f457" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::testMontyPowerMod </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="affe2e221777d4263a420d014fa9640d0"></a><!-- doxytag: member="xint::testMultiply" ref="affe2e221777d4263a420d014fa9640d0" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::testMultiply </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa1dbeb0c1ad12e8a8de7efb6c47e455f"></a><!-- doxytag: member="xint::testRandom" ref="aa1dbeb0c1ad12e8a8de7efb6c47e455f" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::testRandom </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae3305f62ca9be58fbc11dbd4c703f38b"></a><!-- doxytag: member="xint::testStreams" ref="ae3305f62ca9be58fbc11dbd4c703f38b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::testStreams </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a21bd738b96eec205eedc7a9960e9a6e5"></a><!-- doxytag: member="xint::to" ref="a21bd738b96eec205eedc7a9960e9a6e5" args="(const integer &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">T xint::to </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00343">343</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00210">xint::integer::_get_digit()</a>, <a class="el" href="integer_8cpp_source.html#l00214">xint::integer::_get_length()</a>, <a class="el" href="integer_8cpp_source.html#l00218">xint::integer::_throw_if_nan()</a>, <a class="el" href="xint_8hpp_source.html#l00072">xint::detail::digit_overflowbit</a>, and <a class="el" href="integer_8cpp_source.html#l00115">xint::integer::sign()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab8f33201a251e3e118dc82f214e22aeb"></a><!-- doxytag: member="xint::to_binary" ref="ab8f33201a251e3e118dc82f214e22aeb" args="(const integer &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string xint::to_binary </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a600fbf8ebbaa7253dd96817a404001fd"></a><!-- doxytag: member="xint::to_string" ref="a600fbf8ebbaa7253dd96817a404001fd" args="(const integer &amp;n, size_t base, bool upperCase)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string xint::to_string </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>base</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>upperCase</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00381">operator&lt;&lt;()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab8e85cd5425fcec419c07155e2a91e13"></a><!-- doxytag: member="xint::toMontgomeryForm" ref="ab8e85cd5425fcec419c07155e2a91e13" args="(const integer &amp;n, const integer &amp;m)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::toMontgomeryForm </td>
+ <td>(</td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer &amp;&nbsp;</td>
+ <td class="paramname"> <em>m</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="a7a5434a5f5fb1db19f0de18014c4fc41"></a><!-- doxytag: member="xint::autobase" ref="a7a5434a5f5fb1db19f0de18014c4fc41" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const size_t <a class="el" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">xint::autobase</a> = (std::numeric_limits&lt;size_t&gt;::max)()</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00086">86</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00408">operator&gt;&gt;()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a44496f258b36237d4cea35558a71017a"></a><!-- doxytag: member="xint::no_callback" ref="a44496f258b36237d4cea35558a71017a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> <a class="el" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">xint::no_callback</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00084">84</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/namespacexint_1_1detail.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespacexint_1_1detail.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,241 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+ <div class="navpath"><a class="el" href="namespacexint.html">xint</a>::<a class="el" href="namespacexint_1_1detail.html">detail</a>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::detail Namespace Reference</h1>
+<p>implementation details, normal users should not need to use these.
+More...</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1token.html">token</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a></td></tr>
+<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef boost::uintmax_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef boost::uint_t<br class="typebreak"/>
+&lt; std::numeric_limits<br class="typebreak"/>
+&lt; <a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> &gt;::digits/2 &gt;<br class="typebreak"/>
+::fast&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a></td></tr>
+<tr><td colspan="2"><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> = std::numeric_limits&lt;<a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>&gt;::digits</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">digit_hibit</a> = (<a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(1) &lt;&lt; (<a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>-1))</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">doubledigit_hibit</a> = (<a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(1) &lt;&lt; (<a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>*2-1))</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a> = (<a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(1) &lt;&lt; <a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a> = <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(<a class="el" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>-1)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">nan_text</a></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>implementation details, normal users should not need to use these. </p>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="a8843fb7e364832d8d5983de28bdbcf34"></a><!-- doxytag: member="xint::detail::digit_t" ref="a8843fb7e364832d8d5983de28bdbcf34" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef boost::uint_t&lt;std::numeric_limits&lt;<a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>&gt;::digits / 2&gt;::fast <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">xint::detail::digit_t</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00067">67</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aceb9b654c1c2daaf377b31bd4a089750"></a><!-- doxytag: member="xint::detail::doubledigit_t" ref="aceb9b654c1c2daaf377b31bd4a089750" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef boost::uintmax_t <a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">xint::detail::doubledigit_t</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00065">65</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="a9bd9e8d55061238d63913020d2721518"></a><!-- doxytag: member="xint::detail::bits_per_digit" ref="a9bd9e8d55061238d63913020d2721518" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const size_t <a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">xint::detail::bits_per_digit</a> = std::numeric_limits&lt;<a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>&gt;::digits</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00069">69</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00061">xint::integer::_init()</a>, <a class="el" href="data__t_8cpp_source.html#l00251">xint::detail::data_t::shift_left()</a>, and <a class="el" href="data__t_8cpp_source.html#l00279">xint::detail::data_t::shift_right()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a116bb5ce94c55f0eae3338d69fd5e8eb"></a><!-- doxytag: member="xint::detail::digit_hibit" ref="a116bb5ce94c55f0eae3338d69fd5e8eb" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> <a class="el" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">xint::detail::digit_hibit</a> = (<a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(1) &lt;&lt; (<a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>-1))</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00070">70</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a051753e1bf43dcc77eaa93b8d4e49197"></a><!-- doxytag: member="xint::detail::digit_mask" ref="a051753e1bf43dcc77eaa93b8d4e49197" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> <a class="el" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">xint::detail::digit_mask</a> = <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(<a class="el" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>-1)</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00073">73</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00061">xint::integer::_init()</a>, and <a class="el" href="xint_8hpp_source.html#l00319">xint::integer::integer()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6746855fd8cde164294a46108d502e6a"></a><!-- doxytag: member="xint::detail::digit_overflowbit" ref="a6746855fd8cde164294a46108d502e6a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> <a class="el" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">xint::detail::digit_overflowbit</a> = (<a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(1) &lt;&lt; <a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>)</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00072">72</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00198">xint::detail::data_t::add()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">xint::detail::data_t::invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00225">xint::detail::data_t::subtract()</a>, and <a class="el" href="xint_8hpp_source.html#l00343">xint::to()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2af0686427ee285bd715330f12fcbc1c"></a><!-- doxytag: member="xint::detail::doubledigit_hibit" ref="a2af0686427ee285bd715330f12fcbc1c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> <a class="el" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">xint::detail::doubledigit_hibit</a> = (<a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(1) &lt;&lt; (<a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>*2-1))</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00071">71</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aede27c67f3308e0805fc3093ffe6f4ce"></a><!-- doxytag: member="xint::detail::nan_text" ref="aede27c67f3308e0805fc3093ffe6f4ce" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const std::string <a class="el" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">xint::detail::nan_text</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00381">xint::operator&lt;&lt;()</a>, and <a class="el" href="xint_8hpp_source.html#l00408">xint::operator&gt;&gt;()</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/operators_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/operators_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,395 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/operators.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operator+</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operator-</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#afb1bc6b2cfa304d0a0cc05e91233c622">operator+</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#aed0b4dc3caadb337775cebf4434c9b4a">operator-</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#a9b5f3e5db8d7dac5c83687433265d679">operator*</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#ade5c31d601a221f90102f09d3985a1b1">operator/</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#ab5c9d4bfca6c406876f2317fe4ebdc17">operator%</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#a279ea8fa85f56774ecf87a9f70e44986">operator&amp;</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#ae43c9ba6b179f6336284e00609951c7c">operator|</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">operator^</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+</table>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ab5c9d4bfca6c406876f2317fe4ebdc17"></a><!-- doxytag: member="operators.cpp::operator%" ref="ab5c9d4bfca6c406876f2317fe4ebdc17" args="(const xint::integer &amp;num1, const xint::integer &amp;num2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator% </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00022">22</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">xint::mod()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a279ea8fa85f56774ecf87a9f70e44986"></a><!-- doxytag: member="operators.cpp::operator&amp;" ref="a279ea8fa85f56774ecf87a9f70e44986" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator&amp; </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00023">23</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">xint::bitwise_and()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9b5f3e5db8d7dac5c83687433265d679"></a><!-- doxytag: member="operators.cpp::operator*" ref="a9b5f3e5db8d7dac5c83687433265d679" args="(const xint::integer &amp;num1, const xint::integer &amp;num2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator* </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00020">20</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">xint::multiply()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afb1bc6b2cfa304d0a0cc05e91233c622"></a><!-- doxytag: member="operators.cpp::operator+" ref="afb1bc6b2cfa304d0a0cc05e91233c622" args="(const xint::integer &amp;num1, const xint::integer &amp;num2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator+ </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00018">18</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint::add()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae6250b27c1717d3dfd4269c899ea1a0f"></a><!-- doxytag: member="operators.cpp::operator+" ref="ae6250b27c1717d3dfd4269c899ea1a0f" args="(const xint::integer &amp;a)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="classxint_1_1integer.html">xint::integer</a>&amp; operator+ </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>a</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00016">16</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aed0b4dc3caadb337775cebf4434c9b4a"></a><!-- doxytag: member="operators.cpp::operator&#45;" ref="aed0b4dc3caadb337775cebf4434c9b4a" args="(const xint::integer &amp;num1, const xint::integer &amp;num2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator- </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00019">19</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint::subtract()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a686d2e5cc5766a1d8bc21c77f01ffa19"></a><!-- doxytag: member="operators.cpp::operator&#45;" ref="a686d2e5cc5766a1d8bc21c77f01ffa19" args="(const xint::integer &amp;a)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator- </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>a</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00017">17</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">xint::negate()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ade5c31d601a221f90102f09d3985a1b1"></a><!-- doxytag: member="operators.cpp::operator/" ref="ade5c31d601a221f90102f09d3985a1b1" args="(const xint::integer &amp;num1, const xint::integer &amp;num2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator/ </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00021">21</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">xint::divide()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1e8b5454f6cf0c613a259a6ad038b6ac"></a><!-- doxytag: member="operators.cpp::operator^" ref="a1e8b5454f6cf0c613a259a6ad038b6ac" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator^ </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00025">25</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">xint::bitwise_xor()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae43c9ba6b179f6336284e00609951c7c"></a><!-- doxytag: member="operators.cpp::operator|" ref="ae43c9ba6b179f6336284e00609951c7c" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator| </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00024">24</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">xint::bitwise_or()</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/operators_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/operators_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,111 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/operators.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the definitions for the basic math operators.</span>
+<a name="l00012"></a>00012 <span class="comment">*/</span>
+<a name="l00013"></a>00013
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00015"></a>00015
+<a name="l00016"></a><a class="code" href="xint_8hpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">00016</a> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; <a class="code" href="operators_8cpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operator+</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; a) { <span class="keywordflow">return</span> a; }
+<a name="l00017"></a><a class="code" href="xint_8hpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">00017</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operator-</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; a) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">xint::negate</a>(a); }
+<a name="l00018"></a><a class="code" href="xint_8hpp.html#aaaba5fbb60778e5deaf88549f5ec0278">00018</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operator+</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint::add</a>(num1, num2); }
+<a name="l00019"></a><a class="code" href="xint_8hpp.html#a2211cadf1f4c3abe22309fe025449687">00019</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operator-</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint::subtract</a>(num1, num2); }
+<a name="l00020"></a><a class="code" href="xint_8hpp.html#a17b0f742cf4240f0453ecdc690527f55">00020</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a9b5f3e5db8d7dac5c83687433265d679">operator*</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">xint::multiply</a>(num1, num2); }
+<a name="l00021"></a><a class="code" href="xint_8hpp.html#a92017cd694e753636affcb05919a7dc2">00021</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ade5c31d601a221f90102f09d3985a1b1">operator/</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">xint::divide</a>(num1, num2); }
+<a name="l00022"></a><a class="code" href="xint_8hpp.html#a33c06e966e5497a57df414783f4bd32d">00022</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ab5c9d4bfca6c406876f2317fe4ebdc17">operator%</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">xint::mod</a>(num1, num2); }
+<a name="l00023"></a><a class="code" href="xint_8hpp.html#a279ea8fa85f56774ecf87a9f70e44986">00023</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a279ea8fa85f56774ecf87a9f70e44986">operator&amp;</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">xint::bitwise_and</a>(n1, n2); }
+<a name="l00024"></a><a class="code" href="xint_8hpp.html#ae43c9ba6b179f6336284e00609951c7c">00024</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ae43c9ba6b179f6336284e00609951c7c">operator|</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">xint::bitwise_or</a>(n1, n2); }
+<a name="l00025"></a><a class="code" href="xint_8hpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">00025</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">operator^</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">xint::bitwise_xor</a>(n1, n2); }
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/powers_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/powers_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,106 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/powers.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+<code>#include &quot;../xint_data_t.hpp&quot;</code><br/>
+<code>#include &lt;vector&gt;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aea1ae2a423d401fa02d3f0621078fbf0">xint::pow2</a> (size_t exponent)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">xint::sqr</a> (const integer &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aeee80b61e0cadc12f92752104e281b2c">xint::pow</a> (const integer &amp;n, const integer &amp;exponent)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aba188df925c87a0f33a79328e31e1a50">xint::factorial</a> (size_t n)</td></tr>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/powers_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/powers_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,209 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/powers.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the definitions for functions related to powers of a</span>
+<a name="l00012"></a>00012 <span class="comment"> number.</span>
+<a name="l00013"></a>00013 <span class="comment">*/</span>
+<a name="l00014"></a>00014
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include &quot;../xint_data_t.hpp&quot;</span>
+<a name="l00017"></a>00017
+<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020 <span class="keyword">namespace </span>xint {
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 <span class="keyword">using namespace </span>detail;
+<a name="l00023"></a>00023
+<a name="l00024"></a>00024 <span class="keyword">namespace </span>{
+<a name="l00025"></a>00025
+<a name="l00026"></a>00026 <span class="keywordtype">bool</span> addOverflow(<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> &amp;n1, <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> n2) {
+<a name="l00027"></a>00027 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> t=(n1&gt;&gt;1)+(n2&gt;&gt;1);
+<a name="l00028"></a>00028 <span class="keywordflow">if</span> ((n1&amp;1) &amp;&amp; (n2&amp;1)) ++t;
+<a name="l00029"></a>00029 n1+=n2;
+<a name="l00030"></a>00030 <span class="keywordflow">if</span> (t &amp; <a class="code" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">doubledigit_hibit</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00031"></a>00031 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00032"></a>00032 }
+<a name="l00033"></a>00033
+<a name="l00034"></a>00034 } <span class="comment">// namespace</span>
+<a name="l00035"></a>00035
+<a name="l00036"></a>00036 integer <a class="code" href="namespacexint.html#aea1ae2a423d401fa02d3f0621078fbf0">pow2</a>(<span class="keywordtype">size_t</span> exponent) {
+<a name="l00037"></a>00037 integer r;
+<a name="l00038"></a>00038 <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a>(r, exponent);
+<a name="l00039"></a>00039 <span class="keywordflow">return</span> r;
+<a name="l00040"></a>00040 }
+<a name="l00041"></a>00041
+<a name="l00042"></a>00042 integer <a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">sqr</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00043"></a>00043 n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00044"></a>00044
+<a name="l00045"></a>00045 <span class="keyword">const</span> data_t *ndata=n._get_data();
+<a name="l00046"></a>00046 std::vector&lt;doubledigit_t&gt; a(ndata-&gt;mLength*2+1, 0);
+<a name="l00047"></a>00047 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> *adigit=&amp;a[0];
+<a name="l00048"></a>00048
+<a name="l00049"></a>00049 <span class="keywordtype">int</span> i, j;
+<a name="l00050"></a>00050 integer addend;
+<a name="l00051"></a>00051 data_t *addenddata=addend._get_data();
+<a name="l00052"></a>00052 addenddata-&gt;alloc(ndata-&gt;mLength*2+1);
+<a name="l00053"></a>00053
+<a name="l00054"></a>00054 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *ndigitip=ndata-&gt;digits;
+<a name="l00055"></a>00055 <span class="keywordflow">for</span> (i=0; i&lt;ndata-&gt;mLength; ++i, ++ndigitip) {
+<a name="l00056"></a>00056 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> ndigiti=*ndigitip;
+<a name="l00057"></a>00057 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> t=(<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(ndigiti) * ndigiti);
+<a name="l00058"></a>00058 <span class="keywordflow">if</span> (addOverflow(adigit[2*i], t)) ++addenddata-&gt;digits[2*i+2];
+<a name="l00059"></a>00059
+<a name="l00060"></a>00060 for (j=i+1; j&lt;ndata-&gt;mLength; ++j) {
+<a name="l00061"></a>00061 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> t=(<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(ndata-&gt;digits[j]) * ndigiti);
+<a name="l00062"></a>00062 <span class="keywordflow">if</span> (t &amp; <a class="code" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">doubledigit_hibit</a>) ++addenddata-&gt;digits[i+j+2];
+<a name="l00063"></a>00063 t&lt;&lt;=1;
+<a name="l00064"></a>00064 <span class="keywordflow">if</span> (addOverflow(adigit[i+j], t)) ++addenddata-&gt;digits[i+j+2];
+<a name="l00065"></a>00065 }
+<a name="l00066"></a>00066 }
+<a name="l00067"></a>00067
+<a name="l00068"></a>00068 integer answer;
+<a name="l00069"></a>00069 data_t *answerdata=answer._get_data();
+<a name="l00070"></a>00070 answerdata-&gt;alloc(ndata-&gt;mLength*2+1);
+<a name="l00071"></a>00071
+<a name="l00072"></a>00072 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> carry=0;
+<a name="l00073"></a>00073 <span class="keywordflow">for</span> (i=0, j=ndata-&gt;mLength*2+1; i&lt;j; ++i) {
+<a name="l00074"></a>00074 <span class="keywordflow">if</span> (addOverflow(carry, adigit[i])) ++addenddata-&gt;digits[i+2];
+<a name="l00075"></a>00075 answerdata-&gt;digits[i]=<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(carry);
+<a name="l00076"></a>00076 carry&gt;&gt;=<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>;
+<a name="l00077"></a>00077 }
+<a name="l00078"></a>00078
+<a name="l00079"></a>00079 answerdata-&gt;skipLeadingZeros();
+<a name="l00080"></a>00080 addenddata-&gt;skipLeadingZeros();
+<a name="l00081"></a>00081 answer+=addend;
+<a name="l00082"></a>00082
+<a name="l00083"></a>00083 <span class="keywordflow">return</span> answer;
+<a name="l00084"></a>00084 }
+<a name="l00085"></a>00085
+<a name="l00086"></a>00086 integer <a class="code" href="namespacexint.html#aeee80b61e0cadc12f92752104e281b2c">pow</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; exponent) {
+<a name="l00087"></a>00087 <span class="keywordtype">bool</span> neg=(n.sign() &lt; 0 &amp;&amp; exponent.odd());
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 <span class="keywordtype">int</span> length=exponent.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>(), lastBitCount=0;
+<a name="l00090"></a>00090 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> ee(exponent._get_digit(length-1));
+<a name="l00091"></a>00091 <span class="keywordflow">while</span> (ee != 0) { ee &gt;&gt;= 1; ++lastBitCount; }
+<a name="l00092"></a>00092
+<a name="l00093"></a>00093 integer p(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(n)), answer=<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>();
+<a name="l00094"></a>00094 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> eIndex=0; eIndex &lt; length; ++eIndex) {
+<a name="l00095"></a>00095 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> e(exponent._get_digit(eIndex));
+<a name="l00096"></a>00096
+<a name="l00097"></a>00097 <span class="keywordtype">int</span> bitCount(eIndex == length-1 ? lastBitCount : <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
+<a name="l00098"></a>00098 <span class="keywordflow">while</span> (bitCount-- &gt; 0) {
+<a name="l00099"></a>00099 <span class="keywordflow">if</span> (e &amp; 0x01) answer*=p;
+<a name="l00100"></a>00100 p=<a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">sqr</a>(p);
+<a name="l00101"></a>00101 e &gt;&gt;= 1;
+<a name="l00102"></a>00102 }
+<a name="l00103"></a>00103 }
+<a name="l00104"></a>00104
+<a name="l00105"></a>00105 answer._set_negative(neg);
+<a name="l00106"></a>00106 <span class="keywordflow">return</span> answer;
+<a name="l00107"></a>00107 }
+<a name="l00108"></a>00108
+<a name="l00109"></a>00109 integer <a class="code" href="namespacexint.html#aba188df925c87a0f33a79328e31e1a50">factorial</a>(<span class="keywordtype">size_t</span> n) {
+<a name="l00110"></a>00110 integer r(<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>());
+<a name="l00111"></a>00111 <span class="keywordflow">if</span> (n == (std::numeric_limits&lt;size_t&gt;::max)()) {
+<a name="l00112"></a>00112 <span class="comment">// It&#39;s highly unlikely that the system will be able to calculate this,</span>
+<a name="l00113"></a>00113 <span class="comment">// or that anyone might want to, but someday it will be possible. This</span>
+<a name="l00114"></a>00114 <span class="comment">// code keeps the function from going into an infinite loop if/when that</span>
+<a name="l00115"></a>00115 <span class="comment">// happens.</span>
+<a name="l00116"></a>00116 r=(std::numeric_limits&lt;size_t&gt;::max)();
+<a name="l00117"></a>00117 --n;
+<a name="l00118"></a>00118 }
+<a name="l00119"></a>00119 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=2; i&lt;=n; ++i) r*=i;
+<a name="l00120"></a>00120 <span class="keywordflow">return</span> r;
+<a name="l00121"></a>00121 }
+<a name="l00122"></a>00122
+<a name="l00123"></a>00123 } <span class="comment">// namespace xint</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/primes_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/primes_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,103 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/primes.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+<code>#include &lt;vector&gt;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f">xint::is_prime</a> (const integer &amp;n, callback_t callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af148d73dc33718f9d893dac821ab699e">xint::random_prime</a> (size_t sizeInBits, callback_t callback)</td></tr>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/primes_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/primes_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,199 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/primes.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the definitions for functions related to prime numbers.</span>
+<a name="l00012"></a>00012 <span class="comment">*/</span>
+<a name="l00013"></a>00013
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00015"></a>00015
+<a name="l00016"></a>00016 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00017"></a>00017
+<a name="l00018"></a>00018 <span class="keyword">namespace </span>xint {
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020 <span class="keyword">namespace </span>{
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 std::vector&lt;int&gt; sieveOfEratosthenes(<span class="keywordtype">int</span> upTo) {
+<a name="l00023"></a>00023 std::vector&lt;int&gt; sieve;
+<a name="l00024"></a>00024 sieve.reserve(upTo);
+<a name="l00025"></a>00025
+<a name="l00026"></a>00026 <span class="comment">// Zero and one aren&#39;t prime, by this definition.</span>
+<a name="l00027"></a>00027 sieve.push_back(0);
+<a name="l00028"></a>00028 sieve.push_back(0);
+<a name="l00029"></a>00029
+<a name="l00030"></a>00030 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> p=2; p&lt;upTo; ++p) sieve.push_back(p);
+<a name="l00031"></a>00031
+<a name="l00032"></a>00032 std::vector&lt;int&gt; ret;
+<a name="l00033"></a>00033
+<a name="l00034"></a>00034 <span class="keywordtype">int</span> *p=&amp;sieve[0], *e=p+upTo;
+<a name="l00035"></a>00035 <span class="keywordflow">while</span> (p&lt;e) {
+<a name="l00036"></a>00036 <span class="keywordflow">if</span> (*p==0) { ++p; <span class="keywordflow">continue</span>; }
+<a name="l00037"></a>00037 ret.push_back(*p);
+<a name="l00038"></a>00038
+<a name="l00039"></a>00039 <span class="keywordtype">int</span> *p2=p+(*p);
+<a name="l00040"></a>00040 <span class="keywordflow">while</span> (p2&lt;e) { *p2=0; p2+=*p; }
+<a name="l00041"></a>00041
+<a name="l00042"></a>00042 ++p;
+<a name="l00043"></a>00043 }
+<a name="l00044"></a>00044
+<a name="l00045"></a>00045 <span class="keywordflow">return</span> ret;
+<a name="l00046"></a>00046 }
+<a name="l00047"></a>00047
+<a name="l00048"></a>00048 <span class="comment">// The Miller-Rabin Probabilistic Test of Primality</span>
+<a name="l00049"></a>00049 <span class="keywordtype">int</span> isProbablePrimeBaseB(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer &amp;b, <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a>
+<a name="l00050"></a>00050 callback)
+<a name="l00051"></a>00051 {
+<a name="l00052"></a>00052 <span class="keyword">const</span> integer nMinus1(n - <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>());
+<a name="l00053"></a>00053
+<a name="l00054"></a>00054 <span class="comment">// Find r and a satisfying: n-1=2^a * r, r odd</span>
+<a name="l00055"></a>00055 integer r=nMinus1;
+<a name="l00056"></a>00056 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> a=0;
+<a name="l00057"></a>00057 <span class="keywordflow">while</span> (r.even()) { r &gt;&gt;= 1; ++a; }
+<a name="l00058"></a>00058
+<a name="l00059"></a>00059 <span class="comment">// We check the congruence class of b^((2^i)r) % n for each i</span>
+<a name="l00060"></a>00060 <span class="comment">// from 0 to a - 1. If any one is correct, then n passes.</span>
+<a name="l00061"></a>00061 <span class="comment">// Otherwise, n fails.</span>
+<a name="l00062"></a>00062 integer test=<a class="code" href="namespacexint.html#a1f8b43b537ff9de1d5612ed228a8fbe1">powmod</a>(b, r, n);
+<a name="l00063"></a>00063 <span class="keywordflow">if</span> (test==<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>() || test==nMinus1) <span class="keywordflow">return</span> 1; <span class="comment">// Better than 3/4 chance it&#39;s prime</span>
+<a name="l00064"></a>00064
+<a name="l00065"></a>00065 <span class="keywordflow">while</span> (a--&gt;0) {
+<a name="l00066"></a>00066 test=<a class="code" href="namespacexint.html#a594bd29593aad9a1c047af22e91e749c">sqrmod</a>(test, n);
+<a name="l00067"></a>00067 <span class="keywordflow">if</span> (test==nMinus1) <span class="keywordflow">return</span> 1;
+<a name="l00068"></a>00068 }
+<a name="l00069"></a>00069
+<a name="l00070"></a>00070 <span class="keywordflow">if</span> (callback &amp;&amp; !callback()) <span class="keywordflow">return</span> -1;
+<a name="l00071"></a>00071 <span class="keywordflow">return</span> 0;
+<a name="l00072"></a>00072 }
+<a name="l00073"></a>00073
+<a name="l00074"></a>00074 } <span class="comment">// namespace</span>
+<a name="l00075"></a>00075
+<a name="l00076"></a>00076 <span class="keywordtype">int</span> <a class="code" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f">is_prime</a>(<span class="keyword">const</span> integer&amp; n, <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> callback) {
+<a name="l00077"></a>00077 <span class="keywordflow">if</span> (n &lt; 2) {
+<a name="l00078"></a>00078 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;xint::is_prime cannot test numbers below 2&quot;</span>);
+<a name="l00079"></a>00079 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1;
+<a name="l00080"></a>00080 }
+<a name="l00081"></a>00081
+<a name="l00082"></a>00082 <span class="comment">// First we trial-divide it by the primes below 2000</span>
+<a name="l00083"></a>00083 <span class="keyword">static</span> <span class="keyword">const</span> std::vector&lt;int&gt; cLowPrimes(sieveOfEratosthenes(2000));
+<a name="l00084"></a>00084 std::vector&lt;int&gt;::const_iterator i=cLowPrimes.begin(), ie=cLowPrimes.end();
+<a name="l00085"></a>00085 <span class="keywordflow">for</span> (; i!=ie; ++i) <span class="keywordflow">if</span> ((n % *i)==0) <span class="keywordflow">return</span> (n==*i);
+<a name="l00086"></a>00086
+<a name="l00087"></a>00087 <span class="comment">// Run the number through the Miller-Rabin Probabilistic Test of Primality</span>
+<a name="l00088"></a>00088 <span class="comment">// a few times to see if it&#39;s actually (probably) prime.</span>
+<a name="l00089"></a>00089 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> count=0; count&lt;5; ++count) {
+<a name="l00090"></a>00090 <span class="keywordtype">int</span> k=random&lt;int&gt;();
+<a name="l00091"></a>00091 <span class="keywordtype">int</span> isP=isProbablePrimeBaseB(n, <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(k), callback);
+<a name="l00092"></a>00092 <span class="keywordflow">if</span> (isP &lt;= 0) <span class="keywordflow">return</span> isP;
+<a name="l00093"></a>00093 }
+<a name="l00094"></a>00094 <span class="keywordflow">return</span> 1; <span class="comment">// Appears to be prime!</span>
+<a name="l00095"></a>00095 }
+<a name="l00096"></a>00096
+<a name="l00097"></a>00097 integer <a class="code" href="namespacexint.html#af148d73dc33718f9d893dac821ab699e">random_prime</a>(<span class="keywordtype">size_t</span> sizeInBits, <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> callback) {
+<a name="l00098"></a>00098 <span class="comment">// Call the callback for the first time</span>
+<a name="l00099"></a>00099 <span class="keywordflow">if</span> (callback &amp;&amp; !callback()) <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00100"></a>00100
+<a name="l00101"></a>00101 integer pe=<a class="code" href="namespacexint.html#aea1ae2a423d401fa02d3f0621078fbf0">pow2</a>(sizeInBits+1);
+<a name="l00102"></a>00102 <span class="keywordflow">while</span> (1) {
+<a name="l00103"></a>00103 integer p(<a class="code" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size</a>(sizeInBits, <span class="keyword">true</span>, <span class="keyword">true</span>));
+<a name="l00104"></a>00104 <span class="keywordflow">while</span> (p &lt; pe) {
+<a name="l00105"></a>00105 <span class="keywordtype">int</span> r=<a class="code" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f">is_prime</a>(p, callback);
+<a name="l00106"></a>00106 <span class="keywordflow">if</span> (r &lt; 0) <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00107"></a>00107 <span class="keywordflow">if</span> (r == 1) <span class="keywordflow">return</span> p;
+<a name="l00108"></a>00108 p+=2;
+<a name="l00109"></a>00109 }
+<a name="l00110"></a>00110 }
+<a name="l00111"></a>00111 }
+<a name="l00112"></a>00112
+<a name="l00113"></a>00113 } <span class="comment">// namespace xint</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/primitives_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/primitives_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,109 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/primitives.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+<code>#include &quot;../xint_data_t.hpp&quot;</code><br/>
+<code>#include &lt;cassert&gt;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">xint::abs</a> (const integer &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">xint::negate</a> (const integer &amp;_n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint::add</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint::subtract</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">xint::multiply</a> (const integer &amp;n, const integer &amp;by)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">xint::divide</a> (const integer &amp;dividend, const integer &amp;divisor)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::pair&lt; integer, integer &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">xint::divide_r</a> (const integer &amp;d1, const integer &amp;d2)</td></tr>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/primitives_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/primitives_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,369 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/primitives.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the definitions for math primitives.</span>
+<a name="l00012"></a>00012 <span class="comment">*/</span>
+<a name="l00013"></a>00013
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../xint_data_t.hpp&quot;</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include &lt;cassert&gt;</span>
+<a name="l00017"></a>00017
+<a name="l00018"></a>00018 <span class="keyword">namespace </span>xint {
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020 <span class="keyword">using namespace </span>detail;
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 integer <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00023"></a>00023 <span class="keywordflow">return</span> (n &lt; 0 ? -n : n);
+<a name="l00024"></a>00024 }
+<a name="l00025"></a>00025
+<a name="l00026"></a>00026 integer <a class="code" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">negate</a>(<span class="keyword">const</span> integer&amp; _n) {
+<a name="l00027"></a>00027 _n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00028"></a>00028
+<a name="l00029"></a>00029 integer n(_n);
+<a name="l00030"></a>00030 n._make_unique();
+<a name="l00031"></a>00031 n._get_data()-&gt;negate();
+<a name="l00032"></a>00032 <span class="keywordflow">return</span> n;
+<a name="l00033"></a>00033 }
+<a name="l00034"></a>00034
+<a name="l00035"></a>00035 integer <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">add</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) {
+<a name="l00036"></a>00036 <span class="keywordflow">if</span> (n1.sign()==0) <span class="keywordflow">return</span> n2;
+<a name="l00037"></a>00037 <span class="keywordflow">if</span> (n2.sign()==0) <span class="keywordflow">return</span> n1;
+<a name="l00038"></a>00038
+<a name="l00039"></a>00039 <span class="keywordtype">bool</span> swapped=<span class="keyword">false</span>;
+<a name="l00040"></a>00040 <span class="keyword">const</span> data_t *n1data=n1.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>(), *n2data=n2._get_data();
+<a name="l00041"></a>00041 <span class="keywordflow">if</span> (n1data-&gt;mLength &lt; n2data-&gt;mLength) { swapped=<span class="keyword">true</span>; std::swap(n1data, n2data); }
+<a name="l00042"></a>00042
+<a name="l00043"></a>00043 integer r;
+<a name="l00044"></a>00044 data_t *rdata=r._get_data();
+<a name="l00045"></a>00045 rdata-&gt;copy(n1data, 1);
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 <span class="keywordflow">if</span> (n1.sign() != n2.sign()) {
+<a name="l00048"></a>00048 <span class="keywordtype">int</span> level=n2data-&gt;mLength;
+<a name="l00049"></a>00049
+<a name="l00050"></a>00050 integer _n2(swapped ? n1 : n2);
+<a name="l00051"></a>00051 _n2._make_unique();
+<a name="l00052"></a>00052 _n2._get_data()-&gt;invert();
+<a name="l00053"></a>00053
+<a name="l00054"></a>00054 rdata-&gt;add(_n2._get_data());
+<a name="l00055"></a>00055
+<a name="l00056"></a>00056 <span class="keywordflow">if</span> (rdata-&gt;mLength &gt; level) {
+<a name="l00057"></a>00057 --rdata-&gt;digits[level];
+<a name="l00058"></a>00058 rdata-&gt;skipLeadingZeros();
+<a name="l00059"></a>00059 } <span class="keywordflow">else</span> rdata-&gt;invert();
+<a name="l00060"></a>00060 } <span class="keywordflow">else</span> {
+<a name="l00061"></a>00061 rdata-&gt;add(*n2data);
+<a name="l00062"></a>00062 }
+<a name="l00063"></a>00063 <span class="keywordflow">return</span> r;
+<a name="l00064"></a>00064 }
+<a name="l00065"></a>00065
+<a name="l00066"></a>00066 integer <a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) {
+<a name="l00067"></a>00067 <span class="keywordflow">if</span> ((n1.sign() &lt; 0) != (n2.sign() &lt; 0)) {
+<a name="l00068"></a>00068 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">add</a>(n1, -n2);
+<a name="l00069"></a>00069 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n1.sign() &lt; 0) {
+<a name="l00070"></a>00070 <span class="keywordflow">return</span> -<a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(-n1, -n2);
+<a name="l00071"></a>00071 }
+<a name="l00072"></a>00072
+<a name="l00073"></a>00073 <span class="comment">// Signs are both guaranteed positive now.</span>
+<a name="l00074"></a>00074
+<a name="l00075"></a>00075 <span class="keywordflow">if</span> (n1 &lt; n2) {
+<a name="l00076"></a>00076 <span class="keywordflow">return</span> -<a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(n2, n1);
+<a name="l00077"></a>00077 } <span class="keywordflow">else</span> {
+<a name="l00078"></a>00078 integer r;
+<a name="l00079"></a>00079 data_t *rdata=r._get_data();
+<a name="l00080"></a>00080 rdata-&gt;copy(n1._get_data());
+<a name="l00081"></a>00081 rdata-&gt;subtract(*n2._get_data());
+<a name="l00082"></a>00082 <span class="keywordflow">return</span> r;
+<a name="l00083"></a>00083 }
+<a name="l00084"></a>00084 }
+<a name="l00085"></a>00085
+<a name="l00086"></a>00086 integer <a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">multiply</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; by) {
+<a name="l00087"></a>00087 <span class="keywordflow">if</span> (n.sign()==0 || by.sign()==0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>();
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 <span class="keyword">const</span> data_t *ndata=n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>(), *bydata=by._get_data();
+<a name="l00090"></a>00090 <span class="keywordflow">if</span> (ndata == bydata) <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">sqr</a>(n);
+<a name="l00091"></a>00091
+<a name="l00092"></a>00092 <span class="comment">// In multiplication, we know that the answer will be less than or equal to</span>
+<a name="l00093"></a>00093 <span class="comment">// the sum of the lengths of the operands.</span>
+<a name="l00094"></a>00094 integer answer;
+<a name="l00095"></a>00095 data_t *answerdata=answer._get_data();
+<a name="l00096"></a>00096 answerdata-&gt;alloc(ndata-&gt;mLength + bydata-&gt;mLength);
+<a name="l00097"></a>00097
+<a name="l00098"></a>00098 <span class="comment">// Now multiply the digits, starting at the least-significant digit.</span>
+<a name="l00099"></a>00099 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d1 = ndata-&gt;digits, *d1e = d1 + ndata-&gt;mLength;
+<a name="l00100"></a>00100 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d2e = bydata-&gt;digits + bydata-&gt;mLength;
+<a name="l00101"></a>00101 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> digit1=0; d1&lt;d1e; ++digit1, ++d1) {
+<a name="l00102"></a>00102 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d2=bydata-&gt;digits;
+<a name="l00103"></a>00103 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> digit2=0; d2&lt;d2e; ++digit2, ++d2) {
+<a name="l00104"></a>00104 <span class="comment">// First multiply the two digits</span>
+<a name="l00105"></a>00105 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> t=<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(*d1) * *d2;
+<a name="l00106"></a>00106
+<a name="l00107"></a>00107 <span class="comment">// Now add the result to the answer.</span>
+<a name="l00108"></a>00108 <span class="keywordtype">int</span> carry=0;
+<a name="l00109"></a>00109 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *a = answerdata-&gt;digits + digit1 + digit2;
+<a name="l00110"></a>00110 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> addt=<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(*a) + (t &amp; <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>);
+<a name="l00111"></a>00111 <span class="keywordflow">if</span> (addt &gt;= <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) carry=1;
+<a name="l00112"></a>00112 *a++=<span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(addt);
+<a name="l00113"></a>00113
+<a name="l00114"></a>00114 addt=*a + ((t &gt;&gt; <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>) &amp; <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>) + carry;
+<a name="l00115"></a>00115 <span class="keywordflow">if</span> (addt &gt;= <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) carry=1; <span class="keywordflow">else</span> carry=0;
+<a name="l00116"></a>00116 *a++=<span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(addt);
+<a name="l00117"></a>00117
+<a name="l00118"></a>00118 <span class="keywordflow">while</span> (carry) {
+<a name="l00119"></a>00119 addt=*a+1;
+<a name="l00120"></a>00120 *a++ = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(addt);
+<a name="l00121"></a>00121 <span class="keywordflow">if</span> (addt &lt; <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) <span class="keywordflow">break</span>;
+<a name="l00122"></a>00122 }
+<a name="l00123"></a>00123 }
+<a name="l00124"></a>00124 }
+<a name="l00125"></a>00125
+<a name="l00126"></a>00126 answer._set_negative(n.sign() != by.sign());
+<a name="l00127"></a>00127 answer._get_data()-&gt;skipLeadingZeros();
+<a name="l00128"></a>00128 <span class="keywordflow">return</span> answer;
+<a name="l00129"></a>00129 }
+<a name="l00130"></a>00130
+<a name="l00131"></a>00131 <span class="keyword">namespace </span>{
+<a name="l00132"></a>00132
+<a name="l00133"></a>00133 std::pair&lt;integer, integer&gt; divideBySingleDigit(<span class="keyword">const</span> integer&amp; d1, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d2) {
+<a name="l00134"></a>00134 <span class="keyword">const</span> data_t *d1data=d1._get_data();
+<a name="l00135"></a>00135
+<a name="l00136"></a>00136 integer quotient, remainder;
+<a name="l00137"></a>00137 data_t *qdata=quotient._get_data(), *rdata=remainder._get_data();
+<a name="l00138"></a>00138 qdata-&gt;alloc(d1data-&gt;mLength);
+<a name="l00139"></a>00139 rdata-&gt;alloc(1);
+<a name="l00140"></a>00140
+<a name="l00141"></a>00141 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> a=0;
+<a name="l00142"></a>00142 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> lomask(<a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>);
+<a name="l00143"></a>00143 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> himask(<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(<a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>) &lt;&lt; <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
+<a name="l00144"></a>00144
+<a name="l00145"></a>00145 <span class="keywordtype">int</span> m = d1data-&gt;mLength - 1;
+<a name="l00146"></a>00146 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d1p=d1data-&gt;digits+m;
+<a name="l00147"></a>00147 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *qp=qdata-&gt;digits+m;
+<a name="l00148"></a>00148 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = m; i &gt;= 0; --i, --d1p, --qp) {
+<a name="l00149"></a>00149 a = (a &amp; ~lomask) | *d1p;
+<a name="l00150"></a>00150 *qp = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(a / d2);
+<a name="l00151"></a>00151 a = (a &amp; ~himask) | ((a % d2) &lt;&lt; <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
+<a name="l00152"></a>00152 }
+<a name="l00153"></a>00153 rdata-&gt;digits[0] = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>((a &amp; himask) &gt;&gt;
+<a name="l00154"></a>00154 <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
+<a name="l00155"></a>00155
+<a name="l00156"></a>00156 qdata-&gt;skipLeadingZeros();
+<a name="l00157"></a>00157 rdata-&gt;skipLeadingZeros();
+<a name="l00158"></a>00158 <span class="keywordflow">return</span> std::make_pair(quotient, remainder);
+<a name="l00159"></a>00159 }
+<a name="l00160"></a>00160
+<a name="l00161"></a>00161 std::pair&lt;integer, integer&gt; subDivide(integer d1, integer d2) {
+<a name="l00162"></a>00162 <span class="keyword">const</span> data_t *ndata=d1._get_data(), *bydata=d2._get_data();
+<a name="l00163"></a>00163 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *nDigits = ndata-&gt;digits, *byDigits = bydata-&gt;digits;
+<a name="l00164"></a>00164 <span class="keywordtype">int</span> nMSD = ndata-&gt;mLength-1, byMSD = bydata-&gt;mLength-1;
+<a name="l00165"></a>00165
+<a name="l00166"></a>00166 <span class="comment">// The normalization step</span>
+<a name="l00167"></a>00167 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a> /
+<a name="l00168"></a>00168 (<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(byDigits[byMSD])+1));
+<a name="l00169"></a>00169 <span class="keywordflow">if</span> (d &gt; 1) {
+<a name="l00170"></a>00170 d1 *= d;
+<a name="l00171"></a>00171 d2 *= d;
+<a name="l00172"></a>00172
+<a name="l00173"></a>00173 <span class="comment">// Gotta reset these</span>
+<a name="l00174"></a>00174 ndata = d1._get_data();
+<a name="l00175"></a>00175 bydata = d2._get_data();
+<a name="l00176"></a>00176 nDigits = ndata-&gt;digits;
+<a name="l00177"></a>00177 byDigits = bydata-&gt;digits;
+<a name="l00178"></a>00178 nMSD = ndata-&gt;mLength-1;
+<a name="l00179"></a>00179 byMSD = bydata-&gt;mLength-1;
+<a name="l00180"></a>00180
+<a name="l00181"></a>00181 }
+<a name="l00182"></a>00182 assert(byDigits[byMSD] &gt;= <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a> / 2);
+<a name="l00183"></a>00183
+<a name="l00184"></a>00184 <span class="comment">// We have to figure out which digit is going to be the first one. We&#39;ll do</span>
+<a name="l00185"></a>00185 <span class="comment">// that by cutting the least-significant digits of the dividend until it</span>
+<a name="l00186"></a>00186 <span class="comment">// has the same number of digits as the divisor; if what remains is greater</span>
+<a name="l00187"></a>00187 <span class="comment">// than the divisor, then we start there, otherwise that one&#39;s zero and we</span>
+<a name="l00188"></a>00188 <span class="comment">// start on the next lower one.</span>
+<a name="l00189"></a>00189 <span class="keywordtype">int</span> highestQuotientDigit=(nMSD - byMSD);
+<a name="l00190"></a>00190 integer nTest(d1);
+<a name="l00191"></a>00191 nTest -= <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>();
+<a name="l00192"></a>00192 nTest &gt;&gt;= (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * highestQuotientDigit);
+<a name="l00193"></a>00193 <span class="keywordflow">if</span> (nTest &lt; d2) --highestQuotientDigit;
+<a name="l00194"></a>00194
+<a name="l00195"></a>00195 integer quotient, w;
+<a name="l00196"></a>00196 data_t *qdata=quotient._get_data();
+<a name="l00197"></a>00197 qdata-&gt;alloc(highestQuotientDigit + 1);
+<a name="l00198"></a>00198
+<a name="l00199"></a>00199 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = highestQuotientDigit; j &gt;= 0; --j) {
+<a name="l00200"></a>00200 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> q = (nDigits[nMSD] &gt; byDigits[byMSD] ?
+<a name="l00201"></a>00201 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(nDigits[nMSD]) / byDigits[byMSD] :
+<a name="l00202"></a>00202 ((<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(nDigits[nMSD]) &lt;&lt; <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>) +
+<a name="l00203"></a>00203 nDigits[nMSD-1]) / byDigits[byMSD]);
+<a name="l00204"></a>00204
+<a name="l00205"></a>00205 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> loopcount=0;
+<a name="l00206"></a>00206 <span class="keywordflow">while</span> (1) {
+<a name="l00207"></a>00207 w=(d2 * q);
+<a name="l00208"></a>00208 w &lt;&lt;= (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * j);
+<a name="l00209"></a>00209
+<a name="l00210"></a>00210 w = d1 - w;
+<a name="l00211"></a>00211 <span class="keywordflow">if</span> (w.sign() &lt; 0) {
+<a name="l00212"></a>00212 --q;
+<a name="l00213"></a>00213
+<a name="l00214"></a>00214 <span class="comment">// Our estimate should only be off by a maximum of two, so this</span>
+<a name="l00215"></a>00215 <span class="comment">// while loop should only run twice each time, at most.</span>
+<a name="l00216"></a>00216 assert(++loopcount &lt;= 2);
+<a name="l00217"></a>00217 } <span class="keywordflow">else</span> <span class="keywordflow">break</span>;
+<a name="l00218"></a>00218 }
+<a name="l00219"></a>00219
+<a name="l00220"></a>00220 qdata-&gt;digits[j] = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(q);
+<a name="l00221"></a>00221 <span class="keywordflow">if</span> (w &lt; d2) <span class="keywordflow">break</span>;
+<a name="l00222"></a>00222
+<a name="l00223"></a>00223 d1 = w;
+<a name="l00224"></a>00224 ndata=d1._get_data();
+<a name="l00225"></a>00225 nDigits = ndata-&gt;digits;
+<a name="l00226"></a>00226 nMSD = ndata-&gt;mLength-1;
+<a name="l00227"></a>00227 }
+<a name="l00228"></a>00228
+<a name="l00229"></a>00229 <span class="keywordflow">if</span> (d &gt; 1) {
+<a name="l00230"></a>00230 <span class="comment">// Denormalization step. This requires a division by a single digit_t.</span>
+<a name="l00231"></a>00231 integer remainder=divideBySingleDigit(w, d).first;
+<a name="l00232"></a>00232 <span class="keywordflow">return</span> std::make_pair(quotient, remainder);
+<a name="l00233"></a>00233 } <span class="keywordflow">else</span> {
+<a name="l00234"></a>00234 <span class="keywordflow">return</span> std::make_pair(quotient, w);
+<a name="l00235"></a>00235 }
+<a name="l00236"></a>00236 }
+<a name="l00237"></a>00237
+<a name="l00238"></a>00238 } <span class="comment">// namespace</span>
+<a name="l00239"></a>00239
+<a name="l00240"></a>00240 integer <a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">divide</a>(<span class="keyword">const</span> integer&amp; dividend, <span class="keyword">const</span> integer&amp; divisor) {
+<a name="l00241"></a>00241 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">divide_r</a>(dividend, divisor).first;
+<a name="l00242"></a>00242 }
+<a name="l00243"></a>00243
+<a name="l00244"></a>00244 std::pair&lt;integer, integer&gt; <a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">divide_r</a>(<span class="keyword">const</span> integer&amp; d1, <span class="keyword">const</span>
+<a name="l00245"></a>00245 integer&amp; d2)
+<a name="l00246"></a>00246 {
+<a name="l00247"></a>00247 <span class="keywordtype">int</span> sign1=d1.sign(), sign2=d2.sign();
+<a name="l00248"></a>00248 <span class="keywordflow">if</span> (sign2==0) {
+<a name="l00249"></a>00249 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> divide_by_zero();
+<a name="l00250"></a>00250 <span class="keywordflow">else</span> <span class="keywordflow">return</span> std::make_pair(integer(not_a_number()), integer(not_a_number()));
+<a name="l00251"></a>00251 }
+<a name="l00252"></a>00252
+<a name="l00253"></a>00253 <span class="keywordtype">int</span> comp=<a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">compare</a>(d1, d2, <span class="keyword">true</span>);
+<a name="l00254"></a>00254 <span class="keywordflow">if</span> (comp&lt;0) {
+<a name="l00255"></a>00255 <span class="keywordflow">return</span> std::make_pair(<a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>(), d1);
+<a name="l00256"></a>00256 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (comp==0) {
+<a name="l00257"></a>00257 <span class="keywordflow">return</span> std::make_pair(sign1 != sign2 ? <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>() : integer(-1),
+<a name="l00258"></a>00258 <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>());
+<a name="l00259"></a>00259 }
+<a name="l00260"></a>00260
+<a name="l00261"></a>00261 <span class="keywordflow">if</span> (sign1 &lt; 0 &amp;&amp; sign2 &lt; 0) {
+<a name="l00262"></a>00262 std::pair&lt;integer, integer&gt; a=subDivide(-d1, -d2);
+<a name="l00263"></a>00263 a.second._set_negative(<span class="keyword">true</span>);
+<a name="l00264"></a>00264 <span class="keywordflow">return</span> a;
+<a name="l00265"></a>00265 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1 &lt; 0) {
+<a name="l00266"></a>00266 std::pair&lt;integer, integer&gt; a=subDivide(-d1, d2);
+<a name="l00267"></a>00267 a.first._set_negative(<span class="keyword">true</span>);
+<a name="l00268"></a>00268 a.second._set_negative(<span class="keyword">true</span>);
+<a name="l00269"></a>00269 <span class="keywordflow">return</span> a;
+<a name="l00270"></a>00270 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2 &lt; 0) {
+<a name="l00271"></a>00271 std::pair&lt;integer, integer&gt; a=subDivide(d1, -d2);
+<a name="l00272"></a>00272 a.first._set_negative(<span class="keyword">true</span>);
+<a name="l00273"></a>00273 <span class="keywordflow">return</span> a;
+<a name="l00274"></a>00274 };
+<a name="l00275"></a>00275
+<a name="l00276"></a>00276 <span class="keywordflow">if</span> (d2._get_data()-&gt;mLength == 1) {
+<a name="l00277"></a>00277 <span class="keywordflow">return</span> divideBySingleDigit(d1, d2._get_data()-&gt;digits[0]);
+<a name="l00278"></a>00278 } <span class="keywordflow">else</span> {
+<a name="l00279"></a>00279 <span class="keywordflow">return</span> subDivide(d1, d2);
+<a name="l00280"></a>00280 }
+<a name="l00281"></a>00281 }
+<a name="l00282"></a>00282
+<a name="l00283"></a>00283 } <span class="comment">// namespace xint</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/random_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/random_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,188 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/random.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+<code>#include &quot;../xint_data_t.hpp&quot;</code><br/>
+<code>#include &lt;vector&gt;</code><br/>
+<code>#include &lt;sstream&gt;</code><br/>
+<code>#include &lt;fstream&gt;</code><br/>
+<code>#include &lt;boost/crc.hpp&gt;</code><br/>
+<code>#include &lt;boost/random/mersenne_twister.hpp&gt;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">xint::seed_secure</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">xint::seed_fallback</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">xint::seed_manual</a> (const std::string &amp;value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">xint::random_by_size</a> (size_t bits, bool highBitOn, bool lowBitOn, bool canBeNegative)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a989d063e3298649704c804efca714ac6">xint::random&lt; integer &gt;</a> (const integer &amp;lowest, const integer &amp;highest)</td></tr>
+</table>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="a5223229006a12ebbbbdfb70c32f58844"></a><!-- doxytag: member="random.cpp::cSeedMaximumBytes" ref="a5223229006a12ebbbbdfb70c32f58844" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const size_t <a class="el" href="random_8cpp.html#a5223229006a12ebbbbdfb70c32f58844">cSeedMaximumBytes</a> = 4096<code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="random_8cpp_source.html#l00086">86</a> of file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad94db68c58845e9483f2241232395966"></a><!-- doxytag: member="random.cpp::mGen" ref="ad94db68c58845e9483f2241232395966" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">internal_generator_t* <a class="el" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">mGen</a><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="random_8cpp_source.html#l00094">94</a> of file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7d6e1aeab9ee350c5d9b29ea31b02573"></a><!-- doxytag: member="random.cpp::mNumber" ref="a7d6e1aeab9ee350c5d9b29ea31b02573" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">mNumber</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="random_8cpp_source.html#l00089">89</a> of file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7fadbfa933b8181768eb9e2a6cb5379f"></a><!-- doxytag: member="random.cpp::mSeeded" ref="a7fadbfa933b8181768eb9e2a6cb5379f" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">mSeeded</a><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="random_8cpp_source.html#l00095">95</a> of file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a53e7e690c68e339c9e7b89593957137a"></a><!-- doxytag: member="random.cpp::mString" ref="a53e7e690c68e339c9e7b89593957137a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string <a class="el" href="random_8cpp.html#a53e7e690c68e339c9e7b89593957137a">mString</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="random_8cpp_source.html#l00088">88</a> of file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/random_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/random_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,321 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/random.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the random number functions.</span>
+<a name="l00012"></a>00012 <span class="comment">*/</span>
+<a name="l00013"></a>00013
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../xint_data_t.hpp&quot;</span>
+<a name="l00016"></a>00016
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;sstream&gt;</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;fstream&gt;</span>
+<a name="l00020"></a>00020
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;boost/crc.hpp&gt;</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;boost/random/mersenne_twister.hpp&gt;</span>
+<a name="l00023"></a>00023
+<a name="l00024"></a>00024 <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
+<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor"> #include &lt;boost/thread.hpp&gt;</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#endif</span>
+<a name="l00027"></a>00027 <span class="preprocessor"></span>
+<a name="l00028"></a>00028 <span class="preprocessor">#ifdef _WIN32</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor"> #define STRICT</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor"> #define WIN32_LEAN_AND_MEAN</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor"> #define NOMINMAX</span>
+<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor"> #include &lt;windows.h&gt;</span>
+<a name="l00033"></a>00033 <span class="preprocessor"> #include &lt;TCHAR.h&gt;</span>
+<a name="l00034"></a>00034 <span class="preprocessor">#endif</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span>
+<a name="l00036"></a>00036 <span class="keyword">namespace </span>xint {
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038 <span class="keyword">using namespace </span>detail;
+<a name="l00039"></a>00039
+<a name="l00040"></a>00040 <span class="keyword">namespace </span>{
+<a name="l00041"></a>00041
+<a name="l00042"></a>00042 <span class="keyword">class </span>generator_t {
+<a name="l00043"></a>00043 <span class="keyword">typedef</span> boost::mt19937 internal_generator_t;
+<a name="l00044"></a>00044
+<a name="l00045"></a>00045 <span class="keyword">public</span>:
+<a name="l00046"></a>00046 <span class="keyword">typedef</span> internal_generator_t::result_type result_type;
+<a name="l00047"></a>00047
+<a name="l00048"></a>00048 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span> generator_t() { mLock.lock(); init(); }
+<a name="l00050"></a>00050 ~generator_t() { mLock.unlock(); }
+<a name="l00051"></a>00051 <span class="preprocessor"> #else</span>
+<a name="l00052"></a>00052 <span class="preprocessor"></span> generator_t() { init(); }
+<a name="l00053"></a>00053 <span class="preprocessor"> #endif</span>
+<a name="l00054"></a>00054 <span class="preprocessor"></span>
+<a name="l00055"></a>00055 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">seed_manual</a>(<span class="keyword">const</span> std::string&amp; bytes);
+<a name="l00056"></a>00056 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">seed_secure</a>();
+<a name="l00057"></a>00057 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">seed_fallback</a>();
+<a name="l00058"></a>00058 result_type operator()();
+<a name="l00059"></a>00059
+<a name="l00060"></a>00060 <span class="keyword">private</span>:
+<a name="l00061"></a>00061 <span class="keyword">class </span>SeedGenerator {
+<a name="l00062"></a>00062 <span class="keyword">public</span>:
+<a name="l00063"></a>00063 SeedGenerator(<span class="keyword">const</span> std::string&amp; seedstring): <a class="code" href="random_8cpp.html#a53e7e690c68e339c9e7b89593957137a">mString</a>(seedstring.substr(0,
+<a name="l00064"></a>00064 <a class="code" href="random_8cpp.html#a5223229006a12ebbbbdfb70c32f58844">cSeedMaximumBytes</a>)), <a class="code" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">mNumber</a>(0) { }
+<a name="l00065"></a>00065 internal_generator_t::result_type operator()() {
+<a name="l00066"></a>00066 std::ostringstream s1;
+<a name="l00067"></a>00067 s1 &lt;&lt; <a class="code" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">mNumber</a>++ &lt;&lt; <a class="code" href="random_8cpp.html#a53e7e690c68e339c9e7b89593957137a">mString</a>;
+<a name="l00068"></a>00068 std::string s2=s1.str();
+<a name="l00069"></a>00069
+<a name="l00070"></a>00070 boost::crc_32_type crc;
+<a name="l00071"></a>00071 crc.process_bytes(s2.c_str(), s2.length());
+<a name="l00072"></a>00072 <span class="keywordflow">return</span> crc.checksum();
+<a name="l00073"></a>00073 }
+<a name="l00074"></a>00074
+<a name="l00075"></a>00075 <span class="preprocessor"> #ifdef XINT_SECURE</span>
+<a name="l00076"></a>00076 <span class="preprocessor"></span> <span class="keyword">static</span> <span class="keywordtype">char</span> zero(<span class="keywordtype">char</span>) { <span class="keywordflow">return</span> 0; }
+<a name="l00077"></a>00077
+<a name="l00078"></a>00078 ~SeedGenerator() {
+<a name="l00079"></a>00079 <a class="code" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">mNumber</a>=0;
+<a name="l00080"></a>00080 std::transform(mString.begin(), mString.end(), mString.begin(),
+<a name="l00081"></a>00081 zero);
+<a name="l00082"></a>00082 }
+<a name="l00083"></a>00083 <span class="preprocessor"> #endif</span>
+<a name="l00084"></a>00084 <span class="preprocessor"></span>
+<a name="l00085"></a>00085 <span class="keyword">private</span>:
+<a name="l00086"></a><a class="code" href="random_8cpp.html#a5223229006a12ebbbbdfb70c32f58844">00086</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="random_8cpp.html#a5223229006a12ebbbbdfb70c32f58844">cSeedMaximumBytes</a>=4096;
+<a name="l00087"></a>00087
+<a name="l00088"></a><a class="code" href="random_8cpp.html#a53e7e690c68e339c9e7b89593957137a">00088</a> std::string mString;
+<a name="l00089"></a><a class="code" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">00089</a> <span class="keywordtype">int</span> <a class="code" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">mNumber</a>;
+<a name="l00090"></a>00090 };
+<a name="l00091"></a>00091
+<a name="l00092"></a>00092 <span class="keywordtype">void</span> init();
+<a name="l00093"></a>00093
+<a name="l00094"></a><a class="code" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">00094</a> <span class="keyword">static</span> internal_generator_t *<a class="code" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">mGen</a>;
+<a name="l00095"></a><a class="code" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">00095</a> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">mSeeded</a>;
+<a name="l00096"></a>00096
+<a name="l00097"></a>00097 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
+<a name="l00098"></a>00098 <span class="preprocessor"></span> <span class="keyword">static</span> boost::mutex mLock;
+<a name="l00099"></a>00099 <span class="preprocessor"> #endif</span>
+<a name="l00100"></a>00100 <span class="preprocessor"></span>};
+<a name="l00101"></a>00101
+<a name="l00102"></a>00102 generator_t::internal_generator_t *<a class="code" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">generator_t::mGen</a>=0;
+<a name="l00103"></a>00103 <span class="keywordtype">bool</span> <a class="code" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">generator_t::mSeeded</a>=<span class="keyword">false</span>;
+<a name="l00104"></a>00104
+<a name="l00105"></a>00105 <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
+<a name="l00106"></a>00106 <span class="preprocessor"></span> boost::mutex generator_t::mLock;
+<a name="l00107"></a>00107 <span class="preprocessor">#endif</span>
+<a name="l00108"></a>00108 <span class="preprocessor"></span>
+<a name="l00109"></a>00109 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">generator_t::seed_manual</a>(<span class="keyword">const</span> std::string&amp; bytes) {
+<a name="l00110"></a>00110 SeedGenerator gen(bytes);
+<a name="l00111"></a>00111 <a class="code" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">mGen</a>-&gt;seed(gen);
+<a name="l00112"></a>00112 <a class="code" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">mSeeded</a>=<span class="keyword">true</span>;
+<a name="l00113"></a>00113 }
+<a name="l00114"></a>00114
+<a name="l00115"></a>00115 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">generator_t::seed_secure</a>() {
+<a name="l00116"></a>00116 <span class="keyword">const</span> <span class="keywordtype">int</span> cBitsRequested=256,
+<a name="l00117"></a>00117 cBytesRequested=cBitsRequested / std::numeric_limits&lt;char&gt;::digits;
+<a name="l00118"></a>00118 <span class="keywordtype">bool</span> success=<span class="keyword">false</span>;
+<a name="l00119"></a>00119
+<a name="l00120"></a>00120 <span class="preprocessor"> #ifdef _WIN32</span>
+<a name="l00121"></a>00121 <span class="preprocessor"></span> <span class="comment">// This should work under WinXP, Vista, and Win7. No guarantees about</span>
+<a name="l00122"></a>00122 <span class="comment">// future compatibility, but I doubt that Microsoft will get rid of it</span>
+<a name="l00123"></a>00123 <span class="comment">// (it&#39;s too useful), and I doubt that they&#39;ll change it now that it&#39;s</span>
+<a name="l00124"></a>00124 <span class="comment">// well-known (it would break too many programs). We could also use the</span>
+<a name="l00125"></a>00125 <span class="comment">// rand_s function in more recent versions of Visual C++, but that</span>
+<a name="l00126"></a>00126 <span class="comment">// causes compatibility problems with older versions of Windows.</span>
+<a name="l00127"></a>00127 <span class="keyword">typedef</span> BOOLEAN (WINAPI *RtlGenRandomFn)(PVOID, ULONG);
+<a name="l00128"></a>00128 HMODULE dll=LoadLibrary(_T(<span class="stringliteral">&quot;Advapi32.dll&quot;</span>));
+<a name="l00129"></a>00129 <span class="keywordflow">if</span> (dll != 0) {
+<a name="l00130"></a>00130 RtlGenRandomFn RtlGenRandom=RtlGenRandomFn(GetProcAddress(dll,
+<a name="l00131"></a>00131 <span class="stringliteral">&quot;SystemFunction036&quot;</span>));
+<a name="l00132"></a>00132 <span class="keywordflow">if</span> (RtlGenRandom != 0) {
+<a name="l00133"></a>00133 std::vector&lt;char&gt; buffer(cBytesRequested, <span class="charliteral">&#39;\0&#39;</span>);
+<a name="l00134"></a>00134 <span class="keywordflow">if</span> (RtlGenRandom(&amp;buffer[0], cBytesRequested)) {
+<a name="l00135"></a>00135 <span class="keywordtype">char</span> *c=&amp;buffer[0];
+<a name="l00136"></a>00136 <a class="code" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">seed_manual</a>(std::string(c, c+cBytesRequested));
+<a name="l00137"></a>00137 success=<span class="keyword">true</span>;
+<a name="l00138"></a>00138 }
+<a name="l00139"></a>00139 }
+<a name="l00140"></a>00140 FreeLibrary(dll);
+<a name="l00141"></a>00141 }
+<a name="l00142"></a>00142 <span class="preprocessor"> #else</span>
+<a name="l00143"></a>00143 <span class="preprocessor"></span> <span class="comment">// This should be supported under most non-Windows systems. Note that</span>
+<a name="l00144"></a>00144 <span class="comment">// we&#39;re using /dev/urandom, not /dev/random -- /dev/random is more</span>
+<a name="l00145"></a>00145 <span class="comment">// secure, but it can be VERY slow.</span>
+<a name="l00146"></a>00146 std::ifstream rng(<span class="stringliteral">&quot;/dev/urandom&quot;</span>);
+<a name="l00147"></a>00147 <span class="keywordflow">if</span> (rng) {
+<a name="l00148"></a>00148 std::string rstr;
+<a name="l00149"></a>00149 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i &lt; cBytesRequested; ++i)
+<a name="l00150"></a>00150 rstr.push_back(rng.get());
+<a name="l00151"></a>00151 <a class="code" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">seed_manual</a>(rstr);
+<a name="l00152"></a>00152 success=<span class="keyword">true</span>;
+<a name="l00153"></a>00153 }
+<a name="l00154"></a>00154 <span class="preprocessor"> #endif</span>
+<a name="l00155"></a>00155 <span class="preprocessor"></span>
+<a name="l00156"></a>00156 <span class="keywordflow">return</span> success;
+<a name="l00157"></a>00157 }
+<a name="l00158"></a>00158
+<a name="l00159"></a>00159 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">generator_t::seed_fallback</a>() {
+<a name="l00160"></a>00160 <span class="comment">// No cryptographically-secure device available. Fall back onto the</span>
+<a name="l00161"></a>00161 <span class="comment">// system clock. It&#39;s not much, but it&#39;s portable, fast, and will</span>
+<a name="l00162"></a>00162 <span class="comment">// provide at least a *little* entropy.</span>
+<a name="l00163"></a>00163 std::ostringstream out;
+<a name="l00164"></a>00164 out &lt;&lt; time(0) &lt;&lt; clock();
+<a name="l00165"></a>00165 <a class="code" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">seed_manual</a>(out.str());
+<a name="l00166"></a>00166 }
+<a name="l00167"></a>00167
+<a name="l00168"></a>00168 generator_t::result_type generator_t::operator()() {
+<a name="l00169"></a>00169 <span class="keywordflow">if</span> (!<a class="code" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">mSeeded</a>)
+<a name="l00170"></a>00170 <span class="keywordflow">if</span> (!<a class="code" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">seed_secure</a>())
+<a name="l00171"></a>00171 <a class="code" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">seed_fallback</a>();
+<a name="l00172"></a>00172 <span class="keywordflow">return</span> (*<a class="code" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">mGen</a>)();
+<a name="l00173"></a>00173 }
+<a name="l00174"></a>00174
+<a name="l00175"></a>00175 <span class="keywordtype">void</span> generator_t::init() {
+<a name="l00176"></a>00176 <span class="keywordflow">if</span> (!<a class="code" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">mGen</a>) <a class="code" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">mGen</a>=<span class="keyword">new</span> internal_generator_t();
+<a name="l00177"></a>00177 }
+<a name="l00178"></a>00178
+<a name="l00179"></a>00179 } <span class="comment">// namespace</span>
+<a name="l00180"></a>00180
+<a name="l00181"></a>00181 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">seed_secure</a>() {
+<a name="l00182"></a>00182 generator_t gen;
+<a name="l00183"></a>00183 <span class="keywordflow">return</span> gen.seed_secure();
+<a name="l00184"></a>00184 }
+<a name="l00185"></a>00185
+<a name="l00186"></a>00186 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">seed_fallback</a>() {
+<a name="l00187"></a>00187 generator_t gen;
+<a name="l00188"></a>00188 gen.seed_fallback();
+<a name="l00189"></a>00189 }
+<a name="l00190"></a>00190
+<a name="l00191"></a>00191 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">seed_manual</a>(<span class="keyword">const</span> std::string&amp; value) {
+<a name="l00192"></a>00192 generator_t gen;
+<a name="l00193"></a>00193 gen.seed_manual(value);
+<a name="l00194"></a>00194 }
+<a name="l00195"></a>00195
+<a name="l00196"></a>00196 <span class="comment">// Returns a positive (unless told otherwise) integer between zero and</span>
+<a name="l00197"></a>00197 <span class="comment">// (1&lt;&lt;bits)-1, inclusive</span>
+<a name="l00198"></a>00198 integer <a class="code" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size</a>(<span class="keywordtype">size_t</span> bits, <span class="keywordtype">bool</span> highBitOn, <span class="keywordtype">bool</span> lowBitOn, <span class="keywordtype">bool</span> canBeNegative) {
+<a name="l00199"></a>00199 <span class="keywordflow">if</span> (bits&lt;=0) <span class="keywordflow">return</span> integer::zero();
+<a name="l00200"></a>00200
+<a name="l00201"></a>00201 generator_t randomGenerator;
+<a name="l00202"></a>00202
+<a name="l00203"></a>00203 <span class="keyword">const</span> <span class="keywordtype">size_t</span> cBitsPerIteration=std::numeric_limits&lt;generator_t::result_type&gt;::digits;
+<a name="l00204"></a>00204
+<a name="l00205"></a>00205 <span class="comment">// Grab a set of random bits, of at least the specified size</span>
+<a name="l00206"></a>00206 <span class="keywordtype">int</span> iterations = (bits+cBitsPerIteration-1) / cBitsPerIteration;
+<a name="l00207"></a>00207 std::vector&lt;generator_t::result_type&gt; v;
+<a name="l00208"></a>00208 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i&lt;iterations; ++i) v.push_back(randomGenerator());
+<a name="l00209"></a>00209
+<a name="l00210"></a>00210 <span class="keyword">const</span> <span class="keywordtype">char</span> *vptr=(<span class="keyword">const</span> <span class="keywordtype">char</span> *)&amp;v[0], *vptr_end=vptr+(v.size() * <span class="keyword">sizeof</span>(generator_t::result_type));
+<a name="l00211"></a>00211 integer p=<a class="code" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">from_binary</a>(std::string(vptr, vptr_end));
+<a name="l00212"></a>00212
+<a name="l00213"></a>00213 <span class="comment">// Trim it to the proper length</span>
+<a name="l00214"></a>00214 <span class="keywordtype">int</span> index=(bits/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
+<a name="l00215"></a>00215 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> mask=(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(1) &lt;&lt; (bits % <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>))-1;
+<a name="l00216"></a>00216 <span class="keywordflow">if</span> (mask==0) { mask=<a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>; --index; }
+<a name="l00217"></a>00217 p._get_data()-&gt;digits[index] &amp;= mask;
+<a name="l00218"></a>00218 <span class="keywordflow">for</span> (<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *i=p._get_data()-&gt;digits+index+1,
+<a name="l00219"></a>00219 *ie=p._get_data()-&gt;digits+p._get_data()-&gt;mLength; i&lt;ie; ++i) *i=0;
+<a name="l00220"></a>00220 p._get_data()-&gt;skipLeadingZeros();
+<a name="l00221"></a>00221
+<a name="l00222"></a>00222 <span class="keywordflow">if</span> (highBitOn) <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a>(p, bits-1);
+<a name="l00223"></a>00223 <span class="keywordflow">if</span> (lowBitOn) <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a>(p, 0);
+<a name="l00224"></a>00224 <span class="keywordflow">if</span> (canBeNegative) p._set_negative(randomGenerator() &amp; 0x01);
+<a name="l00225"></a>00225
+<a name="l00226"></a>00226 <span class="keywordflow">return</span> p;
+<a name="l00227"></a>00227 }
+<a name="l00228"></a>00228
+<a name="l00229"></a>00229 <span class="keyword">template</span> &lt;&gt;
+<a name="l00230"></a>00230 integer <a class="code" href="namespacexint.html#a989d063e3298649704c804efca714ac6">random&lt;integer&gt;</a>(<span class="keyword">const</span> integer&amp; lowest, <span class="keyword">const</span> integer&amp; highest) {
+<a name="l00231"></a>00231 integer range(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(highest-lowest+1));
+<a name="l00232"></a>00232 <span class="keywordflow">return</span> lowest+(<a class="code" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size</a>(<a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(range)) % range);
+<a name="l00233"></a>00233 }
+<a name="l00234"></a>00234
+<a name="l00235"></a>00235 } <span class="comment">// namespace xint</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/roots_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/roots_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,101 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/src/roots.cpp File Reference</h1><code>#include &quot;../xint.hpp&quot;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a">xint::sqrt</a> (const integer &amp;n)</td></tr>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/roots_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/roots_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,122 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/src/roots.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the definitions for functions related to roots of a</span>
+<a name="l00012"></a>00012 <span class="comment"> number.</span>
+<a name="l00013"></a>00013 <span class="comment">*/</span>
+<a name="l00014"></a>00014
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../xint.hpp&quot;</span>
+<a name="l00016"></a>00016
+<a name="l00017"></a>00017 <span class="keyword">namespace </span>xint {
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019 integer <a class="code" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a">sqrt</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00020"></a>00020 <span class="keywordflow">if</span> (n.sign() &lt;= 0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>();
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 <span class="comment">// Initial guess is half the length of n, in bits</span>
+<a name="l00023"></a>00023 integer guess;
+<a name="l00024"></a>00024 <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a>(guess, <a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(n)/2);
+<a name="l00025"></a>00025
+<a name="l00026"></a>00026 <span class="comment">// Now refine it until we&#39;re as close as integers can get</span>
+<a name="l00027"></a>00027 <span class="keywordflow">while</span> (1) {
+<a name="l00028"></a>00028 integer guess2=(guess + (n/guess)) &gt;&gt; 1;
+<a name="l00029"></a>00029 <span class="keywordflow">if</span> (guess == guess2) <span class="keywordflow">break</span>;
+<a name="l00030"></a>00030 guess=guess2;
+<a name="l00031"></a>00031 }
+<a name="l00032"></a>00032
+<a name="l00033"></a>00033 <span class="keywordflow">return</span> guess;
+<a name="l00034"></a>00034 }
+<a name="l00035"></a>00035
+<a name="l00036"></a>00036 } <span class="comment">// namespace xint</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t-members.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t-members.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,112 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::detail::data_t Member List</h1>This is the complete list of members for <a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">add</a>(const data_t &amp;addend)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(int digits, bool copydigits=false)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">attach</a>()</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#acc02d0c3b8c867ff12af155dae8445dd">copy</a>(const data_t *c, int extraDigits=0)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">data_t</a>(digit_t initial1=0, digit_t initial2=0, digit_t initial3=0)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#ae5afaa677468a9624ed3fb04318fd2a3">data_t</a>(data_t *c)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">detach</a>()</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#aaf6f202db416ad8fe18ec8a6c8c48904">invert</a>()</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">negate</a>()</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a57fc3966c44d09daeede53899673cde3">quickset</a>(digit_t d1, digit_t d2=0, digit_t d3=0)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">realloc</a>(int newdigits)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">shift_left</a>(int byBits)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">shift_right</a>(int byBits)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>()</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">subtract</a>(const data_t &amp;subtrahend)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(digit_t *p, size_t count)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+</table></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,676 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath"><a class="el" href="namespacexint.html">xint</a>::<a class="el" href="namespacexint_1_1detail.html">detail</a>::<a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::detail::data_t Struct Reference</h1><!-- doxytag: class="xint::detail::data_t" -->
+<p><code>#include &lt;<a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">QuickDigits</a></td></tr>
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">data_t</a> (<a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial1=0, <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial2=0, <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial3=0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#ae5afaa677468a9624ed3fb04318fd2a3">data_t</a> (<a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> *c)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">attach</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">detach</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a> (int <a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, bool copydigits=false)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">realloc</a> (int newdigits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#acc02d0c3b8c867ff12af155dae8445dd">copy</a> (const <a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> *c, int extraDigits=0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a> (<a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *p, size_t count)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a57fc3966c44d09daeede53899673cde3">quickset</a> (<a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d1, <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d2=0, <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d3=0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#aaf6f202db416ad8fe18ec8a6c8c48904">invert</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">negate</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">add</a> (const <a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> &amp;addend)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">subtract</a> (const <a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> &amp;subtrahend)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">shift_left</a> (int byBits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">shift_right</a> (int byBits)</td></tr>
+<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a> [<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>]</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00032">32</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a9309667d3ac573346294e7b6e18c67ff"></a><!-- doxytag: member="xint::detail::data_t::data_t" ref="a9309667d3ac573346294e7b6e18c67ff" args="(digit_t initial1=0, digit_t initial2=0, digit_t initial3=0)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xint::detail::data_t::data_t </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>&nbsp;</td>
+ <td class="paramname"> <em>initial1</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>&nbsp;</td>
+ <td class="paramname"> <em>initial2</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>&nbsp;</td>
+ <td class="paramname"> <em>initial3</em> = <code>0</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00022">22</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+
+<p>References <a class="el" href="xint__data__t_8hpp_source.html#l00038">xint::detail::data_t::QuickDigits::count</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mAllocated</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00049">mIsNegative</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00042">mQuickDigits</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae5afaa677468a9624ed3fb04318fd2a3"></a><!-- doxytag: member="xint::detail::data_t::data_t" ref="ae5afaa677468a9624ed3fb04318fd2a3" args="(data_t *c)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xint::detail::data_t::data_t </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> *&nbsp;</td>
+ <td class="paramname"> <em>c</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00033">33</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+
+<p>References <a class="el" href="xint__data__t_8hpp_source.html#l00038">xint::detail::data_t::QuickDigits::count</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mAllocated</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00049">mIsNegative</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">mQuickDigits</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00045">mStorage</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a143e6814a7aa20a0d61ed616b9940b2e"></a><!-- doxytag: member="xint::detail::data_t::add" ref="a143e6814a7aa20a0d61ed616b9940b2e" args="(const data_t &amp;addend)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::detail::data_t::add </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>addend</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00198">198</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00072">xint::detail::digit_overflowbit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00062">realloc()</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00132">xint::integer::operator+=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8b5fe67dc7c5808306707f2210ab5658"></a><!-- doxytag: member="xint::detail::data_t::alloc" ref="a8b5fe67dc7c5808306707f2210ab5658" args="(int digits, bool copydigits=false)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::detail::data_t::alloc </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>digits</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>copydigits</em> = <code>false</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00085">85</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+
+<p>References <a class="el" href="xint__data__t_8hpp_source.html#l00038">xint::detail::data_t::QuickDigits::count</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mAllocated</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">mQuickDigits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00045">mStorage</a>, and <a class="el" href="data__t_8cpp_source.html#l00165">zero()</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00061">xint::integer::_init()</a>, <a class="el" href="data__t_8cpp_source.html#l00153">copy()</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00062">realloc()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7230e725461510f321bb1c45251b62f3"></a><!-- doxytag: member="xint::detail::data_t::attach" ref="a7230e725461510f321bb1c45251b62f3" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::detail::data_t::attach </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00059">59</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+
+<p>References <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00080">xint::integer::_attach()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acc02d0c3b8c867ff12af155dae8445dd"></a><!-- doxytag: member="xint::detail::data_t::copy" ref="acc02d0c3b8c867ff12af155dae8445dd" args="(const data_t *c, int extraDigits=0)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::detail::data_t::copy </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> *&nbsp;</td>
+ <td class="paramname"> <em>c</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>extraDigits</em> = <code>0</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00153">153</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+
+<p>References <a class="el" href="data__t_8cpp_source.html#l00085">alloc()</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00049">mIsNegative</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afd5505e388c5bf8c9cf069df81a91818"></a><!-- doxytag: member="xint::detail::data_t::detach" ref="afd5505e388c5bf8c9cf069df81a91818" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool xint::detail::data_t::detach </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00060">60</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+
+<p>References <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00084">xint::integer::_detach()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaf6f202db416ad8fe18ec8a6c8c48904"></a><!-- doxytag: member="xint::detail::data_t::invert" ref="aaf6f202db416ad8fe18ec8a6c8c48904" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::detail::data_t::invert </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00170">170</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00072">xint::detail::digit_overflowbit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00049">mIsNegative</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa0dd7ef67ccdef3c3139f4afc84219bd"></a><!-- doxytag: member="xint::detail::data_t::negate" ref="aa0dd7ef67ccdef3c3139f4afc84219bd" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::detail::data_t::negate </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00191">191</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+
+<p>References <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00049">mIsNegative</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>.</p>
+
+<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00225">subtract()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a57fc3966c44d09daeede53899673cde3"></a><!-- doxytag: member="xint::detail::data_t::quickset" ref="a57fc3966c44d09daeede53899673cde3" args="(digit_t d1, digit_t d2=0, digit_t d3=0)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::detail::data_t::quickset </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>&nbsp;</td>
+ <td class="paramname"> <em>d1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>&nbsp;</td>
+ <td class="paramname"> <em>d2</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>&nbsp;</td>
+ <td class="paramname"> <em>d3</em> = <code>0</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00074">74</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+
+<p>References <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00049">mIsNegative</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a935c926cadfe0b92efe3b03201353862"></a><!-- doxytag: member="xint::detail::data_t::realloc" ref="a935c926cadfe0b92efe3b03201353862" args="(int newdigits)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::detail::data_t::realloc </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>newdigits</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00062">62</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+
+<p>References <a class="el" href="data__t_8cpp_source.html#l00085">alloc()</a>.</p>
+
+<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, and <a class="el" href="data__t_8cpp_source.html#l00251">shift_left()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4375d95de49470025539a9b41429bcf6"></a><!-- doxytag: member="xint::detail::data_t::shift_left" ref="a4375d95de49470025539a9b41429bcf6" args="(int byBits)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::detail::data_t::shift_left </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>byBits</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00251">251</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00069">xint::detail::bits_per_digit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00062">realloc()</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00184">xint::integer::operator&lt;&lt;=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aacee3802bd433c989d9fdc6a1731019d"></a><!-- doxytag: member="xint::detail::data_t::shift_right" ref="aacee3802bd433c989d9fdc6a1731019d" args="(int byBits)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::detail::data_t::shift_right </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>byBits</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00279">279</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00069">xint::detail::bits_per_digit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00192">xint::integer::operator&gt;&gt;=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6d45feedd311e26f7de06597fb0c6b81"></a><!-- doxytag: member="xint::detail::data_t::skipLeadingZeros" ref="a6d45feedd311e26f7de06597fb0c6b81" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::detail::data_t::skipLeadingZeros </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00067">67</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+
+<p>References <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00049">mIsNegative</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00061">xint::integer::_init()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="data__t_8cpp_source.html#l00251">shift_left()</a>, <a class="el" href="data__t_8cpp_source.html#l00279">shift_right()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">subtract()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a650d374b8d38b369273830bb9d939da4"></a><!-- doxytag: member="xint::detail::data_t::subtract" ref="a650d374b8d38b369273830bb9d939da4" args="(const data_t &amp;subtrahend)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::detail::data_t::subtract </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>subtrahend</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00225">225</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+
+<p>References <a class="el" href="xint_8hpp_source.html#l00072">xint::detail::digit_overflowbit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00146">xint::integer::operator-=()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a288850fd62ef26302ce4767a45acd968"></a><!-- doxytag: member="xint::detail::data_t::zero" ref="a288850fd62ef26302ce4767a45acd968" args="(digit_t *p, size_t count)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void xint::detail::data_t::zero </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *&nbsp;</td>
+ <td class="paramname"> <em>p</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>count</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00165">165</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00085">alloc()</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a5c9382aec147090d7e7e2b5e972402a9"></a><!-- doxytag: member="xint::detail::data_t::digits" ref="a5c9382aec147090d7e7e2b5e972402a9" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>* <a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">xint::detail::data_t::digits</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00042">42</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00210">xint::integer::_get_digit()</a>, <a class="el" href="integer_8cpp_source.html#l00061">xint::integer::_init()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, <a class="el" href="data__t_8cpp_source.html#l00085">alloc()</a>, <a class="el" href="data__t_8cpp_source.html#l00153">copy()</a>, <a class="el" href="data__t_8cpp_source.html#l00022">data_t()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="data__t_8cpp_source.html#l00251">shift_left()</a>, <a class="el" href="data__t_8cpp_source.html#l00279">shift_right()</a>, <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">subtract()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a100abfc5841043a6c1c5d5afa2d6cd94"></a><!-- doxytag: member="xint::detail::data_t::mAllocated" ref="a100abfc5841043a6c1c5d5afa2d6cd94" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">xint::detail::data_t::mAllocated</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00041">41</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00085">alloc()</a>, and <a class="el" href="data__t_8cpp_source.html#l00022">data_t()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a73bc854b5f9ced6576b97d2cff8f3a5d"></a><!-- doxytag: member="xint::detail::data_t::mCopies" ref="a73bc854b5f9ced6576b97d2cff8f3a5d" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">xint::detail::data_t::mCopies</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00048">48</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00088">xint::integer::_make_unique()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00059">attach()</a>, <a class="el" href="data__t_8cpp_source.html#l00022">data_t()</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00060">detach()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="data__t_8cpp_source.html#l00251">shift_left()</a>, <a class="el" href="data__t_8cpp_source.html#l00279">shift_right()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">subtract()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afb2d8673fc5d99d2ea006cd0aa32b744"></a><!-- doxytag: member="xint::detail::data_t::mIsNegative" ref="afb2d8673fc5d99d2ea006cd0aa32b744" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">xint::detail::data_t::mIsNegative</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00049">49</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00153">copy()</a>, <a class="el" href="data__t_8cpp_source.html#l00022">data_t()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="integer_8cpp_source.html#l00115">xint::integer::sign()</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac594577f74057c94ad70a3503068d286"></a><!-- doxytag: member="xint::detail::data_t::mLength" ref="ac594577f74057c94ad70a3503068d286" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">xint::detail::data_t::mLength</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00041">41</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00214">xint::integer::_get_length()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, <a class="el" href="data__t_8cpp_source.html#l00085">alloc()</a>, <a class="el" href="data__t_8cpp_source.html#l00153">copy()</a>, <a class="el" href="data__t_8cpp_source.html#l00022">data_t()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, <a class="el" href="integer_8cpp_source.html#l00132">xint::integer::operator+=()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="data__t_8cpp_source.html#l00251">shift_left()</a>, <a class="el" href="data__t_8cpp_source.html#l00279">shift_right()</a>, <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">subtract()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a022f882ed0818612861b1a67881ae131"></a><!-- doxytag: member="xint::detail::data_t::mQuickDigits" ref="a022f882ed0818612861b1a67881ae131" args="[QuickDigits::count]" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> <a class="el" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">xint::detail::data_t::mQuickDigits</a>[<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>]</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00042">42</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00085">alloc()</a>, and <a class="el" href="data__t_8cpp_source.html#l00022">data_t()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a96c33fdc37dd3c774256f7ed20ce735c"></a><!-- doxytag: member="xint::detail::data_t::mStorage" ref="a96c33fdc37dd3c774256f7ed20ce735c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::vector&lt;<a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>&gt; <a class="el" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">xint::detail::data_t::mStorage</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00045">45</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00085">alloc()</a>, and <a class="el" href="data__t_8cpp_source.html#l00033">data_t()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following files:<ul>
+<li>I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a></li>
+<li>I:/boost-sandbox/xInt/boost/xint/src/<a class="el" href="data__t_8cpp_source.html">data_t.cpp</a></li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t_1_1_quick_digits-members.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t_1_1_quick_digits-members.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,93 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::detail::data_t::QuickDigits Member List</h1>This is the complete list of members for <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">count</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">intbits</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td><td><code> [static]</code></td></tr>
+</table></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t_1_1_quick_digits.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t_1_1_quick_digits.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,170 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath"><a class="el" href="namespacexint.html">xint</a>::<a class="el" href="namespacexint_1_1detail.html">detail</a>::<a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a>::<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">QuickDigits</a>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::detail::data_t::QuickDigits Struct Reference</h1><!-- doxytag: class="xint::detail::data_t::QuickDigits" -->
+<p><code>#include &lt;<a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">intbits</a> = std::numeric_limits&lt;unsigned int&gt;::<a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a> = (2*<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">intbits</a>/<a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a> = 3</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">count</a> = (<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a> &lt; <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a> ? <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a> : <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a>)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00033">33</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a4e25c9e14a1730c37e2c7383c46679ec"></a><!-- doxytag: member="xint::detail::data_t::QuickDigits::count" ref="a4e25c9e14a1730c37e2c7383c46679ec" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const int <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">xint::detail::data_t::QuickDigits::count</a> = (<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a> &lt; <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a> ? <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a> : <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a>)<code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00038">38</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00085">xint::detail::data_t::alloc()</a>, and <a class="el" href="data__t_8cpp_source.html#l00022">xint::detail::data_t::data_t()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8c823c135d72766b46249e6585585859"></a><!-- doxytag: member="xint::detail::data_t::QuickDigits::intbits" ref="a8c823c135d72766b46249e6585585859" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const int <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">xint::detail::data_t::QuickDigits::intbits</a> = std::numeric_limits&lt;unsigned int&gt;::<a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00035">35</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5ee62e707000ba18c444ae3aeec89d75"></a><!-- doxytag: member="xint::detail::data_t::QuickDigits::minimum" ref="a5ee62e707000ba18c444ae3aeec89d75" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const int <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">xint::detail::data_t::QuickDigits::minimum</a> = 3<code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00037">37</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1d6ffbc11a8c4ab2617a391f843a8a5e"></a><!-- doxytag: member="xint::detail::data_t::QuickDigits::suggested" ref="a1d6ffbc11a8c4ab2617a391f843a8a5e" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const int <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">xint::detail::data_t::QuickDigits::suggested</a> = (2*<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">intbits</a>/<a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>)<code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00036">36</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a></li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1token.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1token.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,100 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath"><a class="el" href="namespacexint.html">xint</a>::<a class="el" href="namespacexint_1_1detail.html">detail</a>::<a class="el" href="structxint_1_1detail_1_1token.html">token</a>
+ </div>
+</div>
+<div class="contents">
+<h1>xint::detail::token Struct Reference</h1><!-- doxytag: class="xint::detail::token" -->
+<p><code>#include &lt;<a class="el" href="xint_8hpp_source.html">xint.hpp</a>&gt;</code></p>
+<table border="0" cellpadding="0" cellspacing="0">
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00078">78</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint_8hpp_source.html">xint.hpp</a></li>
+</ul>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/tab_b.gif
==============================================================================
Binary file. No diff available.

Added: sandbox/xint/libs/xint/doc/doxygen/html/tab_l.gif
==============================================================================
Binary file. No diff available.

Added: sandbox/xint/libs/xint/doc/doxygen/html/tab_r.gif
==============================================================================
Binary file. No diff available.

Added: sandbox/xint/libs/xint/doc/doxygen/html/tabs.css
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/tabs.css 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,105 @@
+/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
+
+DIV.tabs
+{
+ float : left;
+ width : 100%;
+ background : url("tab_b.gif") repeat-x bottom;
+ margin-bottom : 4px;
+}
+
+DIV.tabs UL
+{
+ margin : 0px;
+ padding-left : 10px;
+ list-style : none;
+}
+
+DIV.tabs LI, DIV.tabs FORM
+{
+ display : inline;
+ margin : 0px;
+ padding : 0px;
+}
+
+DIV.tabs FORM
+{
+ float : right;
+}
+
+DIV.tabs A
+{
+ float : left;
+ background : url("tab_r.gif") no-repeat right top;
+ border-bottom : 1px solid #84B0C7;
+ font-size : 80%;
+ font-weight : bold;
+ text-decoration : none;
+}
+
+DIV.tabs A:hover
+{
+ background-position: 100% -150px;
+}
+
+DIV.tabs A:link, DIV.tabs A:visited,
+DIV.tabs A:active, DIV.tabs A:hover
+{
+ color: #1A419D;
+}
+
+DIV.tabs SPAN
+{
+ float : left;
+ display : block;
+ background : url("tab_l.gif") no-repeat left top;
+ padding : 5px 9px;
+ white-space : nowrap;
+}
+
+DIV.tabs #MSearchBox
+{
+ float : right;
+ display : inline;
+ font-size : 1em;
+}
+
+DIV.tabs TD
+{
+ font-size : 80%;
+ font-weight : bold;
+ text-decoration : none;
+}
+
+
+
+/* Commented Backslash Hack hides rule from IE5-Mac \*/
+DIV.tabs SPAN {float : none;}
+/* End IE5-Mac hack */
+
+DIV.tabs A:hover SPAN
+{
+ background-position: 0% -150px;
+}
+
+DIV.tabs LI.current A
+{
+ background-position: 100% -150px;
+ border-width : 0px;
+}
+
+DIV.tabs LI.current SPAN
+{
+ background-position: 0% -150px;
+ padding-bottom : 6px;
+}
+
+DIV.navpath
+{
+ background : none;
+ border : none;
+ border-bottom : 1px solid #84B0C7;
+ text-align : center;
+ margin : 2px;
+ padding : 2px;
+}

Added: sandbox/xint/libs/xint/doc/doxygen/html/xint_8hpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint_8hpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,720 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/xint.hpp File Reference</h1><code>#include &lt;string&gt;</code><br/>
+<code>#include &lt;limits&gt;</code><br/>
+<code>#include &lt;memory&gt;</code><br/>
+<code>#include &lt;cstddef&gt;</code><br/>
+<code>#include &lt;iostream&gt;</code><br/>
+<code>#include &lt;stdexcept&gt;</code><br/>
+<code>#include &lt;boost/integer.hpp&gt;</code><br/>
+<code>#include &lt;boost/cstdint.hpp&gt;</code><br/>
+<code>#include &lt;boost/function.hpp&gt;</code><br/>
+<code>#include &lt;boost/static_assert.hpp&gt;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1token.html">xint::detail::token</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html">xint::integer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__base.html">xint::invalid_base</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__digit.html">xint::invalid_digit</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__modulus.html">xint::invalid_modulus</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1divide__by__zero.html">xint::divide_by_zero</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1too__big.html">xint::too_big</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1not__a__number.html">xint::not_a_number</a></td></tr>
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html">xint::detail</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>implementation details, normal users should not need to use these. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef boost::uintmax_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">xint::detail::doubledigit_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef boost::uint_t<br class="typebreak"/>
+&lt; std::numeric_limits<br class="typebreak"/>
+&lt; doubledigit_t &gt;::digits/2 &gt;<br class="typebreak"/>
+::fast&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">xint::detail::digit_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::auto_ptr<br class="typebreak"/>
+&lt; detail::token &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">xint::token</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef boost::function&lt; bool()&gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">xint::callback_t</a></td></tr>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">xint::exceptions_allowed</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">token&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">xint::block_exceptions</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">token&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">xint::allow_exceptions</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd">xint::opt_secure_mode</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad55aa4d44083238d9ec313511f5b1dfa">xint::opt_thread_safe</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a> (const integer &amp;b1, const integer &amp;b2, bool ignoresign)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">xint::log2</a> (const integer &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">xint::gcd</a> (const integer &amp;num1, const integer &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a17c5e4e807cfa425f48d9f5b464bc8dc">xint::lcm</a> (const integer &amp;num1, const integer &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">xint::abs</a> (const integer &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">xint::negate</a> (const integer &amp;_n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint::add</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint::subtract</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">xint::multiply</a> (const integer &amp;n, const integer &amp;by)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">xint::divide</a> (const integer &amp;dividend, const integer &amp;divisor)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::pair&lt; integer, integer &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">xint::divide_r</a> (const integer &amp;d1, const integer &amp;d2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">xint::sqr</a> (const integer &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aeee80b61e0cadc12f92752104e281b2c">xint::pow</a> (const integer &amp;n, const integer &amp;exponent)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aea1ae2a423d401fa02d3f0621078fbf0">xint::pow2</a> (size_t exponent)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aba188df925c87a0f33a79328e31e1a50">xint::factorial</a> (size_t n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a">xint::sqrt</a> (const integer &amp;n)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">xint::to</a> (const integer &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">xint::to_string</a> (const integer &amp;n, size_t base, bool upperCase)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">xint::from_string</a> (const std::string &amp;str, size_t base)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab8f33201a251e3e118dc82f214e22aeb">xint::to_binary</a> (const integer &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">xint::from_binary</a> (const std::string &amp;str)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952">xint::getbit</a> (const integer &amp;n, size_t bit)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#adf2652627e78682c17e120816987984a">xint::setbit</a> (integer &amp;n, size_t bit)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a8982e3e3ab7c1c763416eadc479d9724">xint::clearbit</a> (integer &amp;n, size_t bit)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a20e8cf2664222955e68f2ef9020bb196">xint::lowestbit</a> (const integer &amp;n, size_t defaultValue)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afcfbe1d95a8dabc615e97565c0ba768c">xint::highestbit</a> (const integer &amp;n, size_t defaultValue)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">xint::bitwise_and</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">xint::bitwise_or</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">xint::bitwise_xor</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">xint::shift</a> (const integer &amp;n, int byBits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">xint::shift_left</a> (const integer &amp;_n, size_t byBits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">xint::shift_right</a> (const integer &amp;_n, size_t byBits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">xint::mod</a> (const integer &amp;n, const integer &amp;modBy)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a67ad0747617ca6e780d6f67d60260450">xint::mulmod</a> (const integer &amp;n, const integer &amp;by, const integer &amp;modulus)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a594bd29593aad9a1c047af22e91e749c">xint::sqrmod</a> (const integer &amp;n, const integer &amp;modulus)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a1f8b43b537ff9de1d5612ed228a8fbe1">xint::powmod</a> (const integer &amp;n, const integer &amp;exponent, const integer &amp;modulus, bool noMontgomery)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">xint::invmod</a> (const integer &amp;n, const integer &amp;m)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">xint::seed_secure</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">xint::seed_fallback</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">xint::seed_manual</a> (const std::string &amp;value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">xint::random_by_size</a> (size_t bits, bool highBitOn, bool lowBitOn, bool canBeNegative)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">xint::random</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae04e871bc550a858d66901f64d42b17f">xint::random</a> (const T &amp;lessThanThis)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a342a8b817f74234c393fd9ed32f13f5f">xint::random</a> (const T &amp;lowest, const T &amp;highest)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f">xint::is_prime</a> (const integer &amp;n, callback_t callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af148d73dc33718f9d893dac821ab699e">xint::random_prime</a> (size_t sizeInBits, callback_t callback)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#aab9cb2021cb63480542f266a67c50314">operator!</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a2271282006f914e5442f53508f6c5355">operator&lt;</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a328006b6ca161372a3cd91ca199a56df">operator&gt;</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#aa6909705d9662396b60b7dca7193895c">operator&lt;=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a9b081858436ec650e95e857faff0cf4e">operator&gt;=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a255c817c8569ac9365878a9476bfe3b3">operator==</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a7f95e1c65d52023897d57fac225ba297">operator!=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operator+</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operator-</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#aaaba5fbb60778e5deaf88549f5ec0278">operator+</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a2211cadf1f4c3abe22309fe025449687">operator-</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a17b0f742cf4240f0453ecdc690527f55">operator*</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a92017cd694e753636affcb05919a7dc2">operator/</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a33c06e966e5497a57df414783f4bd32d">operator%</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a279ea8fa85f56774ecf87a9f70e44986">operator&amp;</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#ae43c9ba6b179f6336284e00609951c7c">operator|</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">operator^</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n2)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a989d063e3298649704c804efca714ac6">xint::random&lt; integer &gt;</a> (const integer &amp;lowest, const integer &amp;highest)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , typename traits &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream&lt; charT, <br class="typebreak"/>
+traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">xint::operator&lt;&lt;</a> (std::basic_ostream&lt; charT, traits &gt; &amp;out, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , typename traits &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_istream&lt; charT, <br class="typebreak"/>
+traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">xint::operator&gt;&gt;</a> (std::basic_istream&lt; charT, traits &gt; &amp;in, <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n)</td></tr>
+<tr><td colspan="2"><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">xint::detail::bits_per_digit</a> = std::numeric_limits&lt;digit_t&gt;::digits</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const digit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">xint::detail::digit_hibit</a> = (digit_t(1) &lt;&lt; (bits_per_digit-1))</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const doubledigit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">xint::detail::doubledigit_hibit</a> = (doubledigit_t(1) &lt;&lt; (bits_per_digit*2-1))</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const doubledigit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">xint::detail::digit_overflowbit</a> = (doubledigit_t(1) &lt;&lt; bits_per_digit)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const digit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">xint::detail::digit_mask</a> = digit_t(digit_overflowbit-1)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">xint::detail::nan_text</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const callback_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">xint::no_callback</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">xint::autobase</a> = (std::numeric_limits&lt;size_t&gt;::max)()</td></tr>
+</table>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="aab9cb2021cb63480542f266a67c50314"></a><!-- doxytag: member="xint.hpp::operator!" ref="aab9cb2021cb63480542f266a67c50314" args="(const xint::integer &amp;n1)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool operator! </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00054">54</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00115">xint::integer::sign()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7f95e1c65d52023897d57fac225ba297"></a><!-- doxytag: member="xint.hpp::operator!=" ref="a7f95e1c65d52023897d57fac225ba297" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool operator!= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00056">56</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a33c06e966e5497a57df414783f4bd32d"></a><!-- doxytag: member="xint.hpp::operator%" ref="a33c06e966e5497a57df414783f4bd32d" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator% </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00022">22</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">xint::mod()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a279ea8fa85f56774ecf87a9f70e44986"></a><!-- doxytag: member="xint.hpp::operator&amp;" ref="a279ea8fa85f56774ecf87a9f70e44986" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator&amp; </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00023">23</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">xint::bitwise_and()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a17b0f742cf4240f0453ecdc690527f55"></a><!-- doxytag: member="xint.hpp::operator*" ref="a17b0f742cf4240f0453ecdc690527f55" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator* </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00020">20</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">xint::multiply()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaaba5fbb60778e5deaf88549f5ec0278"></a><!-- doxytag: member="xint.hpp::operator+" ref="aaaba5fbb60778e5deaf88549f5ec0278" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator+ </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00018">18</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint::add()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae6250b27c1717d3dfd4269c899ea1a0f"></a><!-- doxytag: member="xint.hpp::operator+" ref="ae6250b27c1717d3dfd4269c899ea1a0f" args="(const xint::integer &amp;a)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="classxint_1_1integer.html">xint::integer</a>&amp; operator+ </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>a</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00016">16</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2211cadf1f4c3abe22309fe025449687"></a><!-- doxytag: member="xint.hpp::operator&#45;" ref="a2211cadf1f4c3abe22309fe025449687" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator- </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00019">19</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint::subtract()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a686d2e5cc5766a1d8bc21c77f01ffa19"></a><!-- doxytag: member="xint.hpp::operator&#45;" ref="a686d2e5cc5766a1d8bc21c77f01ffa19" args="(const xint::integer &amp;a)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator- </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>a</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00017">17</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">xint::negate()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a92017cd694e753636affcb05919a7dc2"></a><!-- doxytag: member="xint.hpp::operator/" ref="a92017cd694e753636affcb05919a7dc2" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator/ </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00021">21</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">xint::divide()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2271282006f914e5442f53508f6c5355"></a><!-- doxytag: member="xint.hpp::operator&lt;" ref="a2271282006f914e5442f53508f6c5355" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool operator&lt; </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00057">57</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa6909705d9662396b60b7dca7193895c"></a><!-- doxytag: member="xint.hpp::operator&lt;=" ref="aa6909705d9662396b60b7dca7193895c" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool operator&lt;= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00059">59</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a255c817c8569ac9365878a9476bfe3b3"></a><!-- doxytag: member="xint.hpp::operator==" ref="a255c817c8569ac9365878a9476bfe3b3" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool operator== </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00055">55</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a328006b6ca161372a3cd91ca199a56df"></a><!-- doxytag: member="xint.hpp::operator&gt;" ref="a328006b6ca161372a3cd91ca199a56df" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool operator&gt; </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00058">58</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9b081858436ec650e95e857faff0cf4e"></a><!-- doxytag: member="xint.hpp::operator&gt;=" ref="a9b081858436ec650e95e857faff0cf4e" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool operator&gt;= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00060">60</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1e8b5454f6cf0c613a259a6ad038b6ac"></a><!-- doxytag: member="xint.hpp::operator^" ref="a1e8b5454f6cf0c613a259a6ad038b6ac" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator^ </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00025">25</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">xint::bitwise_xor()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae43c9ba6b179f6336284e00609951c7c"></a><!-- doxytag: member="xint.hpp::operator|" ref="ae43c9ba6b179f6336284e00609951c7c" args="(const xint::integer &amp;n1, const xint::integer &amp;n2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator| </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00024">24</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">xint::bitwise_or()</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/xint_8hpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint_8hpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,516 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/xint.hpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00037"></a>00037 <span class="comment">// Copyright 2010 by Chad Nelson</span>
+<a name="l00038"></a>00038
+<a name="l00039"></a>00039 <span class="comment">// Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00040"></a>00040 <span class="comment">// See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00041"></a>00041 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00042"></a>00042
+<a name="l00043"></a>00043 <span class="preprocessor">#ifndef BOOST_INCLUDED_XINT_H</span>
+<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_INCLUDED_XINT_H</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span>
+<a name="l00046"></a>00046 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00047"></a>00047 <span class="preprocessor">#include &lt;limits&gt;</span>
+<a name="l00048"></a>00048 <span class="preprocessor">#include &lt;memory&gt;</span> <span class="comment">// for auto_ptr</span>
+<a name="l00049"></a>00049 <span class="preprocessor">#include &lt;cstddef&gt;</span> <span class="comment">// for size_t</span>
+<a name="l00050"></a>00050 <span class="preprocessor">#include &lt;iostream&gt;</span>
+<a name="l00051"></a>00051 <span class="preprocessor">#include &lt;stdexcept&gt;</span>
+<a name="l00052"></a>00052 <span class="preprocessor">#include &lt;boost/integer.hpp&gt;</span>
+<a name="l00053"></a>00053 <span class="preprocessor">#include &lt;boost/cstdint.hpp&gt;</span>
+<a name="l00054"></a>00054 <span class="preprocessor">#include &lt;boost/function.hpp&gt;</span>
+<a name="l00055"></a>00055 <span class="preprocessor">#include &lt;boost/static_assert.hpp&gt;</span>
+<a name="l00056"></a>00056
+<a name="l00058"></a>00058 <span class="keyword">namespace </span>xint
+<a name="l00059"></a>00059 {
+<a name="l00061"></a>00061 <span class="comment">// The boring-but-necessary preliminary stuff</span>
+<a name="l00062"></a>00062
+<a name="l00063"></a>00063 <span class="keyword">namespace </span>detail
+<a name="l00064"></a>00064 {
+<a name="l00065"></a><a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">00065</a> <span class="keyword">typedef</span> boost::uintmax_t <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>;
+<a name="l00066"></a>00066 <span class="keyword">typedef</span> boost::uint_t&lt;std::numeric_limits&lt;doubledigit_t&gt;::digits / 2&gt;::fast
+<a name="l00067"></a><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">00067</a> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>;
+<a name="l00068"></a>00068
+<a name="l00069"></a><a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">00069</a> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> = std::numeric_limits&lt;digit_t&gt;::digits;
+<a name="l00070"></a><a class="code" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">00070</a> <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> <a class="code" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">digit_hibit</a> = (<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(1) &lt;&lt; (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>-1));
+<a name="l00071"></a><a class="code" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">00071</a> <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> <a class="code" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">doubledigit_hibit</a> = (<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(1) &lt;&lt; (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>*2-1));
+<a name="l00072"></a><a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">00072</a> <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a> = (<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(1) &lt;&lt; <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
+<a name="l00073"></a><a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">00073</a> <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a> = <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>-1);
+<a name="l00074"></a>00074
+<a name="l00075"></a>00075 <span class="keyword">const</span> <span class="keyword">extern</span> std::string <a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">nan_text</a>;
+<a name="l00076"></a>00076
+<a name="l00077"></a>00077 <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>;
+<a name="l00078"></a><a class="code" href="structxint_1_1detail_1_1token.html">00078</a> <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1token.html">token</a> { };
+<a name="l00079"></a>00079 } <span class="comment">// namespace detail</span>
+<a name="l00080"></a>00080
+<a name="l00081"></a><a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">00081</a> <span class="keyword">typedef</span> std::auto_ptr&lt;detail::token&gt; <a class="code" href="structxint_1_1detail_1_1token.html">token</a>;
+<a name="l00082"></a>00082
+<a name="l00083"></a><a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">00083</a> <span class="keyword">typedef</span> boost::function&lt;bool ()&gt; <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a>;
+<a name="l00084"></a><a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">00084</a> <span class="keyword">const</span> <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> <a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">no_callback</a>;
+<a name="l00085"></a>00085
+<a name="l00086"></a><a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">00086</a> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a>=(std::numeric_limits&lt;size_t&gt;::max)();
+<a name="l00087"></a>00087
+<a name="l00088"></a>00088 <span class="keyword">class </span><a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>;
+<a name="l00089"></a>00089
+<a name="l00091"></a>00091 <span class="comment">// The integer class</span>
+<a name="l00092"></a>00092
+<a name="l00093"></a><a class="code" href="classxint_1_1integer.html">00093</a> <span class="keyword">class </span><a class="code" href="classxint_1_1integer.html">integer</a>
+<a name="l00094"></a>00094 {
+<a name="l00095"></a>00095
+<a name="l00096"></a>00096 <span class="keyword">public</span>:
+<a name="l00097"></a>00097 <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer</a>();
+<a name="l00098"></a>00098 <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; b);
+<a name="l00099"></a>00099
+<a name="l00100"></a>00100 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer</a>(<span class="keyword">const</span> T&amp; n);
+<a name="l00101"></a>00101 <span class="keyword">explicit</span> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer</a>(<span class="keyword">const</span> std::string&amp; str, <span class="keywordtype">size_t</span> base=10);
+<a name="l00102"></a>00102 <span class="keyword">explicit</span> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>&amp;);
+<a name="l00103"></a>00103 <a class="code" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">~integer</a>();
+<a name="l00104"></a>00104
+<a name="l00105"></a>00105 <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">odd</a>() <span class="keyword">const</span>;
+<a name="l00106"></a>00106 <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">even</a>() <span class="keyword">const</span>;
+<a name="l00107"></a>00107 <span class="keywordtype">int</span> <a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() <span class="keyword">const</span>;
+<a name="l00108"></a>00108 <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a>() <span class="keyword">const</span>;
+<a name="l00109"></a>00109
+<a name="l00110"></a>00110 <span class="keywordtype">size_t</span> <a class="code" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">hex_digits</a>() <span class="keyword">const</span>;
+<a name="l00111"></a>00111
+<a name="l00112"></a>00112 <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">operator=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &amp;c);
+<a name="l00113"></a>00113
+<a name="l00114"></a>00114 <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">operator+=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; b);
+<a name="l00115"></a>00115 <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">operator-=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; b);
+<a name="l00116"></a>00116 <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">operator*=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; b);
+<a name="l00117"></a>00117 <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">operator/=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; b);
+<a name="l00118"></a>00118 <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">operator%=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; b);
+<a name="l00119"></a>00119
+<a name="l00120"></a>00120 <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">operator++</a>();
+<a name="l00121"></a>00121 <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">operator--</a>();
+<a name="l00122"></a>00122 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">operator++</a>(<span class="keywordtype">int</span>);
+<a name="l00123"></a>00123 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">operator--</a>(<span class="keywordtype">int</span>);
+<a name="l00124"></a>00124
+<a name="l00125"></a>00125 <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">operator&amp;=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n);
+<a name="l00126"></a>00126 <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">operator|=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n);
+<a name="l00127"></a>00127 <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">operator^=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n);
+<a name="l00128"></a>00128 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">operator&lt;&lt;</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>) <span class="keyword">const</span>;
+<a name="l00129"></a>00129 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">operator&gt;&gt;</a>(<span class="keywordtype">size_t</span> shift) <span class="keyword">const</span>;
+<a name="l00130"></a>00130 <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">operator&lt;&lt;=</a>(<span class="keywordtype">size_t</span> shift);
+<a name="l00131"></a>00131 <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">operator&gt;&gt;=</a>(<span class="keywordtype">size_t</span> shift);
+<a name="l00132"></a>00132
+<a name="l00133"></a>00133 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">zero</a>();
+<a name="l00134"></a>00134 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">one</a>();
+<a name="l00135"></a>00135
+<a name="l00136"></a>00136 <span class="comment">// These are used internally, they&#39;re probably not useful outside of the</span>
+<a name="l00137"></a>00137 <span class="comment">// library&#39;s functions.</span>
+<a name="l00138"></a><a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">00138</a> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>()
+<a name="l00139"></a>00139 {
+<a name="l00140"></a>00140 <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>;
+<a name="l00141"></a>00141 }
+<a name="l00142"></a><a class="code" href="classxint_1_1integer.html#aff99f7868567ae0dd4666a985873a5a7">00142</a> <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *<a class="code" href="classxint_1_1integer.html#aff99f7868567ae0dd4666a985873a5a7">_get_data</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>; }
+<a name="l00143"></a>00143 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> <a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(<span class="keywordtype">size_t</span> index) <span class="keyword">const</span>;
+<a name="l00144"></a>00144 <span class="keywordtype">size_t</span> <a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>() <span class="keyword">const</span>;
+<a name="l00145"></a>00145 <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">_set_negative</a>(<span class="keywordtype">bool</span> negative);
+<a name="l00146"></a>00146 <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
+<a name="l00147"></a>00147 <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>() <span class="keyword">const</span>;
+<a name="l00148"></a>00148
+<a name="l00149"></a>00149 <span class="keyword">private</span>:
+<a name="l00150"></a>00150 <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> init=0);
+<a name="l00151"></a>00151 <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &amp;c);
+<a name="l00152"></a>00152 <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t n);
+<a name="l00153"></a>00153 <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
+<a name="l00154"></a>00154 <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a>();
+<a name="l00155"></a>00155
+<a name="l00156"></a><a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">00156</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> *<a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a>;
+<a name="l00157"></a><a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">00157</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> *<a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a>;
+<a name="l00158"></a><a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">00158</a> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>;
+<a name="l00159"></a>00159 };
+<a name="l00160"></a>00160
+<a name="l00162"></a>00162 <span class="comment">// Exception-blocking and -allowing functions</span>
+<a name="l00163"></a>00163
+<a name="l00164"></a>00164 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>();
+<a name="l00165"></a>00165 <a class="code" href="structxint_1_1detail_1_1token.html">token</a> <a class="code" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">block_exceptions</a>();
+<a name="l00166"></a>00166 <a class="code" href="structxint_1_1detail_1_1token.html">token</a> <a class="code" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">allow_exceptions</a>();
+<a name="l00167"></a>00167
+<a name="l00169"></a>00169 <span class="comment">// Miscellaneous functions</span>
+<a name="l00170"></a>00170
+<a name="l00171"></a>00171 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd">opt_secure_mode</a>();
+<a name="l00172"></a>00172 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ad55aa4d44083238d9ec313511f5b1dfa">opt_thread_safe</a>();
+<a name="l00173"></a>00173 <span class="keywordtype">int</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">compare</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &amp;n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &amp;n2, <span class="keywordtype">bool</span> ignoresign=<span class="keyword">false</span>);
+<a name="l00174"></a>00174 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n);
+<a name="l00175"></a>00175 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">gcd</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; num2);
+<a name="l00176"></a>00176 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a17c5e4e807cfa425f48d9f5b464bc8dc">lcm</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; num2);
+<a name="l00177"></a>00177
+<a name="l00179"></a>00179 <span class="comment">// Mathematical primitives</span>
+<a name="l00180"></a>00180
+<a name="l00181"></a>00181 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n);
+<a name="l00182"></a>00182 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">negate</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n);
+<a name="l00183"></a>00183 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">add</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; addend);
+<a name="l00184"></a>00184 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; subtrahend);
+<a name="l00185"></a>00185 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">multiply</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; multiplicand);
+<a name="l00186"></a>00186 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">divide</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; dividend, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; divisor);
+<a name="l00187"></a>00187 std::pair&lt;integer, integer&gt; <a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">divide_r</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; dividend, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp;
+<a name="l00188"></a>00188 divisor);
+<a name="l00189"></a>00189
+<a name="l00191"></a>00191 <span class="comment">// Powers and roots</span>
+<a name="l00192"></a>00192
+<a name="l00193"></a>00193 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">sqr</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n);
+<a name="l00194"></a>00194 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#aeee80b61e0cadc12f92752104e281b2c">pow</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; exponent);
+<a name="l00195"></a>00195 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#aea1ae2a423d401fa02d3f0621078fbf0">pow2</a>(<span class="keywordtype">size_t</span> exponent);
+<a name="l00196"></a>00196 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#aba188df925c87a0f33a79328e31e1a50">factorial</a>(<span class="keywordtype">size_t</span> n);
+<a name="l00197"></a>00197 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a">sqrt</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n);
+<a name="l00198"></a>00198
+<a name="l00200"></a>00200 <span class="comment">// Conversion functions</span>
+<a name="l00201"></a>00201
+<a name="l00202"></a>00202 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; T <a class="code" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">to</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n);
+<a name="l00203"></a>00203 std::string <a class="code" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">to_string</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">size_t</span> base=10, <span class="keywordtype">bool</span> upperCase=<span class="keyword">false</span>);
+<a name="l00204"></a>00204 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">from_string</a>(<span class="keyword">const</span> std::string&amp; str, <span class="keywordtype">size_t</span> base=10);
+<a name="l00205"></a>00205 std::string <a class="code" href="namespacexint.html#ab8f33201a251e3e118dc82f214e22aeb">to_binary</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n);
+<a name="l00206"></a>00206 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">from_binary</a>(<span class="keyword">const</span> std::string&amp; s);
+<a name="l00207"></a>00207
+<a name="l00209"></a>00209 <span class="comment">// Bit-manipulation functions</span>
+<a name="l00210"></a>00210
+<a name="l00211"></a>00211 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952">getbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">size_t</span> bit);
+<a name="l00212"></a>00212 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a>(<a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">size_t</span> bit);
+<a name="l00213"></a>00213 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a8982e3e3ab7c1c763416eadc479d9724">clearbit</a>(<a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">size_t</span> bit);
+<a name="l00214"></a>00214 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a20e8cf2664222955e68f2ef9020bb196">lowestbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">size_t</span> valueIfZero=0);
+<a name="l00215"></a>00215 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#afcfbe1d95a8dabc615e97565c0ba768c">highestbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">size_t</span> valueIfZero=0);
+<a name="l00216"></a>00216 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">bitwise_and</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n2);
+<a name="l00217"></a>00217 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">bitwise_or</a> (<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n2);
+<a name="l00218"></a>00218 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">bitwise_xor</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n2);
+<a name="l00219"></a>00219 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">int</span> byBits);
+<a name="l00220"></a>00220 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">shift_left</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">size_t</span> byBits);
+<a name="l00221"></a>00221 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">shift_right</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keywordtype">size_t</span> byBits);
+<a name="l00222"></a>00222
+<a name="l00224"></a>00224 <span class="comment">// Modular math functions</span>
+<a name="l00225"></a>00225
+<a name="l00226"></a>00226 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">mod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; modBy);
+<a name="l00227"></a>00227 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a67ad0747617ca6e780d6f67d60260450">mulmod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; by, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; modulus);
+<a name="l00228"></a>00228 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a594bd29593aad9a1c047af22e91e749c">sqrmod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; modulus);
+<a name="l00229"></a>00229 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a1f8b43b537ff9de1d5612ed228a8fbe1">powmod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; exponent, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp;
+<a name="l00230"></a>00230 modulus, <span class="keywordtype">bool</span> noMontgomery=<span class="keyword">false</span>);
+<a name="l00231"></a>00231 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">invmod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; modulus);
+<a name="l00232"></a>00232
+<a name="l00234"></a>00234 <span class="comment">// Random number functions</span>
+<a name="l00235"></a>00235 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">seed_secure</a>();
+<a name="l00236"></a>00236 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">seed_fallback</a>();
+<a name="l00237"></a>00237 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">seed_manual</a>(<span class="keyword">const</span> std::string&amp; value);
+<a name="l00238"></a>00238 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size</a>(<span class="keywordtype">size_t</span> sizeInBits, <span class="keywordtype">bool</span> highBitOn=<span class="keyword">false</span>, <span class="keywordtype">bool</span>
+<a name="l00239"></a>00239 lowBitOn=<span class="keyword">false</span>, <span class="keywordtype">bool</span> canBeNegative=<span class="keyword">false</span>);
+<a name="l00240"></a>00240 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; T <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>();
+<a name="l00241"></a>00241 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; T <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>(<span class="keyword">const</span> T&amp; lessThanThis);
+<a name="l00242"></a>00242 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; T <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>(<span class="keyword">const</span> T&amp; lowest, <span class="keyword">const</span> T&amp; highest);
+<a name="l00243"></a>00243
+<a name="l00245"></a>00245 <span class="comment">// Prime number functions</span>
+<a name="l00246"></a>00246
+<a name="l00247"></a>00247 <span class="keywordtype">int</span> <a class="code" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f">is_prime</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n, <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> callback=<a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">no_callback</a>);
+<a name="l00248"></a>00248 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#af148d73dc33718f9d893dac821ab699e">random_prime</a>(<span class="keywordtype">size_t</span> sizeInBits, <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> callback=<a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">no_callback</a>);
+<a name="l00249"></a>00249
+<a name="l00250"></a>00250 } <span class="comment">// namespace xint</span>
+<a name="l00251"></a>00251
+<a name="l00253"></a>00253 <span class="comment">// Global operators for the integer class</span>
+<a name="l00254"></a>00254
+<a name="l00255"></a>00255 <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#ac7523d81be85d97950c95f10c17a8c9d">operator!</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1);
+<a name="l00256"></a>00256 <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#a13bf860274cbfba7049ee1109ef79ece">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2);
+<a name="l00257"></a>00257 <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#aafe4265378fbdfe8382de5624439cf86">operator&gt;</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2);
+<a name="l00258"></a>00258 <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#aab167dd151d36a75704e98361c845e67">operator&lt;=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2);
+<a name="l00259"></a>00259 <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#a3e59818919966e38b68c5af625acf65e">operator&gt;=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2);
+<a name="l00260"></a>00260 <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#a8afed82c679c5a4edee2108ddbf24e76">operator==</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2);
+<a name="l00261"></a>00261 <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#ae28b8d9fc3781805e9bb9cfaf0dc01df">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2);
+<a name="l00262"></a>00262
+<a name="l00263"></a>00263 <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; <a class="code" href="operators_8cpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operator+</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; a);
+<a name="l00264"></a>00264 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operator-</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; a);
+<a name="l00265"></a>00265 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operator+</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2);
+<a name="l00266"></a>00266 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operator-</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2);
+<a name="l00267"></a>00267 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a9b5f3e5db8d7dac5c83687433265d679">operator*</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2);
+<a name="l00268"></a>00268 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ade5c31d601a221f90102f09d3985a1b1">operator/</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2);
+<a name="l00269"></a>00269 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ab5c9d4bfca6c406876f2317fe4ebdc17">operator%</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2);
+<a name="l00270"></a>00270 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a279ea8fa85f56774ecf87a9f70e44986">operator&amp;</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2);
+<a name="l00271"></a>00271 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ae43c9ba6b179f6336284e00609951c7c">operator|</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2);
+<a name="l00272"></a>00272 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">operator^</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n2);
+<a name="l00273"></a>00273
+<a name="l00274"></a>00274 <span class="keyword">namespace </span>xint {
+<a name="l00275"></a>00275
+<a name="l00277"></a>00277 <span class="comment">// Exception classes</span>
+<a name="l00278"></a>00278
+<a name="l00279"></a><a class="code" href="classxint_1_1invalid__base.html">00279</a> <span class="keyword">class </span><a class="code" href="classxint_1_1invalid__base.html">invalid_base</a>: <span class="keyword">public</span> std::invalid_argument {
+<a name="l00280"></a>00280 <span class="keyword">public</span>:
+<a name="l00281"></a><a class="code" href="classxint_1_1invalid__base.html#a16a577d5584652ca358450cbb55b5d55">00281</a> <a class="code" href="classxint_1_1invalid__base.html#a16a577d5584652ca358450cbb55b5d55">invalid_base</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid base&quot;</span>): invalid_argument(what)
+<a name="l00282"></a>00282 { }
+<a name="l00283"></a>00283 };
+<a name="l00284"></a>00284
+<a name="l00285"></a><a class="code" href="classxint_1_1invalid__digit.html">00285</a> <span class="keyword">class </span><a class="code" href="classxint_1_1invalid__digit.html">invalid_digit</a>: <span class="keyword">public</span> std::range_error {
+<a name="l00286"></a>00286 <span class="keyword">public</span>:
+<a name="l00287"></a><a class="code" href="classxint_1_1invalid__digit.html#a832283e75569bd7e9d09f38ebae87a27">00287</a> <a class="code" href="classxint_1_1invalid__digit.html#a832283e75569bd7e9d09f38ebae87a27">invalid_digit</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid digit&quot;</span>): range_error(what)
+<a name="l00288"></a>00288 { }
+<a name="l00289"></a>00289 };
+<a name="l00290"></a>00290
+<a name="l00291"></a><a class="code" href="classxint_1_1invalid__modulus.html">00291</a> <span class="keyword">class </span><a class="code" href="classxint_1_1invalid__modulus.html">invalid_modulus</a>: <span class="keyword">public</span> std::invalid_argument {
+<a name="l00292"></a>00292 <span class="keyword">public</span>:
+<a name="l00293"></a><a class="code" href="classxint_1_1invalid__modulus.html#a691026e352d38fc5120c12d6d134e854">00293</a> <a class="code" href="classxint_1_1invalid__modulus.html#a691026e352d38fc5120c12d6d134e854">invalid_modulus</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid modulus&quot;</span>):
+<a name="l00294"></a>00294 invalid_argument(what) { }
+<a name="l00295"></a>00295 };
+<a name="l00296"></a>00296
+<a name="l00297"></a><a class="code" href="classxint_1_1divide__by__zero.html">00297</a> <span class="keyword">class </span><a class="code" href="classxint_1_1divide__by__zero.html">divide_by_zero</a>: <span class="keyword">public</span> std::invalid_argument {
+<a name="l00298"></a>00298 <span class="keyword">public</span>:
+<a name="l00299"></a><a class="code" href="classxint_1_1divide__by__zero.html#a31233d42a45ca6ef7078e700fa114ad2">00299</a> <a class="code" href="classxint_1_1divide__by__zero.html#a31233d42a45ca6ef7078e700fa114ad2">divide_by_zero</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;divide by zero error&quot;</span>):
+<a name="l00300"></a>00300 invalid_argument(what) { }
+<a name="l00301"></a>00301 };
+<a name="l00302"></a>00302
+<a name="l00303"></a><a class="code" href="classxint_1_1too__big.html">00303</a> <span class="keyword">class </span><a class="code" href="classxint_1_1too__big.html">too_big</a>: <span class="keyword">public</span> std::range_error {
+<a name="l00304"></a>00304 <span class="keyword">public</span>:
+<a name="l00305"></a><a class="code" href="classxint_1_1too__big.html#a37a714ef8bfef8a1cf6cfa08a5db1ccc">00305</a> <a class="code" href="classxint_1_1too__big.html#a37a714ef8bfef8a1cf6cfa08a5db1ccc">too_big</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;value out of range for requested &quot;</span>
+<a name="l00306"></a>00306 <span class="stringliteral">&quot;conversion&quot;</span>): range_error(what) { }
+<a name="l00307"></a>00307 };
+<a name="l00308"></a>00308
+<a name="l00309"></a><a class="code" href="classxint_1_1not__a__number.html">00309</a> <span class="keyword">class </span><a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>: <span class="keyword">public</span> std::runtime_error {
+<a name="l00310"></a>00310 <span class="keyword">public</span>:
+<a name="l00311"></a><a class="code" href="classxint_1_1not__a__number.html#a4ecc5bcc06a5d660176d51fc63c996cd">00311</a> <a class="code" href="classxint_1_1not__a__number.html#a4ecc5bcc06a5d660176d51fc63c996cd">not_a_number</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;attempted to use a Not-a-Number&quot;</span>):
+<a name="l00312"></a>00312 runtime_error(what) { }
+<a name="l00313"></a>00313 };
+<a name="l00314"></a>00314
+<a name="l00316"></a>00316 <span class="comment">// Template function definitions</span>
+<a name="l00317"></a>00317
+<a name="l00318"></a>00318 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00319"></a><a class="code" href="classxint_1_1integer.html#a65df30415a5d2f91a72fb2c55d7cd33c">00319</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer::integer</a>(<span class="keyword">const</span> T&amp; n) {
+<a name="l00320"></a>00320 <span class="keywordflow">if</span> (std::numeric_limits&lt;T&gt;::is_signed) {
+<a name="l00321"></a>00321 <span class="keywordflow">if</span> (n &gt;= 0) {
+<a name="l00322"></a>00322 <span class="keywordflow">if</span> (static_cast&lt;T&gt;(n &amp; <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">detail::digit_mask</a>) == n)
+<a name="l00323"></a>00323 <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a>(n));
+<a name="l00324"></a>00324 <span class="keywordflow">else</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t(n));
+<a name="l00325"></a>00325 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == (std::numeric_limits&lt;T&gt;::min)()) {
+<a name="l00326"></a>00326 <span class="comment">// Have to treat the minimum number carefully, because -n is not</span>
+<a name="l00327"></a>00327 <span class="comment">// what you&#39;d think it is.</span>
+<a name="l00328"></a>00328 <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t(-(n+1)));
+<a name="l00329"></a>00329 <a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">_set_negative</a>(<span class="keyword">true</span>);
+<a name="l00330"></a>00330 --(*this);
+<a name="l00331"></a>00331 } <span class="keywordflow">else</span> {
+<a name="l00332"></a>00332 <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t(-n));
+<a name="l00333"></a>00333 <a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">_set_negative</a>(<span class="keyword">true</span>);
+<a name="l00334"></a>00334 }
+<a name="l00335"></a>00335 } <span class="keywordflow">else</span> {
+<a name="l00336"></a>00336 <span class="keywordflow">if</span> (static_cast&lt;T&gt;(n &amp; <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">detail::digit_mask</a>) == n)
+<a name="l00337"></a>00337 <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a>(n));
+<a name="l00338"></a>00338 <span class="keywordflow">else</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t(n));
+<a name="l00339"></a>00339 }
+<a name="l00340"></a>00340 }
+<a name="l00341"></a>00341
+<a name="l00342"></a>00342 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00343"></a><a class="code" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">00343</a> T <a class="code" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">to</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&amp; n) {
+<a name="l00344"></a>00344 n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00345"></a>00345 <span class="keywordflow">if</span> (n &lt; (std::numeric_limits&lt;T&gt;::min)()
+<a name="l00346"></a>00346 || n &gt; (std::numeric_limits&lt;T&gt;::max)())
+<a name="l00347"></a>00347 <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1too__big.html">too_big</a>(<span class="stringliteral">&quot;value out of range for requested conversion&quot;</span>);
+<a name="l00348"></a>00348
+<a name="l00349"></a>00349 T rval=0;
+<a name="l00350"></a>00350 <span class="keywordtype">int</span> len=n.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>();
+<a name="l00351"></a>00351 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x=0; x&lt;len; ++x)
+<a name="l00352"></a>00352 rval=static_cast&lt;T&gt;((rval * <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">detail::digit_overflowbit</a>)
+<a name="l00353"></a>00353 + n.<a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(len-x-1));
+<a name="l00354"></a>00354 <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() &lt; 0) rval *= -1;
+<a name="l00355"></a>00355 <span class="keywordflow">return</span> rval;
+<a name="l00356"></a>00356 }
+<a name="l00357"></a>00357
+<a name="l00358"></a>00358 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00359"></a><a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">00359</a> T <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>() {
+<a name="l00360"></a>00360 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>((std::numeric_limits&lt;T&gt;::min)(),
+<a name="l00361"></a>00361 (std::numeric_limits&lt;T&gt;::max)());
+<a name="l00362"></a>00362 }
+<a name="l00363"></a>00363
+<a name="l00364"></a>00364 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00365"></a><a class="code" href="namespacexint.html#ae04e871bc550a858d66901f64d42b17f">00365</a> T <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>(<span class="keyword">const</span> T&amp; lessThanThis) {
+<a name="l00366"></a>00366 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>(0, lessThanThis-1);
+<a name="l00367"></a>00367 }
+<a name="l00368"></a>00368
+<a name="l00369"></a>00369 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00370"></a><a class="code" href="namespacexint.html#a342a8b817f74234c393fd9ed32f13f5f">00370</a> T <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>(<span class="keyword">const</span> T&amp; lowest, <span class="keyword">const</span> T&amp; highest) {
+<a name="l00371"></a>00371 <a class="code" href="classxint_1_1integer.html">integer</a> range(<a class="code" href="classxint_1_1integer.html">integer</a>(highest)-lowest+1);
+<a name="l00372"></a>00372 <span class="keywordflow">return</span> to&lt;T&gt;(lowest+(<a class="code" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size</a>(std::numeric_limits&lt;T&gt;::digits+1)
+<a name="l00373"></a>00373 % range));
+<a name="l00374"></a>00374 }
+<a name="l00375"></a>00375
+<a name="l00376"></a>00376 <span class="comment">// Customization for random integer within a range</span>
+<a name="l00377"></a>00377 <span class="keyword">template</span> &lt;&gt;
+<a name="l00378"></a>00378 integer <a class="code" href="namespacexint.html#a989d063e3298649704c804efca714ac6">random&lt;integer&gt;</a>(<span class="keyword">const</span> integer&amp; lowest, <span class="keyword">const</span> integer&amp; highest);
+<a name="l00379"></a>00379
+<a name="l00380"></a>00380 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits&gt;
+<a name="l00381"></a><a class="code" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">00381</a> <span class="keyword">inline</span> std::basic_ostream&lt;charT,traits&gt;&amp; <a class="code" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">operator&lt;&lt;</a>(std::basic_ostream&lt;charT,
+<a name="l00382"></a>00382 traits&gt;&amp; out, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n)
+<a name="l00383"></a>00383 {
+<a name="l00384"></a>00384 <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a>()) {
+<a name="l00385"></a>00385 out &lt;&lt; <a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">detail::nan_text</a>;
+<a name="l00386"></a>00386 } <span class="keywordflow">else</span> {
+<a name="l00387"></a>00387 <span class="keywordtype">int</span> base=((out.flags() &amp; std::ios::hex) ? 16
+<a name="l00388"></a>00388 : (out.flags() &amp; std::ios::oct) ? 8
+<a name="l00389"></a>00389 : 10);
+<a name="l00390"></a>00390 <span class="keywordtype">bool</span> upperCase=(out.flags() &amp; std::ios::uppercase ? <span class="keyword">true</span> : <span class="keyword">false</span>);
+<a name="l00391"></a>00391
+<a name="l00392"></a>00392 <span class="keywordflow">if</span> (out.flags() &amp; std::ios::showbase) {
+<a name="l00393"></a>00393 <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() &lt; 0) out &lt;&lt; <span class="stringliteral">&quot;-&quot;</span>;
+<a name="l00394"></a>00394
+<a name="l00395"></a>00395 <span class="keywordflow">if</span> (base==16 &amp;&amp; upperCase) out &lt;&lt; <span class="stringliteral">&quot;0X&quot;</span>;
+<a name="l00396"></a>00396 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base==16) out &lt;&lt; <span class="stringliteral">&quot;0x&quot;</span>;
+<a name="l00397"></a>00397 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base==8) out &lt;&lt; <span class="stringliteral">&quot;0&quot;</span>;
+<a name="l00398"></a>00398
+<a name="l00399"></a>00399 out &lt;&lt; <a class="code" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">xint::to_string</a>(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(n), base, upperCase);
+<a name="l00400"></a>00400 } <span class="keywordflow">else</span> {
+<a name="l00401"></a>00401 out &lt;&lt; <a class="code" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">xint::to_string</a>(n, base, upperCase);
+<a name="l00402"></a>00402 }
+<a name="l00403"></a>00403 }
+<a name="l00404"></a>00404 <span class="keywordflow">return</span> out;
+<a name="l00405"></a>00405 }
+<a name="l00406"></a>00406
+<a name="l00407"></a>00407 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits&gt;
+<a name="l00408"></a><a class="code" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">00408</a> <span class="keyword">inline</span> std::basic_istream&lt;charT,traits&gt;&amp; <a class="code" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">operator&gt;&gt;</a>(std::basic_istream&lt;charT,
+<a name="l00409"></a>00409 traits&gt;&amp; in, <a class="code" href="classxint_1_1integer.html">xint::integer</a>&amp; n)
+<a name="l00410"></a>00410 {
+<a name="l00411"></a>00411 <span class="keywordtype">int</span> hex=(in.flags() &amp; std::ios::hex) ? 1 : 0;
+<a name="l00412"></a>00412 <span class="keywordtype">int</span> dec=(in.flags() &amp; std::ios::dec) ? 1 : 0;
+<a name="l00413"></a>00413 <span class="keywordtype">int</span> oct=(in.flags() &amp; std::ios::oct) ? 1 : 0;
+<a name="l00414"></a>00414 <span class="keywordtype">int</span> count=hex+dec+oct;
+<a name="l00415"></a>00415
+<a name="l00416"></a>00416 <span class="keywordtype">size_t</span> base=<a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a>;
+<a name="l00417"></a>00417 <span class="keywordflow">if</span> (count==1) {
+<a name="l00418"></a>00418 <span class="keywordflow">if</span> (hex) base=16;
+<a name="l00419"></a>00419 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (oct) base=8;
+<a name="l00420"></a>00420 <span class="keywordflow">else</span> base=10;
+<a name="l00421"></a>00421 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count&gt;1) base=10;
+<a name="l00422"></a>00422 <span class="comment">// else auto-base</span>
+<a name="l00423"></a>00423
+<a name="l00424"></a>00424 std::string s;
+<a name="l00425"></a>00425 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">&#39;+&#39;</span>) {
+<a name="l00426"></a>00426 in.ignore();
+<a name="l00427"></a>00427 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">&#39;-&#39;</span>) {
+<a name="l00428"></a>00428 in.ignore();
+<a name="l00429"></a>00429 s.push_back(<span class="charliteral">&#39;-&#39;</span>);
+<a name="l00430"></a>00430 }
+<a name="l00431"></a>00431
+<a name="l00432"></a>00432 <span class="keywordflow">if</span> (base==<a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a>) {
+<a name="l00433"></a>00433 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">&#39;0&#39;</span>) {
+<a name="l00434"></a>00434 in.ignore();
+<a name="l00435"></a>00435 <span class="keywordtype">int</span> c=in.peek();
+<a name="l00436"></a>00436 <span class="keywordflow">if</span> (c==<span class="charliteral">&#39;x&#39;</span> || c==<span class="charliteral">&#39;X&#39;</span>) {
+<a name="l00437"></a>00437 in.ignore();
+<a name="l00438"></a>00438 base=16;
+<a name="l00439"></a>00439 } <span class="keywordflow">else</span> base=8;
+<a name="l00440"></a>00440 } <span class="keywordflow">else</span> base=10;
+<a name="l00441"></a>00441 }
+<a name="l00442"></a>00442
+<a name="l00443"></a>00443 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">&#39;#&#39;</span>) {
+<a name="l00444"></a>00444 <span class="comment">// Must be either #NaN# or an error</span>
+<a name="l00445"></a>00445 <span class="keywordtype">char</span> buffer[6];
+<a name="l00446"></a>00446 std::streamsize size=in.readsome(buffer, 5);
+<a name="l00447"></a>00447 buffer[size]=0;
+<a name="l00448"></a>00448 std::string str(buffer);
+<a name="l00449"></a>00449
+<a name="l00450"></a>00450 <span class="keywordflow">if</span> (str==<a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">detail::nan_text</a>) n=<a class="code" href="classxint_1_1integer.html">integer</a>(<a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>());
+<a name="l00451"></a>00451 <span class="keywordflow">else</span> in.setstate(std::ios::failbit);
+<a name="l00452"></a>00452 } <span class="keywordflow">else</span> {
+<a name="l00453"></a>00453 <span class="keywordflow">while</span> (in) {
+<a name="l00454"></a>00454 <span class="keywordtype">int</span> c=in.peek();
+<a name="l00455"></a>00455 <span class="keywordflow">if</span> ((base==8 &amp;&amp; (c&gt;=<span class="charliteral">&#39;0&#39;</span> &amp;&amp; c&lt;=<span class="charliteral">&#39;7&#39;</span>)) ||
+<a name="l00456"></a>00456 (base==10 &amp;&amp; (c&gt;=<span class="charliteral">&#39;0&#39;</span> &amp;&amp; c&lt;=<span class="charliteral">&#39;9&#39;</span>)) ||
+<a name="l00457"></a>00457 (base==16 &amp;&amp; ((c&gt;=<span class="charliteral">&#39;0&#39;</span> &amp;&amp; c&lt;=<span class="charliteral">&#39;9&#39;</span>) || (c&gt;=<span class="charliteral">&#39;a&#39;</span> &amp;&amp; c&lt;=<span class="charliteral">&#39;f&#39;</span>) ||
+<a name="l00458"></a>00458 (c&gt;=<span class="charliteral">&#39;A&#39;</span> &amp;&amp; c&lt;=<span class="charliteral">&#39;F&#39;</span>))))
+<a name="l00459"></a>00459 {
+<a name="l00460"></a>00460 in.ignore();
+<a name="l00461"></a>00461 s.push_back(<span class="keywordtype">char</span>(c));
+<a name="l00462"></a>00462 } <span class="keywordflow">else</span> <span class="keywordflow">break</span>;
+<a name="l00463"></a>00463 }
+<a name="l00464"></a>00464
+<a name="l00465"></a>00465 <a class="code" href="structxint_1_1detail_1_1token.html">token</a> allow=<a class="code" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">allow_exceptions</a>();
+<a name="l00466"></a>00466 <span class="keywordflow">try</span> {
+<a name="l00467"></a>00467 <a class="code" href="classxint_1_1integer.html">xint::integer</a> testValue=<a class="code" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">xint::from_string</a>(s, base);
+<a name="l00468"></a>00468 n=testValue;
+<a name="l00469"></a>00469 } <span class="keywordflow">catch</span> (<a class="code" href="classxint_1_1invalid__digit.html">xint::invalid_digit</a>&amp;) {
+<a name="l00470"></a>00470 <span class="comment">// Catch invalid strings</span>
+<a name="l00471"></a>00471 in.setstate(std::ios::failbit);
+<a name="l00472"></a>00472 }
+<a name="l00473"></a>00473 }
+<a name="l00474"></a>00474
+<a name="l00475"></a>00475 <span class="keywordflow">return</span> in;
+<a name="l00476"></a>00476 }
+<a name="l00477"></a>00477
+<a name="l00478"></a>00478 } <span class="comment">// namespace xint</span>
+<a name="l00479"></a>00479
+<a name="l00480"></a>00480 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_H</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/xint__data__t_8hpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__data__t_8hpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,107 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/xint_data_t.hpp File Reference</h1><code>#include &lt;vector&gt;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td></tr>
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html">xint::detail</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>implementation details, normal users should not need to use these. </p>
+<br/></td></tr>
+</p>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/xint__data__t_8hpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__data__t_8hpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,171 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/xint_data_t.hpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file contains the declaration for the xint data structure. It should</span>
+<a name="l00012"></a>00012 <span class="comment"> only be used by the library itself.</span>
+<a name="l00013"></a>00013 <span class="comment"></span>
+<a name="l00014"></a>00014 <span class="comment"> The data for an integer is stored in a separate struct so it can be shared</span>
+<a name="l00015"></a>00015 <span class="comment"> between different copies of an identical number.</span>
+<a name="l00016"></a>00016 <span class="comment"></span>
+<a name="l00017"></a>00017 <span class="comment"> The digits are stored low-digit-first.</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment"> Define XINT_SECURE to zero all memory before releasing it.</span>
+<a name="l00020"></a>00020 <span class="comment">*/</span>
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 <span class="preprocessor">#ifndef BOOST_INCLUDED_XINT_DATA_T_H</span>
+<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_INCLUDED_XINT_DATA_T_H</span>
+<a name="l00024"></a>00024 <span class="preprocessor"></span>
+<a name="l00025"></a>00025 <span class="preprocessor">#if !defined(XINT_SECURE)</span>
+<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor"> #include &lt;vector&gt;</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#endif</span>
+<a name="l00028"></a>00028 <span class="preprocessor"></span>
+<a name="l00029"></a>00029 <span class="keyword">namespace </span>xint {
+<a name="l00030"></a>00030 <span class="keyword">namespace </span>detail {
+<a name="l00031"></a>00031
+<a name="l00032"></a><a class="code" href="structxint_1_1detail_1_1data__t.html">00032</a> <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a> {
+<a name="l00033"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">00033</a> <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">QuickDigits</a> {
+<a name="l00034"></a>00034 <span class="comment">// We want at least enough QuickDigits to hold two ints.</span>
+<a name="l00035"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">00035</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">intbits</a>=std::numeric_limits&lt;unsigned int&gt;::digits;
+<a name="l00036"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">00036</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a>=(2*<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">intbits</a>/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
+<a name="l00037"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">00037</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a>=3;
+<a name="l00038"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">00038</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">count</a>=(<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a> &lt; <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a> ? <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a> : <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a>);
+<a name="l00039"></a>00039 };
+<a name="l00040"></a>00040
+<a name="l00041"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">00041</a> <span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>;
+<a name="l00042"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">00042</a> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>[<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>];
+<a name="l00043"></a>00043
+<a name="l00044"></a>00044 <span class="preprocessor"> #if !defined(XINT_SECURE)</span>
+<a name="l00045"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">00045</a> <span class="preprocessor"></span> std::vector&lt;digit_t&gt; <a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>;
+<a name="l00046"></a>00046 <span class="preprocessor"> #endif</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>
+<a name="l00048"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">00048</a> <span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>;
+<a name="l00049"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">00049</a> <span class="keywordtype">bool</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>;
+<a name="l00050"></a>00050
+<a name="l00051"></a>00051 <span class="keyword">public</span>:
+<a name="l00052"></a>00052 <a class="code" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">data_t</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial1=0, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial2=0, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial3=0);
+<a name="l00053"></a>00053 <a class="code" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">data_t</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a> *c);
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 <span class="preprocessor"> #if defined(XINT_SECURE)</span>
+<a name="l00056"></a>00056 <span class="preprocessor"></span> ~<a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>();
+<a name="l00057"></a>00057 <span class="preprocessor"> #endif</span>
+<a name="l00058"></a>00058 <span class="preprocessor"></span>
+<a name="l00059"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">00059</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">attach</a>() { ++<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>; }
+<a name="l00060"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">00060</a> <span class="keywordtype">bool</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">detach</a>() { <span class="keywordflow">return</span> (--<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==0); }
+<a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(<span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <span class="keywordtype">bool</span> copydigits=<span class="keyword">false</span>);
+<a name="l00062"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">00062</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">realloc</a>(<span class="keywordtype">int</span> newdigits) { <a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(newdigits, <span class="keyword">true</span>); }
+<a name="l00063"></a>00063 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00064"></a>00064 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#acc02d0c3b8c867ff12af155dae8445dd">copy</a>(<span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a> *c, <span class="keywordtype">int</span> extraDigits=0);
+<a name="l00065"></a>00065 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *p, <span class="keywordtype">size_t</span> count);
+<a name="l00066"></a>00066
+<a name="l00067"></a>00067 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a57fc3966c44d09daeede53899673cde3">quickset</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d1, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d2=0, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d3=0);
+<a name="l00068"></a>00068
+<a name="l00069"></a>00069 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#aaf6f202db416ad8fe18ec8a6c8c48904">invert</a>();
+<a name="l00070"></a>00070 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">negate</a>();
+<a name="l00071"></a>00071
+<a name="l00072"></a>00072 <span class="comment">// These primitives ignore the signs of the parameters, and their results</span>
+<a name="l00073"></a>00073 <span class="comment">// are calculated in place.</span>
+<a name="l00074"></a>00074 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">add</a>(<span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>&amp; addend);
+<a name="l00075"></a>00075 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">subtract</a>(<span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>&amp; subtrahend);
+<a name="l00076"></a>00076
+<a name="l00077"></a>00077 <span class="comment">// These are also calculated in place, for maximum speed.</span>
+<a name="l00078"></a>00078 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">shift_left</a>(<span class="keywordtype">int</span> byBits);
+<a name="l00079"></a>00079 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">shift_right</a>(<span class="keywordtype">int</span> byBits);
+<a name="l00080"></a>00080 };
+<a name="l00081"></a>00081
+<a name="l00082"></a>00082 } <span class="comment">// namespace detail</span>
+<a name="l00083"></a>00083 } <span class="comment">// namespace xint</span>
+<a name="l00084"></a>00084
+<a name="l00085"></a>00085 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_DATA_T_H</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/xint__fibonacci_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__fibonacci_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,129 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/libs/xint/example/xint_fibonacci.cpp File Reference</h1>
+<p>Simple demo of xint sending the fibonacci sequence to stream output.
+More...</p>
+<code>#include &lt;iostream&gt;</code><br/>
+<code>#include &lt;limits&gt;</code><br/>
+<code>#include &lt;<a class="el" href="xint_8hpp_source.html">boost/xint/xint.hpp</a>&gt;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint__fibonacci_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Simple demo of xint sending the fibonacci sequence to stream output. </p>
+<p>Fibonacci numbers are a sequence of numbers, starting with the numbers 0 and 1, where each successive number is the sum of the previous two. The first few Fibonacci numbers are:</p>
+<p>0 1 1 2 3 5 8 13 21 34 55 89 144...</p>
+<p>You might be curious what the first Fibonacci number is that's too big to calculate using the standard C++ unsigned long type. A brute-force method of calculating this would be problematic, since it might not be possible to tell when it overflows. But with the XInt library, it's child's play.</p>
+<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 <a class="el" href="classxint_1_1integer.html">xint::integer</a> won't overflow on you until you completely exhaust your system's memory. :-) </p>
+
+<p>Definition in file <a class="el" href="xint__fibonacci_8cpp_source.html">xint_fibonacci.cpp</a>.</p>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a><!-- doxytag: member="xint_fibonacci.cpp::main" ref="ae66f6b31b5ad750f1fe042a706a4e3d4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int main </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__fibonacci_8cpp_source.html#l00033">33</a> of file <a class="el" href="xint__fibonacci_8cpp_source.html">xint_fibonacci.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/xint__fibonacci_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__fibonacci_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,143 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/libs/xint/example/xint_fibonacci.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// xint_fibonacci.cpp</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a>00003 <span class="comment">// Copyright Chad Nelson 2010</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00006"></a>00006 <span class="comment">// (See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00007"></a>00007 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00008"></a>00008
+<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;iostream&gt;</span>
+<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;limits&gt;</span>
+<a name="l00030"></a>00030
+<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;<a class="code" href="xint_8hpp.html">boost/xint/xint.hpp</a>&gt;</span>
+<a name="l00032"></a>00032
+<a name="l00033"></a><a class="code" href="xint__fibonacci_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">00033</a> <span class="keywordtype">int</span> <a class="code" href="xint__fibonacci_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>() {
+<a name="l00034"></a>00034 <span class="keyword">using</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>;
+<a name="l00035"></a>00035 <span class="keyword">using</span> std::cout;
+<a name="l00036"></a>00036 <span class="keyword">using</span> std::endl;
+<a name="l00037"></a>00037 <span class="keyword">using</span> std::numeric_limits;
+<a name="l00038"></a>00038
+<a name="l00039"></a>00039 <span class="comment">//[xint_fibonacci_snippet_1</span>
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 <span class="comment">// Select our limit, in this case the largest number </span>
+<a name="l00042"></a>00042 <span class="comment">// that will fit into an unsigned long:</span>
+<a name="l00043"></a>00043 integer limit=(std::numeric_limits&lt;unsigned long&gt;::max)();
+<a name="l00044"></a>00044
+<a name="l00045"></a>00045 <span class="comment">// Set the first two numbers in the sequence:</span>
+<a name="l00046"></a>00046 integer n, n1=0, n2=1;
+<a name="l00047"></a>00047 <span class="comment">//] [xint_fibonacci_snippet_1]</span>
+<a name="l00048"></a>00048
+<a name="l00049"></a>00049 <span class="comment">// Now count the items in the sequence as we iterate over them,</span>
+<a name="l00050"></a>00050 <span class="comment">// until we come to the first one greater than the limit we&#39;ve set.</span>
+<a name="l00051"></a>00051 <span class="keywordtype">size_t</span> counter=0;
+<a name="l00052"></a>00052 cout &lt;&lt; counter++ &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; n1 &lt;&lt; endl;
+<a name="l00053"></a>00053 cout &lt;&lt; counter++ &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; n2 &lt;&lt; endl;
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 <span class="keywordflow">while</span> (<span class="keyword">true</span>) {
+<a name="l00056"></a>00056 n = n1 + n2;
+<a name="l00057"></a>00057 <span class="keywordflow">if</span> (n &gt; limit) <span class="keywordflow">break</span>;
+<a name="l00058"></a>00058 <span class="comment">// That one didn&#39;t do it, go back for another try.</span>
+<a name="l00059"></a>00059 cout &lt;&lt; counter++ &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; n &lt;&lt; endl;
+<a name="l00060"></a>00060
+<a name="l00061"></a>00061 n1=n2;
+<a name="l00062"></a>00062 n2=n;
+<a name="l00063"></a>00063 }
+<a name="l00064"></a>00064
+<a name="l00065"></a>00065 cout &lt;&lt; <span class="stringliteral">&quot;The answer is &quot;</span> &lt;&lt; counter &lt;&lt; <span class="stringliteral">&quot; (&quot;</span> &lt;&lt; n &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; endl;
+<a name="l00066"></a>00066 } <span class="comment">// int main()</span>
+<a name="l00067"></a>00067
+<a name="l00068"></a>00068
+<a name="l00069"></a>00069 <span class="comment">/*</span>
+<a name="l00070"></a>00070 <span class="comment">//[xint_fibonacci_output_1</span>
+<a name="l00071"></a>00071 <span class="comment"></span>
+<a name="l00072"></a>00072 <span class="comment"></span>
+<a name="l00073"></a>00073 <span class="comment"></span>
+<a name="l00074"></a>00074 <span class="comment">//] [xint_fibonacci_output_1]</span>
+<a name="l00075"></a>00075 <span class="comment">*/</span>
+<a name="l00076"></a>00076
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/xint__monty_8hpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__monty_8hpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,105 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/xint_monty.hpp File Reference</h1>
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">digit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afd561fd7c7631267fbc7e5c75c2bde71">xint::inverse0</a> (const integer &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b">xint::montgomeryR</a> (const integer &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab8e85cd5425fcec419c07155e2a91e13">xint::toMontgomeryForm</a> (const integer &amp;n, const integer &amp;m)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a93ed16c5350b34ca22108e48b51918a5">xint::fromMontgomeryForm</a> (const integer &amp;n, const integer &amp;m)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">xint::montgomeryMultiplyMod</a> (const integer &amp;a, const integer &amp;b, const integer &amp;n, digit_t nPrime0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7d7e8604c467bc007820c60e1bc21626">xint::montgomeryPowerMod</a> (const integer &amp;a, const integer &amp;e, const integer &amp;n)</td></tr>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/xint__monty_8hpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__monty_8hpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,116 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/xint_monty.hpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This file declares the functions that use the Montgomery Reduction. They are</span>
+<a name="l00012"></a>00012 <span class="comment"> used internally to speed up the powmod function for odd modulii.</span>
+<a name="l00013"></a>00013 <span class="comment">*/</span>
+<a name="l00014"></a>00014
+<a name="l00015"></a>00015 <span class="preprocessor">#ifndef BOOST_INCLUDED_XINT_MONTY_H</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_INCLUDED_XINT_MONTY_H</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span>
+<a name="l00018"></a>00018 <span class="keyword">namespace </span>xint {
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> <a class="code" href="namespacexint.html#afd561fd7c7631267fbc7e5c75c2bde71">inverse0</a>(<span class="keyword">const</span> integer&amp; n);
+<a name="l00021"></a>00021 integer <a class="code" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b">montgomeryR</a>(<span class="keyword">const</span> integer&amp; n);
+<a name="l00022"></a>00022 integer <a class="code" href="namespacexint.html#ab8e85cd5425fcec419c07155e2a91e13">toMontgomeryForm</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m);
+<a name="l00023"></a>00023 integer <a class="code" href="namespacexint.html#a93ed16c5350b34ca22108e48b51918a5">fromMontgomeryForm</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m);
+<a name="l00024"></a>00024 integer <a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">montgomeryMultiplyMod</a>(<span class="keyword">const</span> integer&amp; x, <span class="keyword">const</span> integer&amp; y, <span class="keyword">const</span> integer&amp;
+<a name="l00025"></a>00025 m, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> nPrime0);
+<a name="l00026"></a>00026 integer <a class="code" href="namespacexint.html#a7d7e8604c467bc007820c60e1bc21626">montgomeryPowerMod</a>(<span class="keyword">const</span> integer&amp; x, <span class="keyword">const</span> integer&amp; e, <span class="keyword">const</span> integer&amp; m);
+<a name="l00027"></a>00027
+<a name="l00028"></a>00028 } <span class="comment">// namespace xint</span>
+<a name="l00029"></a>00029
+<a name="l00030"></a>00030 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MONTY_H</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/xint__simple_8cpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__simple_8cpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,123 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/libs/xint/example/xint_simple.cpp File Reference</h1>
+<p>Simple demo of xint including stream output.
+More...</p>
+<code>#include &lt;<a class="el" href="xint_8hpp_source.html">boost/xint/xint.hpp</a>&gt;</code><br/>
+
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xint__simple_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Simple demo of xint including stream output. </p>
+<p>Tests a few operators for output to a std:: stream. </p>
+
+<p>Definition in file <a class="el" href="xint__simple_8cpp_source.html">xint_simple.cpp</a>.</p>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a><!-- doxytag: member="xint_simple.cpp::main" ref="ae66f6b31b5ad750f1fe042a706a4e3d4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int main </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint__simple_8cpp_source.html#l00026">26</a> of file <a class="el" href="xint__simple_8cpp_source.html">xint_simple.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/xint__simple_8cpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__simple_8cpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,137 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/libs/xint/example/xint_simple.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// xint_simple.cpp</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a>00003 <span class="comment">// Copyright Paul A. Bristow 2010</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00006"></a>00006 <span class="comment">// (See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00007"></a>00007 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00008"></a>00008
+<a name="l00016"></a>00016 <span class="preprocessor">#include &lt;<a class="code" href="xint_8hpp.html">boost/xint/xint.hpp</a>&gt;</span>
+<a name="l00017"></a>00017
+<a name="l00018"></a>00018 <span class="comment">//#include &lt;iostream&gt;</span>
+<a name="l00019"></a>00019 <span class="comment">//using std::cout;</span>
+<a name="l00020"></a>00020 <span class="comment">//using std::endl;</span>
+<a name="l00021"></a>00021 <span class="comment">//#include &lt;iomanip&gt;</span>
+<a name="l00022"></a>00022 <span class="comment">//using std::setprecision;</span>
+<a name="l00023"></a>00023 <span class="comment">//using std::setw;</span>
+<a name="l00024"></a>00024 <span class="comment">//#include &lt;limits&gt;</span>
+<a name="l00025"></a>00025
+<a name="l00026"></a><a class="code" href="xint__simple_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">00026</a> <span class="keywordtype">int</span> <a class="code" href="xint__fibonacci_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>()
+<a name="l00027"></a>00027 {
+<a name="l00028"></a>00028 <span class="comment">// TODO I think you should get this into the boost namespace now or there will be zillions of places to change.</span>
+<a name="l00029"></a>00029 <span class="comment">//using namespace boost::xint</span>
+<a name="l00030"></a>00030
+<a name="l00031"></a>00031 <span class="comment">//using namespace xint;</span>
+<a name="l00032"></a>00032 <span class="comment">//using xint::integer;</span>
+<a name="l00033"></a>00033
+<a name="l00034"></a>00034 <span class="comment">//[xint_simple_snippet_1</span>
+<a name="l00035"></a>00035
+<a name="l00036"></a>00036 <a class="code" href="classxint_1_1integer.html">xint::integer</a> a;
+<a name="l00037"></a>00037 <span class="comment">//integer b = 3;</span>
+<a name="l00038"></a>00038
+<a name="l00039"></a>00039 <span class="comment">//integer c = a + b;</span>
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 <span class="comment">//cout &lt;&lt; a &lt;&lt; &quot;, b = &quot; &lt;&lt; b &lt;&lt; &quot;, a + b = &quot; &lt;&lt; a + b &lt;&lt; endl;</span>
+<a name="l00042"></a>00042
+<a name="l00043"></a>00043 <span class="comment">//] [xint_simple_snippet_1]</span>
+<a name="l00044"></a>00044 <span class="keywordflow">return</span> 0;
+<a name="l00045"></a>00045 } <span class="comment">// int(main)</span>
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 <span class="comment">/*</span>
+<a name="l00048"></a>00048 <span class="comment"></span>
+<a name="l00049"></a>00049 <span class="comment"></span>
+<a name="l00050"></a>00050 <span class="comment">//[xint_simple_output</span>
+<a name="l00051"></a>00051 <span class="comment">Output:</span>
+<a name="l00052"></a>00052 <span class="comment"></span>
+<a name="l00053"></a>00053 <span class="comment"></span>
+<a name="l00054"></a>00054 <span class="comment">//] [xint_simple_output]</span>
+<a name="l00055"></a>00055 <span class="comment">*/</span>
+<a name="l00056"></a>00056
+<a name="l00057"></a>00057
+<a name="l00058"></a>00058
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/xint__test_8hpp.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__test_8hpp.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,109 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>I:/boost-sandbox/xInt/boost/xint/xint_test.hpp File Reference</h1>
+<p>Go to the source code of this file.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a972fb39595e902be6c50629356b44e5b">xint::testAll</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a509778d505a3c8a0b335817150eaead2">xint::testBitManipulations</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a6b7f5122683b6d924bf86c7d1507206b">xint::testAddSubtract</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#affe2e221777d4263a420d014fa9640d0">xint::testMultiply</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4ed78ff75865ae44a00d3709dd88c3a1">xint::testDivideMod</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae4ef5f20964fa995df7828f27bd7adbe">xint::testConvert</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae3305f62ca9be58fbc11dbd4c703f38b">xint::testStreams</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aa1dbeb0c1ad12e8a8de7efb6c47e455f">xint::testRandom</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac40068d64f8c4d9002a0687935888c42">xint::testMontyMultiply</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a9cce0401174b9ae173671b0800c5f457">xint::testMontyPowerMod</a> ()</td></tr>
+</table>
+</div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/html/xint__test_8hpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__test_8hpp_source.html 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -0,0 +1,118 @@
+
+<!-- CUSTOMISE THIS FILE! -->
+
+<!-- Sample custom Doxygen header my_doxygen_header.html -->-
+
+<!-- Change copyright to YOUR name below: -->
+
+<!-- Copyright 2009 Paul A. Bristow. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!-- http://www.boost.org/LICENSE_1_0.txt) -->
+
+<html> <!-- </html> is in footer. -->
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+
+ <!-- Add your title here ! -->
+ <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+
+ <!-- Add your custom stylesheet here ! -->
+ <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
+ <!-- Note that this overrides any stylesheet specified in doxyfile setting HTML_STYLESHEET="mystylesheet.css" ! -->
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
+</head>
+
+<!-- Add draft background here if, for example, not yet accepted or otherwise not finalised! -->
+<body style="background-image: url(../images/draft.png);"> <!-- </body> is in footer. -->
+<!-- Add your logo here ! -->
+<!-- Boost logo here if accepted after review, else some "Boost in mind" logo, for example the one below, or "proposed to Boost" ! -->
+<table cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top"><img alt="Written with Boost C++ Libraries in mind." src="../images/boost_in_mind.png" height="60" width="350"/></td>
+ </tr>
+ </tbody>
+</table>
+<p>
+ <br/> <!-- Some space below logo, if needed. -->
+</p>
+
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>I:/boost-sandbox/xInt/boost/xint/xint_test.hpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> This header file declares the library&#39;s self-testing functions.</span>
+<a name="l00012"></a>00012 <span class="comment">*/</span>
+<a name="l00013"></a>00013
+<a name="l00014"></a>00014 <span class="preprocessor">#ifndef BOOST_INCLUDED_XINT_TEST_H</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_INCLUDED_XINT_TEST_H</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span>
+<a name="l00017"></a>00017 <span class="keyword">namespace </span>xint {
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a972fb39595e902be6c50629356b44e5b">testAll</a>();
+<a name="l00020"></a>00020 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a509778d505a3c8a0b335817150eaead2">testBitManipulations</a>();
+<a name="l00021"></a>00021 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a6b7f5122683b6d924bf86c7d1507206b">testAddSubtract</a>();
+<a name="l00022"></a>00022 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#affe2e221777d4263a420d014fa9640d0">testMultiply</a>();
+<a name="l00023"></a>00023 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a4ed78ff75865ae44a00d3709dd88c3a1">testDivideMod</a>();
+<a name="l00024"></a>00024 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ae4ef5f20964fa995df7828f27bd7adbe">testConvert</a>();
+<a name="l00025"></a>00025 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ae3305f62ca9be58fbc11dbd4c703f38b">testStreams</a>();
+<a name="l00026"></a>00026 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#aa1dbeb0c1ad12e8a8de7efb6c47e455f">testRandom</a>();
+<a name="l00027"></a>00027 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ac40068d64f8c4d9002a0687935888c42">testMontyMultiply</a>();
+<a name="l00028"></a>00028 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a9cce0401174b9ae173671b0800c5f457">testMontyPowerMod</a>();
+<a name="l00029"></a>00029
+<a name="l00030"></a>00030 } <span class="comment">// namespace xint</span>
+<a name="l00031"></a>00031
+<a name="l00032"></a>00032 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_TEST_H</span>
+</pre></div></div>
+<!-- xint custom Doxygen footer my_doxygen_footer.html -->-
+
+<!-- Copyright 2009 Chad Nelson. -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or copy at -->
+<!--
http://www.boost.org/LICENSE_1_0.txt) -->
+
+<hr size="1"/>
+<table width="100%">
+<tbody>
+ <tr>
+ <address style="text-align: left;">
+ <p>Use, modification and distribution are subject to the Boost Software License, Version 1.0.<br/>
+ (See accompanying file LICENSE_1_0.txt or copy at&nbsp;
+ http://www.boost.org/LICENSE_1_0.txt )</p>
+ <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
+ <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
+ <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+ </address>
+ </tr>
+</tbody>
+</table>
+ <!-- You can also add a footer logo, taking care that the location of the footer.png is correct. -->
+ <!-- <img src="../images/my_footer.png" alt="Boost Doxygen documentation footer.png" -->
+ </body> <!-- <body> is in doxygen_header.html -->
+</html><!-- <html> is in doxygen_header.html -->
+
+

Added: sandbox/xint/libs/xint/doc/doxygen/images/Written_for_Boost.png
==============================================================================
Binary file. No diff available.

Added: sandbox/xint/libs/xint/doc/doxygen/images/boost_in_mind.png
==============================================================================
Binary file. No diff available.

Added: sandbox/xint/libs/xint/doc/doxygen/images/draft.png
==============================================================================
Binary file. No diff available.

Added: sandbox/xint/libs/xint/doc/doxygen/images/proposed_boost.png
==============================================================================
Binary file. No diff available.

Modified: sandbox/xint/libs/xint/example/xint_fibonacci.cpp
==============================================================================
--- sandbox/xint/libs/xint/example/xint_fibonacci.cpp (original)
+++ sandbox/xint/libs/xint/example/xint_fibonacci.cpp 2010-03-31 09:52:22 EDT (Wed, 31 Mar 2010)
@@ -11,11 +11,18 @@
 \brief Simple demo of xint sending the fibonacci sequence to stream output.
 \details
 
-Fibonacci numbers are a sequence of numbers, starting with the numbers 0 and 1, where each successive number is the sum of the previous two. The first few Fibonacci numbers are:
+Fibonacci numbers are a sequence of numbers, starting with the numbers 0 and 1,
+where each successive number is the sum of the previous two.
+
+The first few Fibonacci numbers are:
 
     0 1 1 2 3 5 8 13 21 34 55 89 144...
 
-You might be curious what the first Fibonacci number is that's too big to calculate using the standard C++ unsigned long type. A brute-force method of calculating this would be problematic, since it might not be possible to tell when it overflows. But with the XInt library, it's child's play.
+You might be curious what the first Fibonacci number is that's too big to calculate
+using the standard C++ unsigned long type.
+A brute-force method of calculating this would be problematic,
+since it might not be possible to tell when it overflows.
+But with the XInt library, it's child's play.
 
 If you're not intimately familiar with the Fibonacci sequence,
 and how fast the numbers in it grow, the answer might shock you.
@@ -24,7 +31,7 @@
 -- except that an xint::integer won't overflow on you
 until you completely exhaust your system's memory. :-)
 
-**/
+*/
 #include <iostream>
 #include <limits>
 


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