Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r61110 - in sandbox/xint: boost/xint doc doc/dox src test
From: chad.thecomfychair_at_[hidden]
Date: 2010-04-06 15:25:53


Author: chadnelson
Date: 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
New Revision: 61110
URL: http://svn.boost.org/trac/boost/changeset/61110

Log:
Put xint under boost namespace; fixed showpos problem.
Removed:
   sandbox/xint/test/xint_test.cpp
Text files modified:
   sandbox/xint/boost/xint/xint.hpp | 7
   sandbox/xint/boost/xint/xint_data_t.hpp | 2
   sandbox/xint/boost/xint/xint_monty.hpp | 2
   sandbox/xint/boost/xint/xint_test.hpp | 2
   sandbox/xint/doc/acknowledgements.html | 6
   sandbox/xint/doc/acknowledgements_8dox.html | 2
   sandbox/xint/doc/annotated.html | 34
   sandbox/xint/doc/bit__manipulations_8cpp.html | 49 +-
   sandbox/xint/doc/bit__manipulations_8cpp_source.html | 310 ++++++------
   sandbox/xint/doc/classes.html | 18
   sandbox/xint/doc/compare_8cpp.html | 23
   sandbox/xint/doc/compare_8cpp_source.html | 90 ++-
   sandbox/xint/doc/convert_8cpp.html | 25
   sandbox/xint/doc/convert_8cpp_source.html | 334 +++++++-------
   sandbox/xint/doc/copyonwrite_8dox.html | 2
   sandbox/xint/doc/cow.html | 4
   sandbox/xint/doc/data__t_8cpp.html | 11
   sandbox/xint/doc/data__t_8cpp_source.html | 594 +++++++++++++-------------
   sandbox/xint/doc/dependencies.html | 2
   sandbox/xint/doc/dependencies_8dox.html | 2
   sandbox/xint/doc/dox/index.dox | 2
   sandbox/xint/doc/ex__fibonacci_8dox.html | 2
   sandbox/xint/doc/ex_fibonacci.html | 6
   sandbox/xint/doc/exception__blocker_8cpp.html | 19
   sandbox/xint/doc/exception__blocker_8cpp_source.html | 97 ++--
   sandbox/xint/doc/exceptions.html | 22
   sandbox/xint/doc/exceptions_8dox.html | 2
   sandbox/xint/doc/files.html | 8
   sandbox/xint/doc/functions.html | 168 +++---
   sandbox/xint/doc/functions_func.html | 128 ++--
   sandbox/xint/doc/functions_type.html | 10
   sandbox/xint/doc/functions_vars.html | 34
   sandbox/xint/doc/gcd_8cpp.html | 25
   sandbox/xint/doc/gcd_8cpp_source.html | 192 ++++----
   sandbox/xint/doc/globals.html | 2
   sandbox/xint/doc/globals_defs.html | 2
   sandbox/xint/doc/globals_vars.html | 2
   sandbox/xint/doc/hierarchy.html | 34
   sandbox/xint/doc/history.html | 2
   sandbox/xint/doc/history_8dox.html | 2
   sandbox/xint/doc/index.html | 4
   sandbox/xint/doc/index_8dox.html | 2
   sandbox/xint/doc/integer_8cpp.html | 9
   sandbox/xint/doc/integer_8cpp_source.html | 432 +++++++++---------
   sandbox/xint/doc/misc_8cpp.html | 17
   sandbox/xint/doc/misc_8cpp_source.html | 68 +-
   sandbox/xint/doc/modular_8cpp.html | 23
   sandbox/xint/doc/modular_8cpp_source.html | 120 ++--
   sandbox/xint/doc/monty_8cpp.html | 35
   sandbox/xint/doc/monty_8cpp_source.html | 500 +++++++++++-----------
   sandbox/xint/doc/namespacemembers.html | 184 ++++----
   sandbox/xint/doc/namespacemembers_func.html | 160 +++---
   sandbox/xint/doc/namespacemembers_type.html | 10
   sandbox/xint/doc/namespacemembers_vars.html | 18
   sandbox/xint/doc/namespaces.html | 7
   sandbox/xint/doc/nan.html | 6
   sandbox/xint/doc/nan_8dox.html | 2
   sandbox/xint/doc/operators_8cpp.html | 25
   sandbox/xint/doc/operators_8cpp_source.html | 32
   sandbox/xint/doc/pages.html | 2
   sandbox/xint/doc/powers_8cpp.html | 21
   sandbox/xint/doc/powers_8cpp_source.html | 212 ++++----
   sandbox/xint/doc/primes.html | 10
   sandbox/xint/doc/primes_8cpp.html | 13
   sandbox/xint/doc/primes_8cpp_source.html | 210 ++++----
   sandbox/xint/doc/primes_8dox.html | 2
   sandbox/xint/doc/primitives_8cpp.html | 33
   sandbox/xint/doc/primitives_8cpp_source.html | 480 ++++++++++----------
   sandbox/xint/doc/r__cow_8dox.html | 2
   sandbox/xint/doc/r__default__necessary_8dox.html | 2
   sandbox/xint/doc/r__insecure__default_8dox.html | 2
   sandbox/xint/doc/r__interface_8dox.html | 2
   sandbox/xint/doc/r__interface__design__only_8dox.html | 2
   sandbox/xint/doc/r__nan_8dox.html | 2
   sandbox/xint/doc/r__negzero_8dox.html | 2
   sandbox/xint/doc/r__random_8dox.html | 2
   sandbox/xint/doc/r__shared__ptr_8dox.html | 2
   sandbox/xint/doc/r_cow.html | 2
   sandbox/xint/doc/r_default_necessary.html | 2
   sandbox/xint/doc/r_insecure_default.html | 4
   sandbox/xint/doc/r_interface.html | 2
   sandbox/xint/doc/r_interface_design_only.html | 2
   sandbox/xint/doc/r_nan.html | 2
   sandbox/xint/doc/r_negzero.html | 2
   sandbox/xint/doc/r_random.html | 4
   sandbox/xint/doc/r_shared_ptr.html | 2
   sandbox/xint/doc/random.html | 6
   sandbox/xint/doc/random_8cpp.html | 17
   sandbox/xint/doc/random_8cpp_source.html | 348 +++++++-------
   sandbox/xint/doc/random_8dox.html | 2
   sandbox/xint/doc/rationale.html | 2
   sandbox/xint/doc/rationale_8dox.html | 2
   sandbox/xint/doc/roots_8cpp.html | 9
   sandbox/xint/doc/roots_8cpp_source.html | 54 +-
   sandbox/xint/doc/securemode.html | 4
   sandbox/xint/doc/securemode_8dox.html | 2
   sandbox/xint/doc/testing.html | 2
   sandbox/xint/doc/testing_8dox.html | 2
   sandbox/xint/doc/threadsafe.html | 4
   sandbox/xint/doc/threadsafe_8dox.html | 2
   sandbox/xint/doc/todo.html | 14
   sandbox/xint/doc/xint_8hpp.html | 319 +++++++-------
   sandbox/xint/doc/xint_8hpp_source.html | 894 ++++++++++++++++++++-------------------
   sandbox/xint/doc/xint__data__t_8hpp.html | 21
   sandbox/xint/doc/xint__data__t_8hpp_source.html | 118 ++--
   sandbox/xint/doc/xint__monty_8hpp.html | 31
   sandbox/xint/doc/xint__monty_8hpp_source.html | 30
   sandbox/xint/doc/xint__test_8hpp.html | 21
   sandbox/xint/doc/xint__test_8hpp_source.html | 32
   sandbox/xint/src/bit_manipulations.cpp | 4
   sandbox/xint/src/compare.cpp | 2
   sandbox/xint/src/convert.cpp | 2
   sandbox/xint/src/data_t.cpp | 2
   sandbox/xint/src/exception_blocker.cpp | 3
   sandbox/xint/src/gcd.cpp | 2
   sandbox/xint/src/integer.cpp | 2
   sandbox/xint/src/misc.cpp | 2
   sandbox/xint/src/modular.cpp | 2
   sandbox/xint/src/monty.cpp | 2
   sandbox/xint/src/operators.cpp | 2
   sandbox/xint/src/powers.cpp | 2
   sandbox/xint/src/primes.cpp | 2
   sandbox/xint/src/primitives.cpp | 2
   sandbox/xint/src/random.cpp | 2
   sandbox/xint/src/roots.cpp | 2
   sandbox/xint/test/test_add.cpp | 2
   sandbox/xint/test/test_bit_manipulations.cpp | 2
   sandbox/xint/test/test_convert.cpp | 2
   sandbox/xint/test/test_divide.cpp | 2
   sandbox/xint/test/test_monty.cpp | 2
   sandbox/xint/test/test_multiply.cpp | 2
   sandbox/xint/test/test_streams.cpp | 36 +
   132 files changed, 3562 insertions(+), 3412 deletions(-)

Modified: sandbox/xint/boost/xint/xint.hpp
==============================================================================
--- sandbox/xint/boost/xint/xint.hpp (original)
+++ sandbox/xint/boost/xint/xint.hpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -35,6 +35,7 @@
 #include <boost/random/uniform_int.hpp>
 #include <boost/random/variate_generator.hpp>
 
+namespace boost {
 //! \brief All of the functions in the XInt library are within this namespace.
 namespace xint {
 
@@ -638,8 +639,11 @@
             : 10);
         bool upperCase=(out.flags() & std::ios::uppercase ? true : false);
 
+ int nsign=n.sign();
+ if ((out.flags() & std::ios::showpos) && nsign >= 0) out << "+";
+
         if (out.flags() & std::ios::showbase) {
- if (n.sign() < 0) out << "-";
+ if (nsign < 0) out << "-";
 
             if (base==16 && upperCase) out << "0X";
             else if (base==16) out << "0x";
@@ -726,5 +730,6 @@
 //!@}
 
 } // namespace xint
+} // namespace boost
 
 #endif // BOOST_INCLUDED_XINT_H

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-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -25,6 +25,7 @@
     #include <vector>
 #endif
 
+namespace boost {
 namespace xint {
 namespace detail {
 
@@ -92,5 +93,6 @@
 
 } // namespace detail
 } // namespace xint
+} // namespace boost
 
 #endif // BOOST_INCLUDED_XINT_DATA_T_H

Modified: sandbox/xint/boost/xint/xint_monty.hpp
==============================================================================
--- sandbox/xint/boost/xint/xint_monty.hpp (original)
+++ sandbox/xint/boost/xint/xint_monty.hpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -21,6 +21,7 @@
 #ifndef BOOST_INCLUDED_XINT_MONTY_H
 #define BOOST_INCLUDED_XINT_MONTY_H
 
+namespace boost {
 namespace xint {
 
 //! \name Montgomery Reduction functions
@@ -35,5 +36,6 @@
 //!@}
 
 } // namespace xint
+} // namespace boost
 
 #endif // BOOST_INCLUDED_XINT_MONTY_H

Modified: sandbox/xint/boost/xint/xint_test.hpp
==============================================================================
--- sandbox/xint/boost/xint/xint_test.hpp (original)
+++ sandbox/xint/boost/xint/xint_test.hpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -18,6 +18,7 @@
 #ifndef BOOST_INCLUDED_XINT_TEST_H
 #define BOOST_INCLUDED_XINT_TEST_H
 
+namespace boost {
 namespace xint {
 
 //! \name Self-Testing Functions
@@ -33,5 +34,6 @@
 //!@}
 
 } // namespace xint
+} // namespace boost
 
 #endif // BOOST_INCLUDED_XINT_TEST_H

Modified: sandbox/xint/doc/acknowledgements.html
==============================================================================
--- sandbox/xint/doc/acknowledgements.html (original)
+++ sandbox/xint/doc/acknowledgements.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -26,7 +26,7 @@
 
 <h1><a class="anchor" id="acknowledgements">Acknowledgements </a></h1><p>Several people have helped me improve the XInt library. Particular thanks go to Paul Bristow, for...</p>
 <ul>
-<li>Pointing out the need for a specialization of <code>std::numeric_limits</code> for <code><a class="el" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a></code>;</li>
+<li>Pointing out the need for a specialization of <code>std::numeric_limits</code> for <code>xint::integer</code>;</li>
 <li>Spending a great deal of time and effort to introduce me to the Boost.Test framework and Doxygen/QuickBook;</li>
 <li>Providing test cases and documentation tweaks;</li>
 <li>General advice and moral support.</li>
@@ -38,7 +38,7 @@
 <li>Scott McMurray, for comments on the random number code, the Not-a-Number value, and the blockable exceptions design, and for accidentally pointing out an error in the square-root function, among other things.</li>
 <li>"Pavel" for suggesting adding the algorithmic complexity of each function to the documentation, and for understanding what I was trying to explain when no one else seemed to.</li>
 <li>Jeffrey Lee Hellrung, Jr., for advice on implementing move-aware objects, and for an invigorating discussion on the differing needs of an integer library versus a floating-point one, among other things.</li>
-<li>Peter Dimov, for suggesting a separate <code><a class="el" href="classxint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a></code> exception class.</li>
+<li>Peter Dimov, for suggesting a separate <code>xint::overflow_error</code> exception class.</li>
 <li>"Fred," a.k.a. "Gottlob Frege", for information on infinities.</li>
 </ul>
 <p>And the other Boost development list members who joined the discussion:</p>
@@ -54,7 +54,7 @@
 </ul>
 <p>If I've forgotten anyone, please let me know and I'll correct the oversight. </p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/acknowledgements_8dox.html
==============================================================================
--- sandbox/xint/doc/acknowledgements_8dox.html (original)
+++ sandbox/xint/doc/acknowledgements_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/acknowledgements.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/annotated.html
==============================================================================
--- sandbox/xint/doc/annotated.html (original)
+++ sandbox/xint/doc/annotated.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -28,25 +28,25 @@
 </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_1base__random__generator.html">xint::detail::base_random_generator</a></td><td class="indexvalue">The base class for <a class="el" href="structxint_1_1detail_1_1random__generator.html" title="Support class for the random generator code.">random_generator</a> </td></tr>
- <tr><td class="indexkey"><a class="el" href="classxint_1_1cannot__represent.html">xint::cannot_represent</a></td><td class="indexvalue">Exception class </td></tr>
- <tr><td class="indexkey"><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td class="indexvalue">Holds the internal details of an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a> </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">Exception class </td></tr>
- <tr><td class="indexkey"><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td class="indexvalue">The extended integer class </td></tr>
- <tr><td class="indexkey"><a class="el" href="classxint_1_1invalid__base.html">xint::invalid_base</a></td><td class="indexvalue">Exception class </td></tr>
- <tr><td class="indexkey"><a class="el" href="classxint_1_1invalid__digit.html">xint::invalid_digit</a></td><td class="indexvalue">Exception class </td></tr>
- <tr><td class="indexkey"><a class="el" href="classxint_1_1invalid__modulus.html">xint::invalid_modulus</a></td><td class="indexvalue">Exception class </td></tr>
- <tr><td class="indexkey"><a class="el" href="classxint_1_1no__strong__random.html">xint::no_strong_random</a></td><td class="indexvalue">Exception class </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">Exception class </td></tr>
- <tr><td class="indexkey"><a class="el" href="classxint_1_1overflow__error.html">xint::overflow_error</a></td><td class="indexvalue">Exception class </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">Holds information determining how many quick-digits to use </td></tr>
- <tr><td class="indexkey"><a class="el" href="structxint_1_1detail_1_1random__generator.html">xint::detail::random_generator&lt; T &gt;</a></td><td class="indexvalue">Support class for the random generator code </td></tr>
- <tr><td class="indexkey"><a class="el" href="classxint_1_1strong__random__generator.html">xint::strong_random_generator</a></td><td class="indexvalue">A convenience class for cryptographically-secure random numbers </td></tr>
- <tr><td class="indexkey"><a class="el" href="structxint_1_1detail_1_1token.html">xint::detail::token</a></td><td class="indexvalue">An empty struct, used in <a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582" title="Used for the exception-blocker.">xint::token</a> </td></tr>
- <tr><td class="indexkey"><a class="el" href="classxint_1_1too__big.html">xint::too_big</a></td><td class="indexvalue">Exception class </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html">boost::xint::detail::base_random_generator</a></td><td class="indexvalue">The base class for <a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html" title="Support class for the random generator code.">random_generator</a> </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1cannot__represent.html">boost::xint::cannot_represent</a></td><td class="indexvalue">Exception class </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html">boost::xint::detail::data_t</a></td><td class="indexvalue">Holds the internal details of an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">xint::integer</a> </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1divide__by__zero.html">boost::xint::divide_by_zero</a></td><td class="indexvalue">Exception class </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1integer.html">boost::xint::integer</a></td><td class="indexvalue">The extended integer class </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1invalid__base.html">boost::xint::invalid_base</a></td><td class="indexvalue">Exception class </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1invalid__digit.html">boost::xint::invalid_digit</a></td><td class="indexvalue">Exception class </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1invalid__modulus.html">boost::xint::invalid_modulus</a></td><td class="indexvalue">Exception class </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1no__strong__random.html">boost::xint::no_strong_random</a></td><td class="indexvalue">Exception class </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1not__a__number.html">boost::xint::not_a_number</a></td><td class="indexvalue">Exception class </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1overflow__error.html">boost::xint::overflow_error</a></td><td class="indexvalue">Exception class </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html">boost::xint::detail::data_t::QuickDigits</a></td><td class="indexvalue">Holds information determining how many quick-digits to use </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html">boost::xint::detail::random_generator&lt; T &gt;</a></td><td class="indexvalue">Support class for the random generator code </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1strong__random__generator.html">boost::xint::strong_random_generator</a></td><td class="indexvalue">A convenience class for cryptographically-secure random numbers </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1detail_1_1token.html">boost::xint::detail::token</a></td><td class="indexvalue">An empty struct, used in <a class="el" href="namespaceboost_1_1xint.html#a8554e5ef0fa7ba2da83c8f01a9bb1128" title="Used for the exception-blocker.">xint::token</a> </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1too__big.html">boost::xint::too_big</a></td><td class="indexvalue">Exception class </td></tr>
 </table>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/bit__manipulations_8cpp.html
==============================================================================
--- sandbox/xint/doc/bit__manipulations_8cpp.html (original)
+++ sandbox/xint/doc/bit__manipulations_8cpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -35,7 +35,8 @@
 <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>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All of the functions in the XInt library are within this namespace. </p>
 <br/></td></tr>
@@ -44,35 +45,35 @@
 <tr><td colspan="2"><div class="groupHeader">Bit-manipulation functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpcc775c18f98f26f2b84ac7a2558636f2"></a> </p>
 <br/><br/></div></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="mdescLeft">&nbsp;</td><td class="mdescRight">Queries the value of a particular bit in an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> to one. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> to zero. <br/></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#ae04d70f50c4ce73d27ab32b1bf3520f2">xint::lowestbit</a> (const integer &amp;n, size_t valueIfZero)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the lowest bit in an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> with a value of one. <br/></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#ae08828243165ef3f397461507368a6e5">xint::highestbit</a> (const integer &amp;n, size_t valueIfZero)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the highest bit in an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> with a value of one. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>AND</code> operation. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>OR</code> operation. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>XOR</code> operation. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Bit-shift an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>, in either direction. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a6799cc3c4d8c963279be64b209bfd3b6">xint::shift_left</a> (const integer &amp;n, size_t byBits)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Left-shift an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> by a specified number of bits. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a49a5a4220cb88b7446545e4b65950473">xint::shift_right</a> (const integer &amp;n, size_t byBits)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Right-shift an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> by a specified number of bits. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac00836bdc530b3eaf0a9b9f2e208273b">boost::xint::getbit</a> (const integer &amp;n, size_t bit)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Queries the value of a particular bit in an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a6278915cf51b0d448a9db40031226182">boost::xint::setbit</a> (integer &amp;n, size_t bit)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> to one. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a96d452df71ac6799a7041647b4b106df">boost::xint::clearbit</a> (integer &amp;n, size_t bit)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> to zero. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a783e728f8221cd424d6f7f5d5f67ec40">boost::xint::lowestbit</a> (const integer &amp;n, size_t valueIfZero)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the lowest bit in an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> with a value of one. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aec002c076eff13d0382c5d2cd6de1d60">boost::xint::highestbit</a> (const integer &amp;n, size_t valueIfZero)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the highest bit in an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> with a value of one. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2">boost::xint::bitwise_and</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>AND</code> operation. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec">boost::xint::bitwise_or</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>OR</code> operation. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1">boost::xint::bitwise_xor</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>XOR</code> operation. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014">boost::xint::shift</a> (const integer &amp;n, int byBits)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bit-shift an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>, in either direction. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96">boost::xint::shift_left</a> (const integer &amp;n, size_t byBits)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Left-shift an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> by a specified number of bits. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2">boost::xint::shift_right</a> (const integer &amp;n, size_t byBits)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Right-shift an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> by a specified number of bits. <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Contains the bit-manipulation functions. </p>
 
 <p>Definition in file <a class="el" href="bit__manipulations_8cpp_source.html">bit_manipulations.cpp</a>.</p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/bit__manipulations_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/bit__manipulations_8cpp_source.html (original)
+++ sandbox/xint/doc/bit__manipulations_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -40,161 +40,163 @@
 <a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
 <a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../boost/xint/xint_data_t.hpp&quot;</span>
 <a name="l00020"></a>00020
-<a name="l00021"></a><a class="code" href="namespacexint.html">00021</a> <span class="keyword">namespace </span>xint {
-<a name="l00022"></a>00022
-<a name="l00023"></a>00023 <span class="keyword">using namespace </span>detail;
-<a name="l00024"></a>00024
-<a name="l00033"></a>00033 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952" title="Queries the value of a particular bit in an integer.">getbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> bit) {
-<a name="l00034"></a>00034 n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<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 &lt; n.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>()) {
-<a name="l00037"></a>00037 <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="l00038"></a>00038 <span class="keywordflow">return</span> ((n.<a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(index) &amp; mask) != 0);
-<a name="l00039"></a>00039 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00040"></a>00040 }
-<a name="l00041"></a>00041
-<a name="l00049"></a>00049 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a" title="Sets a specific bit in an integer to one.">setbit</a>(<a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> bit) {
-<a name="l00050"></a>00050 n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00051"></a>00051 n.<a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00052"></a>00052 <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *ndata=n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
-<a name="l00053"></a>00053
-<a name="l00054"></a>00054 <span class="keywordtype">size_t</span> index=bit/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>;
-<a name="l00055"></a>00055 <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#a2bb2c79d47f2fda3605f34b80cb58b8b">realloc</a>(index+1);
-<a name="l00056"></a>00056
-<a name="l00057"></a>00057 <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="l00058"></a>00058 ndata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[index] |= mask;
-<a name="l00059"></a>00059 ndata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00060"></a>00060 }
-<a name="l00061"></a>00061
-<a name="l00069"></a>00069 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a8982e3e3ab7c1c763416eadc479d9724" title="Sets a specific bit in an integer to zero.">clearbit</a>(<a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> bit) {
-<a name="l00070"></a>00070 n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00071"></a>00071 <span class="keywordtype">size_t</span> index=bit/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>;
-<a name="l00072"></a>00072 <span class="keywordflow">if</span> (index &lt; n.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>()) {
-<a name="l00073"></a>00073 n.<a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00074"></a>00074 <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="l00075"></a>00075 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="l00076"></a>00076 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="l00077"></a>00077 }
-<a name="l00078"></a>00078 }
-<a name="l00079"></a>00079
-<a name="l00089"></a>00089 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#ae04d70f50c4ce73d27ab32b1bf3520f2" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> valueIfZero) {
-<a name="l00090"></a>00090 <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">sign</a>()==0) <span class="keywordflow">return</span> valueIfZero;
-<a name="l00091"></a>00091
-<a name="l00092"></a>00092 <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *ndata=n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
-<a name="l00093"></a>00093 <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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
-<a name="l00094"></a>00094 <span class="keywordflow">while</span> (p!=pe &amp;&amp; *p==0) ++p;
-<a name="l00095"></a>00095
-<a name="l00096"></a>00096 <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="l00097"></a>00097 <span class="keywordtype">size_t</span> r=(<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * index);
-<a name="l00098"></a>00098 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> digit=*p;
-<a name="l00099"></a>00099
-<a name="l00100"></a>00100 <span class="keywordflow">while</span> ((digit &amp; 0x01)==0) {
-<a name="l00101"></a>00101 digit&gt;&gt;=1;
-<a name="l00102"></a>00102 ++r;
-<a name="l00103"></a>00103 }
-<a name="l00104"></a>00104
-<a name="l00105"></a>00105 <span class="keywordflow">return</span> r;
-<a name="l00106"></a>00106 }
-<a name="l00107"></a>00107
-<a name="l00117"></a>00117 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#ae08828243165ef3f397461507368a6e5" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> valueIfZero) {
-<a name="l00118"></a>00118 <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">sign</a>()==0) <span class="keywordflow">return</span> valueIfZero;
-<a name="l00119"></a>00119 <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" title="Get the log2 value of an integer.">log2</a>(n)-1);
-<a name="l00120"></a>00120 }
-<a name="l00121"></a>00121
-<a name="l00128"></a>00128 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1" title="Combine two integers using a bitwise AND operation.">bitwise_and</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n2) {
-<a name="l00129"></a>00129 n1.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00130"></a>00130 n2.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00131"></a>00131
-<a name="l00132"></a>00132 <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">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="l00133"></a>00133 <span class="keywordflow">if</span> (smaller-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> &gt; larger-&gt;mLength) std::swap(smaller, larger);
-<a name="l00134"></a>00134
-<a name="l00135"></a>00135 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> r;
-<a name="l00136"></a>00136 <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *rdata=r.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
-<a name="l00137"></a>00137 rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a>(smaller-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>);
-<a name="l00138"></a>00138
-<a name="l00139"></a>00139 <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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>, *s2=larger-&gt;digits;
-<a name="l00140"></a>00140 <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="l00141"></a>00141
-<a name="l00142"></a>00142 <span class="keywordflow">while</span> (s1 &lt; s1e) *t++ = *s1++ &amp; *s2++;
-<a name="l00143"></a>00143
-<a name="l00144"></a>00144 rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00145"></a>00145 <span class="keywordflow">return</span> r;
-<a name="l00146"></a>00146 }
-<a name="l00147"></a>00147
-<a name="l00154"></a>00154 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a" title="Combine two integers using a bitwise OR operation.">bitwise_or</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n2) {
-<a name="l00155"></a>00155 n1.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00156"></a>00156 n2.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00157"></a>00157
-<a name="l00158"></a>00158 <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">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="l00159"></a>00159 <span class="keywordflow">if</span> (smaller-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> &gt; larger-&gt;mLength) std::swap(smaller, larger);
-<a name="l00160"></a>00160
-<a name="l00161"></a>00161 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> r;
-<a name="l00162"></a>00162 <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *rdata=r.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
-<a name="l00163"></a>00163 rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a>(larger-&gt;mLength);
-<a name="l00164"></a>00164
-<a name="l00165"></a>00165 <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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
-<a name="l00166"></a>00166 <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="l00167"></a>00167 <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="l00168"></a>00168
-<a name="l00169"></a>00169 <span class="keywordflow">while</span> (s1&lt;s1e) *t++ = *s1++ | *s2++;
-<a name="l00170"></a>00170 <span class="keywordflow">while</span> (s2&lt;s2e) *t++ = *s2++;
-<a name="l00171"></a>00171
-<a name="l00172"></a>00172 rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00173"></a>00173 <span class="keywordflow">return</span> r;
-<a name="l00174"></a>00174 }
-<a name="l00175"></a>00175
-<a name="l00183"></a>00183 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe" title="Combine two integers using a bitwise XOR operation.">bitwise_xor</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n2) {
-<a name="l00184"></a>00184 n1.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00185"></a>00185 n2.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00186"></a>00186
-<a name="l00187"></a>00187 <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">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="l00188"></a>00188 <span class="keywordflow">if</span> (smaller-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> &gt; larger-&gt;mLength) std::swap(smaller, larger);
-<a name="l00189"></a>00189
-<a name="l00190"></a>00190 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> r;
-<a name="l00191"></a>00191 <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *rdata=r.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
-<a name="l00192"></a>00192 rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a>(larger-&gt;mLength);
-<a name="l00193"></a>00193
-<a name="l00194"></a>00194 <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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
-<a name="l00195"></a>00195 <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="l00196"></a>00196 <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="l00197"></a>00197
-<a name="l00198"></a>00198 <span class="keywordflow">while</span> (s1&lt;s1e) *t++ = *s1++ ^ *s2++;
-<a name="l00199"></a>00199 <span class="keywordflow">while</span> (s2&lt;s2e) *t++ = *s2++;
-<a name="l00200"></a>00200
-<a name="l00201"></a>00201 rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00202"></a>00202 <span class="keywordflow">return</span> r;
-<a name="l00203"></a>00203 }
-<a name="l00204"></a>00204
-<a name="l00213"></a>00213 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce" title="Bit-shift an integer, in either direction.">shift</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">int</span> byBits) {
-<a name="l00214"></a>00214 <span class="keywordflow">if</span> (byBits &gt; 0) <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a6799cc3c4d8c963279be64b209bfd3b6" title="Left-shift an integer by a specified number of bits.">shift_left</a>(n, byBits);
-<a name="l00215"></a>00215 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a49a5a4220cb88b7446545e4b65950473" title="Right-shift an integer by a specified number of bits.">shift_right</a>(n, -byBits);
-<a name="l00216"></a>00216 }
-<a name="l00217"></a>00217
-<a name="l00225"></a>00225 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a6799cc3c4d8c963279be64b209bfd3b6" title="Left-shift an integer by a specified number of bits.">shift_left</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> byBits) {
-<a name="l00226"></a>00226 n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00227"></a>00227
-<a name="l00228"></a>00228 <span class="keywordflow">if</span> (byBits==0) <span class="keywordflow">return</span> n;
-<a name="l00229"></a>00229
-<a name="l00230"></a>00230 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> nn(n);
-<a name="l00231"></a>00231 nn.<a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00232"></a>00232 nn.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>()-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a72785130c7c6490af874f450cf6e0086">shift_left</a>(byBits);
-<a name="l00233"></a>00233 <span class="keywordflow">return</span> nn;
-<a name="l00234"></a>00234 }
-<a name="l00235"></a>00235
-<a name="l00243"></a>00243 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a49a5a4220cb88b7446545e4b65950473" title="Right-shift an integer by a specified number of bits.">shift_right</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> byBits) {
-<a name="l00244"></a>00244 n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00245"></a>00245
-<a name="l00246"></a>00246 <span class="keywordflow">if</span> (byBits==0) <span class="keywordflow">return</span> n;
-<a name="l00247"></a>00247
-<a name="l00248"></a>00248 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> nn(n);
-<a name="l00249"></a>00249 nn.<a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00250"></a>00250 nn.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>()-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a432ace7094bca306dcba254f862e2428">shift_right</a>(byBits);
-<a name="l00251"></a>00251 <span class="keywordflow">return</span> nn;
-<a name="l00252"></a>00252 }
-<a name="l00253"></a>00253
-<a name="l00254"></a>00254 } <span class="comment">// namespace detail</span>
+<a name="l00021"></a><a class="code" href="namespaceboost.html">00021</a> <span class="keyword">namespace </span>boost {
+<a name="l00022"></a><a class="code" href="namespaceboost_1_1xint.html">00022</a> <span class="keyword">namespace </span>xint {
+<a name="l00023"></a>00023
+<a name="l00024"></a>00024 <span class="keyword">using namespace </span>detail;
+<a name="l00025"></a>00025
+<a name="l00034"></a>00034 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac00836bdc530b3eaf0a9b9f2e208273b" title="Queries the value of a particular bit in an integer.">getbit</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> bit) {
+<a name="l00035"></a>00035 n.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00036"></a>00036 <span class="keywordtype">size_t</span> index=bit/<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
+<a name="l00037"></a>00037 <span class="keywordflow">if</span> (index &lt; n.<a class="code" href="classboost_1_1xint_1_1integer.html#ad4a65fa154847321803888988d18d244">_get_length</a>()) {
+<a name="l00038"></a>00038 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> mask=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(1) &lt;&lt; (bit % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>));
+<a name="l00039"></a>00039 <span class="keywordflow">return</span> ((n.<a class="code" href="classboost_1_1xint_1_1integer.html#acb5a0571dc9544921e603c00a0c6c93a">_get_digit</a>(index) &amp; mask) != 0);
+<a name="l00040"></a>00040 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00041"></a>00041 }
+<a name="l00042"></a>00042
+<a name="l00050"></a>00050 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a6278915cf51b0d448a9db40031226182" title="Sets a specific bit in an integer to one.">setbit</a>(<a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> bit) {
+<a name="l00051"></a>00051 n.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00052"></a>00052 n.<a class="code" href="classboost_1_1xint_1_1integer.html#a04331a88bb2a975a7349e0c04cb230de">_make_unique</a>();
+<a name="l00053"></a>00053 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *ndata=n.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>();
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 <span class="keywordtype">size_t</span> index=bit/<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
+<a name="l00056"></a>00056 <span class="keywordflow">if</span> (index &gt;= n.<a class="code" href="classboost_1_1xint_1_1integer.html#ad4a65fa154847321803888988d18d244">_get_length</a>()) ndata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3bdd8e8ef7c5b8bc888b96725aac9dfe">realloc</a>(index+1);
+<a name="l00057"></a>00057
+<a name="l00058"></a>00058 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> mask=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(1) &lt;&lt; (bit % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>));
+<a name="l00059"></a>00059 ndata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[index] |= mask;
+<a name="l00060"></a>00060 ndata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">skipLeadingZeros</a>();
+<a name="l00061"></a>00061 }
+<a name="l00062"></a>00062
+<a name="l00070"></a>00070 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a96d452df71ac6799a7041647b4b106df" title="Sets a specific bit in an integer to zero.">clearbit</a>(<a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> bit) {
+<a name="l00071"></a>00071 n.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00072"></a>00072 <span class="keywordtype">size_t</span> index=bit/<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
+<a name="l00073"></a>00073 <span class="keywordflow">if</span> (index &lt; n.<a class="code" href="classboost_1_1xint_1_1integer.html#ad4a65fa154847321803888988d18d244">_get_length</a>()) {
+<a name="l00074"></a>00074 n.<a class="code" href="classboost_1_1xint_1_1integer.html#a04331a88bb2a975a7349e0c04cb230de">_make_unique</a>();
+<a name="l00075"></a>00075 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> mask=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(1) &lt;&lt; (bit % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>));
+<a name="l00076"></a>00076 n.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>()-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[index] &amp;= ~mask;
+<a name="l00077"></a>00077 n.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>()-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">skipLeadingZeros</a>();
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079 }
+<a name="l00080"></a>00080
+<a name="l00090"></a>00090 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#a783e728f8221cd424d6f7f5d5f67ec40" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> valueIfZero) {
+<a name="l00091"></a>00091 <span class="keywordflow">if</span> (n.<a class="code" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12" title="Tests the sign of *this.">sign</a>()==0) <span class="keywordflow">return</span> valueIfZero;
+<a name="l00092"></a>00092
+<a name="l00093"></a>00093 <span class="keyword">const</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *ndata=n.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>();
+<a name="l00094"></a>00094 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *p=ndata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, *pe=p+ndata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>;
+<a name="l00095"></a>00095 <span class="keywordflow">while</span> (p!=pe &amp;&amp; *p==0) ++p;
+<a name="l00096"></a>00096
+<a name="l00097"></a>00097 <span class="keywordtype">size_t</span> index=(p - ndata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>);
+<a name="l00098"></a>00098 <span class="keywordtype">size_t</span> r=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> * index);
+<a name="l00099"></a>00099 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> digit=*p;
+<a name="l00100"></a>00100
+<a name="l00101"></a>00101 <span class="keywordflow">while</span> ((digit &amp; 0x01)==0) {
+<a name="l00102"></a>00102 digit&gt;&gt;=1;
+<a name="l00103"></a>00103 ++r;
+<a name="l00104"></a>00104 }
+<a name="l00105"></a>00105
+<a name="l00106"></a>00106 <span class="keywordflow">return</span> r;
+<a name="l00107"></a>00107 }
+<a name="l00108"></a>00108
+<a name="l00118"></a>00118 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#aec002c076eff13d0382c5d2cd6de1d60" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> valueIfZero) {
+<a name="l00119"></a>00119 <span class="keywordflow">if</span> (n.<a class="code" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12" title="Tests the sign of *this.">sign</a>()==0) <span class="keywordflow">return</span> valueIfZero;
+<a name="l00120"></a>00120 <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="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd" title="Get the log2 value of an integer.">log2</a>(n)-1);
+<a name="l00121"></a>00121 }
+<a name="l00122"></a>00122
+<a name="l00129"></a>00129 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2" title="Combine two integers using a bitwise AND operation.">bitwise_and</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n2) {
+<a name="l00130"></a>00130 n1.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00131"></a>00131 n2.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00132"></a>00132
+<a name="l00133"></a>00133 <span class="keyword">const</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *smaller=n1.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>(), *larger=n2.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>();
+<a name="l00134"></a>00134 <span class="keywordflow">if</span> (smaller-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a> &gt; larger-&gt;mLength) std::swap(smaller, larger);
+<a name="l00135"></a>00135
+<a name="l00136"></a>00136 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> r;
+<a name="l00137"></a>00137 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *rdata=r.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>();
+<a name="l00138"></a>00138 rdata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a05165b7f45dea3e2459739d856d78288">alloc</a>(smaller-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>);
+<a name="l00139"></a>00139
+<a name="l00140"></a>00140 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s1=smaller-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, *s1e=s1+smaller-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>, *s2=larger-&gt;digits;
+<a name="l00141"></a>00141 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t=rdata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>;
+<a name="l00142"></a>00142
+<a name="l00143"></a>00143 <span class="keywordflow">while</span> (s1 &lt; s1e) *t++ = *s1++ &amp; *s2++;
+<a name="l00144"></a>00144
+<a name="l00145"></a>00145 rdata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">skipLeadingZeros</a>();
+<a name="l00146"></a>00146 <span class="keywordflow">return</span> r;
+<a name="l00147"></a>00147 }
+<a name="l00148"></a>00148
+<a name="l00155"></a>00155 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec" title="Combine two integers using a bitwise OR operation.">bitwise_or</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n2) {
+<a name="l00156"></a>00156 n1.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00157"></a>00157 n2.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00158"></a>00158
+<a name="l00159"></a>00159 <span class="keyword">const</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *smaller=n1.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>(), *larger=n2.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>();
+<a name="l00160"></a>00160 <span class="keywordflow">if</span> (smaller-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a> &gt; larger-&gt;mLength) std::swap(smaller, larger);
+<a name="l00161"></a>00161
+<a name="l00162"></a>00162 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> r;
+<a name="l00163"></a>00163 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *rdata=r.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>();
+<a name="l00164"></a>00164 rdata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a05165b7f45dea3e2459739d856d78288">alloc</a>(larger-&gt;mLength);
+<a name="l00165"></a>00165
+<a name="l00166"></a>00166 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s1=smaller-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, *s1e=s1+smaller-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>;
+<a name="l00167"></a>00167 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s2=larger-&gt;digits, *s2e=s2+larger-&gt;mLength;
+<a name="l00168"></a>00168 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t=rdata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>;
+<a name="l00169"></a>00169
+<a name="l00170"></a>00170 <span class="keywordflow">while</span> (s1&lt;s1e) *t++ = *s1++ | *s2++;
+<a name="l00171"></a>00171 <span class="keywordflow">while</span> (s2&lt;s2e) *t++ = *s2++;
+<a name="l00172"></a>00172
+<a name="l00173"></a>00173 rdata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">skipLeadingZeros</a>();
+<a name="l00174"></a>00174 <span class="keywordflow">return</span> r;
+<a name="l00175"></a>00175 }
+<a name="l00176"></a>00176
+<a name="l00184"></a>00184 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1" title="Combine two integers using a bitwise XOR operation.">bitwise_xor</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n1, <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n2) {
+<a name="l00185"></a>00185 n1.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00186"></a>00186 n2.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00187"></a>00187
+<a name="l00188"></a>00188 <span class="keyword">const</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *smaller=n1.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>(), *larger=n2.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>();
+<a name="l00189"></a>00189 <span class="keywordflow">if</span> (smaller-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a> &gt; larger-&gt;mLength) std::swap(smaller, larger);
+<a name="l00190"></a>00190
+<a name="l00191"></a>00191 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> r;
+<a name="l00192"></a>00192 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *rdata=r.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>();
+<a name="l00193"></a>00193 rdata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a05165b7f45dea3e2459739d856d78288">alloc</a>(larger-&gt;mLength);
+<a name="l00194"></a>00194
+<a name="l00195"></a>00195 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s1=smaller-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, *s1e=s1+smaller-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>;
+<a name="l00196"></a>00196 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s2=larger-&gt;digits, *s2e=s2+larger-&gt;mLength;
+<a name="l00197"></a>00197 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t=rdata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>;
+<a name="l00198"></a>00198
+<a name="l00199"></a>00199 <span class="keywordflow">while</span> (s1&lt;s1e) *t++ = *s1++ ^ *s2++;
+<a name="l00200"></a>00200 <span class="keywordflow">while</span> (s2&lt;s2e) *t++ = *s2++;
+<a name="l00201"></a>00201
+<a name="l00202"></a>00202 rdata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">skipLeadingZeros</a>();
+<a name="l00203"></a>00203 <span class="keywordflow">return</span> r;
+<a name="l00204"></a>00204 }
+<a name="l00205"></a>00205
+<a name="l00214"></a>00214 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">int</span> byBits) {
+<a name="l00215"></a>00215 <span class="keywordflow">if</span> (byBits &gt; 0) <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(n, byBits);
+<a name="l00216"></a>00216 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(n, -byBits);
+<a name="l00217"></a>00217 }
+<a name="l00218"></a>00218
+<a name="l00226"></a>00226 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> byBits) {
+<a name="l00227"></a>00227 n.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00228"></a>00228
+<a name="l00229"></a>00229 <span class="keywordflow">if</span> (byBits==0) <span class="keywordflow">return</span> n;
+<a name="l00230"></a>00230
+<a name="l00231"></a>00231 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> nn(n);
+<a name="l00232"></a>00232 nn.<a class="code" href="classboost_1_1xint_1_1integer.html#a04331a88bb2a975a7349e0c04cb230de">_make_unique</a>();
+<a name="l00233"></a>00233 nn.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>()-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aaa43f067c7f1a7772276cf9a57ab653c">shift_left</a>(byBits);
+<a name="l00234"></a>00234 <span class="keywordflow">return</span> nn;
+<a name="l00235"></a>00235 }
+<a name="l00236"></a>00236
+<a name="l00244"></a>00244 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> byBits) {
+<a name="l00245"></a>00245 n.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00246"></a>00246
+<a name="l00247"></a>00247 <span class="keywordflow">if</span> (byBits==0) <span class="keywordflow">return</span> n;
+<a name="l00248"></a>00248
+<a name="l00249"></a>00249 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> nn(n);
+<a name="l00250"></a>00250 nn.<a class="code" href="classboost_1_1xint_1_1integer.html#a04331a88bb2a975a7349e0c04cb230de">_make_unique</a>();
+<a name="l00251"></a>00251 nn.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>()-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ad28012e618ecab56b69ceac7585d1741">shift_right</a>(byBits);
+<a name="l00252"></a>00252 <span class="keywordflow">return</span> nn;
+<a name="l00253"></a>00253 }
+<a name="l00254"></a>00254
+<a name="l00255"></a>00255 } <span class="comment">// namespace xint</span>
+<a name="l00256"></a>00256 } <span class="comment">// namespace boost</span>
 </pre></div></div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:07 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/classes.html
==============================================================================
--- sandbox/xint/doc/classes.html (original)
+++ sandbox/xint/doc/classes.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -30,18 +30,18 @@
 <h1>Class Index</h1><div class="qindex"><a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_N">N</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_O">O</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_Q">Q</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_R">R</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_T">T</a></div>
 <table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
 <tr><td><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;B&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="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__modulus.html">invalid_modulus</a> (<a class="el" href="namespacexint.html">xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classxint_1_1overflow__error.html">overflow_error</a> (<a class="el" href="namespacexint.html">xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</div></td></tr></table>
-</td></tr><tr><td><a class="el" href="structxint_1_1detail_1_1base__random__generator.html">base_random_generator</a> (<a class="el" href="namespacexint_1_1detail.html">xint::detail</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classboost_1_1xint_1_1divide__by__zero.html">divide_by_zero</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1xint_1_1invalid__modulus.html">invalid_modulus</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1xint_1_1overflow__error.html">overflow_error</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html">base_random_generator</a> (<a class="el" href="namespaceboost_1_1xint_1_1detail.html">boost::xint::detail</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
 </td><td><a 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 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="classxint_1_1strong__random__generator.html">strong_random_generator</a> (<a class="el" href="namespacexint.html">xint</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="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_1no__strong__random.html">no_strong_random</a> (<a class="el" href="namespacexint.html">xint</a>)&nbsp;&nbsp;&nbsp;</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 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="classxint_1_1cannot__represent.html">cannot_represent</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 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_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;R&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 name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;D&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classxint_1_1invalid__digit.html">invalid_digit</a> (<a class="el" href="namespacexint.html">xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_O"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;O&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="structxint_1_1detail_1_1random__generator.html">random_generator</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><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></tr></table><div class="qindex"><a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_N">N</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_O">O</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_Q">Q</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_R">R</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qin
dex" href="#letter_T">T</a></div>
+</td><td><a class="el" href="classboost_1_1xint_1_1strong__random__generator.html">strong_random_generator</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classboost_1_1xint_1_1integer.html">integer</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1xint_1_1no__strong__random.html">no_strong_random</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html">data_t::QuickDigits</a> (<a class="el" href="namespaceboost_1_1xint_1_1detail.html">boost::xint::detail</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;T&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="classboost_1_1xint_1_1cannot__represent.html">cannot_represent</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1xint_1_1invalid__base.html">invalid_base</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1xint_1_1not__a__number.html">not_a_number</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;R&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="structboost_1_1xint_1_1detail_1_1token.html">token</a> (<a class="el" href="namespaceboost_1_1xint_1_1detail.html">boost::xint::detail</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;D&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classboost_1_1xint_1_1invalid__digit.html">invalid_digit</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_O"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;O&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html">random_generator</a> (<a class="el" href="namespaceboost_1_1xint_1_1detail.html">boost::xint::detail</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1xint_1_1too__big.html">too_big</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html">data_t</a> (<a class="el" href="namespaceboost_1_1xint_1_1detail.html">boost::xint::detail</a>)&nbsp;&nbsp;&nbsp;</td></tr></table><div class="qindex"><a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_N">N</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_O">O</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_Q">Q</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_R">R</a>&nbs
p;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_T">T</a></div>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/compare_8cpp.html
==============================================================================
--- sandbox/xint/doc/compare_8cpp.html (original)
+++ sandbox/xint/doc/compare_8cpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -35,7 +35,8 @@
 <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>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All of the functions in the XInt library are within this namespace. </p>
 <br/></td></tr>
@@ -44,25 +45,25 @@
 <tr><td colspan="2"><div class="groupHeader">Miscellaneous functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp458f92801f3edfaf2e30b1f530c324e2"></a> </p>
 <br/><br/></div></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="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> objects. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b">boost::xint::compare</a> (const integer &amp;b1, const integer &amp;b2, bool ignoresign)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> objects. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Operators</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpb3c5827f54218753bb2c3338236446c2"></a> These act exactly the same as for the built-in integer types. </p>
 <br/><br/></div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a675c4fe6ddda6db915450d054ed640ba">xint::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="namespacexint.html#ad32051708c2a2baafa0340e19e90217b">xint::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="namespacexint.html#aefda934d0ffacd0f44fcbbdfee19a139">xint::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="namespacexint.html#a4f4a4771bf443e6724abbd18173ecc86">xint::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="namespacexint.html#a1229d1f1efbdf3ffeac8b2964ca66093">xint::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="namespacexint.html#ab9d5f34c4d4bed1c86380d4f72edcd9b">xint::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="namespacexint.html#a766324a6f216f3b49a3e9aa885e9531c">xint::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="namespaceboost_1_1xint.html#ac2d1ae62e7e6d741531d6e232b851935">boost::xint::operator!</a> (const xint::integer &amp;num1)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ae95207d18c8f5159d57807726676f6d6">boost::xint::operator==</a> (const xint::integer &amp;num1, const xint::integer &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#abf694043a7a1d64f35e90a275208ff2a">boost::xint::operator!=</a> (const xint::integer &amp;num1, const xint::integer &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0497944d7fa977eca5e5f6a140db07c3">boost::xint::operator&lt;</a> (const xint::integer &amp;num1, const xint::integer &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aa378abd0c3687df031cd2fc314a27940">boost::xint::operator&gt;</a> (const xint::integer &amp;num1, const xint::integer &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0af77b5d4ce9b3b997794b28ae0d4a8b">boost::xint::operator&lt;=</a> (const xint::integer &amp;num1, const xint::integer &amp;num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7666d6d0603654e5c43a807e8907177c">boost::xint::operator&gt;=</a> (const xint::integer &amp;num1, const xint::integer &amp;num2)</td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Contains the the compare function and comparison operators. </p>
 
 <p>Definition in file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/compare_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/compare_8cpp_source.html (original)
+++ sandbox/xint/doc/compare_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -40,51 +40,53 @@
 <a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
 <a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../boost/xint/xint_data_t.hpp&quot;</span>
 <a name="l00020"></a>00020
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>xint {
-<a name="l00022"></a>00022
-<a name="l00035"></a>00035 <span class="keywordtype">int</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06" title="Compare two integer objects.">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="l00036"></a>00036 b1._throw_if_nan();
-<a name="l00037"></a>00037 b2._throw_if_nan();
-<a name="l00038"></a>00038
-<a name="l00039"></a>00039 <span class="keywordflow">if</span> (!ignoresign) {
-<a name="l00040"></a>00040 <span class="keywordtype">int</span> sign1=b1.sign(), sign2=b2.sign();
-<a name="l00041"></a>00041 <span class="keywordflow">if</span> (sign1==0 &amp;&amp; sign2==0) <span class="keywordflow">return</span> 0;
-<a name="l00042"></a>00042 <span class="keywordflow">if</span> (sign1==0) <span class="keywordflow">return</span> -sign2;
-<a name="l00043"></a>00043 <span class="keywordflow">if</span> (sign2==0) <span class="keywordflow">return</span> sign1;
-<a name="l00044"></a>00044
-<a name="l00045"></a>00045 <span class="keywordflow">if</span> (sign1 != sign2) <span class="keywordflow">return</span> sign1;
-<a name="l00046"></a>00046 <span class="keywordflow">if</span> (sign1 &lt; 0) <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06" title="Compare two integer objects.">compare</a>(-b2, -b1, ignoresign);
-<a name="l00047"></a>00047 }
-<a name="l00048"></a>00048
-<a name="l00049"></a>00049 <span class="keyword">const</span> detail::data_t *b1data=b1._get_data();
-<a name="l00050"></a>00050 <span class="keyword">const</span> detail::data_t *b2data=b2._get_data();
-<a name="l00051"></a>00051
-<a name="l00052"></a>00052 <span class="keywordtype">int</span> answer=0;
-<a name="l00053"></a>00053 <span class="keywordflow">if</span> (b1data-&gt;mLength != b2data-&gt;mLength) {
-<a name="l00054"></a>00054 answer=((b1data-&gt;mLength &lt; b2data-&gt;mLength) ? -1 : 1);
-<a name="l00055"></a>00055 } <span class="keywordflow">else</span> {
-<a name="l00056"></a>00056 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = <span class="keywordtype">int</span>(b1data-&gt;mLength) - 1; x &gt;= 0; --x) {
-<a name="l00057"></a>00057 <span class="keywordflow">if</span> (b1data-&gt;digits[x] != b2data-&gt;digits[x]) {
-<a name="l00058"></a>00058 answer=((b1data-&gt;digits[x] &lt; b2data-&gt;digits[x]) ? -1 : 1);
-<a name="l00059"></a>00059 <span class="keywordflow">break</span>;
-<a name="l00060"></a>00060 }
-<a name="l00061"></a>00061 }
-<a name="l00062"></a>00062 }
-<a name="l00063"></a>00063
-<a name="l00064"></a>00064 <span class="keywordflow">return</span> answer;
-<a name="l00065"></a>00065 }
-<a name="l00066"></a>00066
-<a name="l00067"></a>00067 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a675c4fe6ddda6db915450d054ed640ba">operator!</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a> &amp;num1) { <span class="keywordflow">return</span> num1.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">sign</a>()==0; }
-<a name="l00068"></a>00068 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ad32051708c2a2baafa0340e19e90217b">operator==</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a> &amp;num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a> &amp;num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06" title="Compare two integer objects.">xint::compare</a>(num1, num2)==0; }
-<a name="l00069"></a>00069 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#aefda934d0ffacd0f44fcbbdfee19a139">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06" title="Compare two integer objects.">xint::compare</a>(num1, num2)!=0; }
-<a name="l00070"></a>00070 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a4f4a4771bf443e6724abbd18173ecc86">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06" title="Compare two integer objects.">xint::compare</a>(num1, num2)&lt;0; }
-<a name="l00071"></a>00071 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a1229d1f1efbdf3ffeac8b2964ca66093">operator&gt;</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06" title="Compare two integer objects.">xint::compare</a>(num1, num2)&gt;0; }
-<a name="l00072"></a>00072 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ab9d5f34c4d4bed1c86380d4f72edcd9b">operator&lt;=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06" title="Compare two integer objects.">xint::compare</a>(num1, num2)&lt;=0; }
-<a name="l00073"></a>00073 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a766324a6f216f3b49a3e9aa885e9531c">operator&gt;=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06" title="Compare two integer objects.">xint::compare</a>(num1, num2)&gt;=0; }
-<a name="l00074"></a>00074
-<a name="l00075"></a>00075 } <span class="comment">// namespace xint</span>
+<a name="l00021"></a>00021 <span class="keyword">namespace </span>boost {
+<a name="l00022"></a>00022 <span class="keyword">namespace </span>xint {
+<a name="l00023"></a>00023
+<a name="l00036"></a>00036 <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">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="l00037"></a>00037 b1._throw_if_nan();
+<a name="l00038"></a>00038 b2._throw_if_nan();
+<a name="l00039"></a>00039
+<a name="l00040"></a>00040 <span class="keywordflow">if</span> (!ignoresign) {
+<a name="l00041"></a>00041 <span class="keywordtype">int</span> sign1=b1.sign(), sign2=b2.sign();
+<a name="l00042"></a>00042 <span class="keywordflow">if</span> (sign1==0 &amp;&amp; sign2==0) <span class="keywordflow">return</span> 0;
+<a name="l00043"></a>00043 <span class="keywordflow">if</span> (sign1==0) <span class="keywordflow">return</span> -sign2;
+<a name="l00044"></a>00044 <span class="keywordflow">if</span> (sign2==0) <span class="keywordflow">return</span> sign1;
+<a name="l00045"></a>00045
+<a name="l00046"></a>00046 <span class="keywordflow">if</span> (sign1 != sign2) <span class="keywordflow">return</span> sign1;
+<a name="l00047"></a>00047 <span class="keywordflow">if</span> (sign1 &lt; 0) <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">compare</a>(-b2, -b1, ignoresign);
+<a name="l00048"></a>00048 }
+<a name="l00049"></a>00049
+<a name="l00050"></a>00050 <span class="keyword">const</span> detail::data_t *b1data=b1._get_data();
+<a name="l00051"></a>00051 <span class="keyword">const</span> detail::data_t *b2data=b2._get_data();
+<a name="l00052"></a>00052
+<a name="l00053"></a>00053 <span class="keywordtype">int</span> answer=0;
+<a name="l00054"></a>00054 <span class="keywordflow">if</span> (b1data-&gt;mLength != b2data-&gt;mLength) {
+<a name="l00055"></a>00055 answer=((b1data-&gt;mLength &lt; b2data-&gt;mLength) ? -1 : 1);
+<a name="l00056"></a>00056 } <span class="keywordflow">else</span> {
+<a name="l00057"></a>00057 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = <span class="keywordtype">int</span>(b1data-&gt;mLength) - 1; x &gt;= 0; --x) {
+<a name="l00058"></a>00058 <span class="keywordflow">if</span> (b1data-&gt;digits[x] != b2data-&gt;digits[x]) {
+<a name="l00059"></a>00059 answer=((b1data-&gt;digits[x] &lt; b2data-&gt;digits[x]) ? -1 : 1);
+<a name="l00060"></a>00060 <span class="keywordflow">break</span>;
+<a name="l00061"></a>00061 }
+<a name="l00062"></a>00062 }
+<a name="l00063"></a>00063 }
+<a name="l00064"></a>00064
+<a name="l00065"></a>00065 <span class="keywordflow">return</span> answer;
+<a name="l00066"></a>00066 }
+<a name="l00067"></a>00067
+<a name="l00068"></a>00068 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac2d1ae62e7e6d741531d6e232b851935">operator!</a>(<span class="keyword">const</span> xint::integer &amp;num1) { <span class="keywordflow">return</span> num1.sign()==0; }
+<a name="l00069"></a>00069 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ae95207d18c8f5159d57807726676f6d6">operator==</a>(<span class="keyword">const</span> xint::integer &amp;num1, <span class="keyword">const</span> xint::integer &amp;num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">xint::compare</a>(num1, num2)==0; }
+<a name="l00070"></a>00070 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#abf694043a7a1d64f35e90a275208ff2a">operator!=</a>(<span class="keyword">const</span> xint::integer&amp; num1, <span class="keyword">const</span> xint::integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">xint::compare</a>(num1, num2)!=0; }
+<a name="l00071"></a>00071 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a0497944d7fa977eca5e5f6a140db07c3">operator&lt;</a>(<span class="keyword">const</span> xint::integer&amp; num1, <span class="keyword">const</span> xint::integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">xint::compare</a>(num1, num2)&lt;0; }
+<a name="l00072"></a>00072 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#aa378abd0c3687df031cd2fc314a27940">operator&gt;</a>(<span class="keyword">const</span> xint::integer&amp; num1, <span class="keyword">const</span> xint::integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">xint::compare</a>(num1, num2)&gt;0; }
+<a name="l00073"></a>00073 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a0af77b5d4ce9b3b997794b28ae0d4a8b">operator&lt;=</a>(<span class="keyword">const</span> xint::integer&amp; num1, <span class="keyword">const</span> xint::integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">xint::compare</a>(num1, num2)&lt;=0; }
+<a name="l00074"></a>00074 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a7666d6d0603654e5c43a807e8907177c">operator&gt;=</a>(<span class="keyword">const</span> xint::integer&amp; num1, <span class="keyword">const</span> xint::integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">xint::compare</a>(num1, num2)&gt;=0; }
+<a name="l00075"></a>00075
+<a name="l00076"></a>00076 } <span class="comment">// namespace xint</span>
+<a name="l00077"></a>00077 } <span class="comment">// namespace boost</span>
 </pre></div></div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:07 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/convert_8cpp.html
==============================================================================
--- sandbox/xint/doc/convert_8cpp.html (original)
+++ sandbox/xint/doc/convert_8cpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -38,7 +38,8 @@
 <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>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All of the functions in the XInt library are within this namespace. </p>
 <br/></td></tr>
@@ -47,23 +48,23 @@
 <tr><td colspan="2"><div class="groupHeader">Conversion functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp9c2e8a06d85d2c9b83b5a0d27e85d535"></a> </p>
 <br/><br/></div></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#a016c9573ff48411847edf86c406946a0">xint::to_string</a> (const integer &amp;n, size_t base, bool uppercase)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a string representation of the specified <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Converts a string into an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Converts a binary representation of a number into an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a binary representation of an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>, lowest byte first. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac0454fdc47e70a493c7bf5d92dda33d4">boost::xint::to_string</a> (const integer &amp;n, size_t base, bool uppercase)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a string representation of the specified <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#af263105e57d48eff5fe14d4d03ca10e1">boost::xint::from_string</a> (const std::string &amp;str, size_t base)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts a string into an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a58aa7dc532f0d8a1557c9ec8f512602e">boost::xint::from_binary</a> (const std::string &amp;str)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts a binary representation of a number into an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a19124d8eeee95cc7ff1e348c36250eea">boost::xint::to_binary</a> (const integer &amp;n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a binary representation of an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>, lowest byte first. <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Contains the conversion functions. </p>
-<p>Note that the <a class="el" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5" title="Efficiently converts from an xint::integer to a built-in integer type.">xint::to&lt;T&gt;</a> function is not here, because it's a template function and must be defined in a header file.</p>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>the <a class="el" href="namespacexint.html#a016c9573ff48411847edf86c406946a0" title="Creates a string representation of the specified integer.">xint::to_string</a> function could be made more efficient by using only doubledigit_t-sized pieces of the integer at a time, and dividing the whole thing by the total of the divisions done to get the digits. Same with the <a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0" title="Converts a string into an integer.">xint::from_string</a> function. </dd></dl>
+<p>Note that the xint::to&lt;T&gt; function is not here, because it's a template function and must be defined in a header file.</p>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>the xint::to_string function could be made more efficient by using only doubledigit_t-sized pieces of the integer at a time, and dividing the whole thing by the total of the divisions done to get the digits. Same with the xint::from_string function. </dd></dl>
 
 <p>Definition in file <a class="el" href="convert_8cpp_source.html">convert.cpp</a>.</p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/convert_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/convert_8cpp_source.html (original)
+++ sandbox/xint/doc/convert_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -44,173 +44,175 @@
 <a name="l00030"></a>00030 <span class="preprocessor">#include &lt;algorithm&gt;</span>
 <a name="l00031"></a>00031 <span class="preprocessor">#include &lt;sstream&gt;</span>
 <a name="l00032"></a>00032
-<a name="l00033"></a>00033 <span class="keyword">namespace </span>xint {
-<a name="l00034"></a>00034
-<a name="l00035"></a>00035 <span class="keyword">using namespace </span>detail;
-<a name="l00036"></a>00036
-<a name="l00037"></a>00037 <span class="keyword">namespace </span>{
-<a name="l00038"></a>00038
-<a name="l00039"></a>00039 <span class="keywordtype">char</span> nToChar(<span class="keywordtype">int</span> n, <span class="keywordtype">bool</span> upperCase) {
-<a name="l00040"></a>00040 <span class="keywordflow">if</span> (n &lt; 10) <span class="keywordflow">return</span> char(n+<span class="charliteral">&apos;0&apos;</span>);
-<a name="l00041"></a>00041 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (upperCase) <span class="keywordflow">return</span> char((n - 10) + <span class="charliteral">&apos;A&apos;</span>);
-<a name="l00042"></a>00042 <span class="keywordflow">else</span> <span class="keywordflow">return</span> char((n - 10) + <span class="charliteral">&apos;a&apos;</span>);
-<a name="l00043"></a>00043 }
-<a name="l00044"></a>00044
-<a name="l00045"></a>00045 } <span class="comment">// namespace</span>
-<a name="l00046"></a>00046
-<a name="l00068"></a>00068 std::string <a class="code" href="namespacexint.html#a016c9573ff48411847edf86c406946a0" title="Creates a string representation of the specified integer.">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="l00069"></a>00069 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> <a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce" title="Holds the text representation of the Not-a-Number value.">detail::nan_text</a>;
-<a name="l00070"></a>00070 <span class="keywordflow">if</span> (base&lt;2 || base&gt;36) {
-<a name="l00071"></a>00071 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_base();
-<a name="l00072"></a>00072 <span class="keywordflow">else</span> <span class="keywordflow">return</span> std::string();
-<a name="l00073"></a>00073 }
-<a name="l00074"></a>00074
-<a name="l00075"></a>00075 <span class="keywordflow">if</span> (n.sign()==0) <span class="keywordflow">return</span> <span class="stringliteral">&quot;0&quot;</span>;
-<a name="l00076"></a>00076
-<a name="l00077"></a>00077 std::ostringstream out;
-<a name="l00078"></a>00078 <span class="keywordflow">if</span> (base==16) {
-<a name="l00079"></a>00079 <span class="comment">// Special no-division version, primarily for debugging division</span>
-<a name="l00080"></a>00080 <span class="keyword">const</span> data_t *ndata=n._get_data();
-<a name="l00081"></a>00081 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *firstDigit=ndata-&gt;digits,
-<a name="l00082"></a>00082 *lastDigit=firstDigit + ndata-&gt;mLength - 1;
-<a name="l00083"></a>00083
-<a name="l00084"></a>00084 <span class="keyword">const</span> <span class="keywordtype">int</span> bitsPerDigit=4;
-<a name="l00085"></a>00085 <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="l00086"></a>00086
-<a name="l00087"></a>00087 <span class="comment">// Suppress any leading zeros</span>
-<a name="l00088"></a>00088 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d=lastDigit;
-<a name="l00089"></a>00089 <span class="keywordtype">int</span> digitShift=(<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bitsPerDigit);
-<a name="l00090"></a>00090 <span class="keywordflow">while</span> (digitShift &gt;= 0 &amp;&amp; ((*d &gt;&gt; digitShift) &amp; mask) == 0)
-<a name="l00091"></a>00091 digitShift -= bitsPerDigit;
-<a name="l00092"></a>00092
-<a name="l00093"></a>00093 <span class="keywordflow">do</span> {
-<a name="l00094"></a>00094 <span class="keywordflow">while</span> (digitShift &gt;= 0) {
-<a name="l00095"></a>00095 out &lt;&lt; nToChar((*d &gt;&gt; digitShift) &amp; mask, uppercase);
-<a name="l00096"></a>00096 digitShift -= bitsPerDigit;
-<a name="l00097"></a>00097 }
-<a name="l00098"></a>00098
-<a name="l00099"></a>00099 digitShift=(<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bitsPerDigit);
-<a name="l00100"></a>00100 } <span class="keywordflow">while</span> (d-- != firstDigit);
-<a name="l00101"></a>00101
-<a name="l00102"></a>00102 std::string r(n.sign() &lt; 0 ? std::string(<span class="stringliteral">&quot;-&quot;</span>)+out.str() : out.str());
-<a name="l00103"></a>00103 <span class="keywordflow">return</span> r;
-<a name="l00104"></a>00104 } <span class="keywordflow">else</span> {
-<a name="l00105"></a>00105 <span class="keyword">const</span> integer <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce" title="Bit-shift an integer, in either direction.">shift</a>=base;
-<a name="l00106"></a>00106 std::pair&lt;integer, integer&gt; a=std::make_pair(n, <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>());
-<a name="l00107"></a>00107 a.first._set_negative(<span class="keyword">false</span>);
-<a name="l00108"></a>00108
-<a name="l00109"></a>00109 integer r;
-<a name="l00110"></a>00110 <span class="keywordflow">while</span> (a.first.sign()!=0) {
-<a name="l00111"></a>00111 a=<a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d" title="Calculate how many dividends would fit into divisor, with the remainder.">divide_r</a>(a.first, shift);
-<a name="l00112"></a>00112 out &lt;&lt; nToChar(a.second._get_digit(0), uppercase);
-<a name="l00113"></a>00113 }
-<a name="l00114"></a>00114
-<a name="l00115"></a>00115 <span class="keywordflow">if</span> (n.sign() &lt; 0) out &lt;&lt; <span class="charliteral">&apos;-&apos;</span>;
-<a name="l00116"></a>00116
-<a name="l00117"></a>00117 std::string rval=out.str();
-<a name="l00118"></a>00118 std::reverse(rval.begin(), rval.end());
-<a name="l00119"></a>00119 <span class="keywordflow">return</span> rval;
-<a name="l00120"></a>00120 }
-<a name="l00121"></a>00121 }
-<a name="l00122"></a>00122
-<a name="l00149"></a>00149 integer <a class="code" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0" title="Converts a string into an integer.">from_string</a>(<span class="keyword">const</span> std::string&amp; str, <span class="keywordtype">size_t</span> base) {
-<a name="l00150"></a>00150 <span class="keywordflow">if</span> (str==<a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce" title="Holds the text representation of the Not-a-Number value.">detail::nan_text</a>) <span class="keywordflow">return</span> integer(not_a_number());
-<a name="l00151"></a>00151
-<a name="l00152"></a>00152 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ab393826381b1abd9f1aca1cdb45f41f6" title="Return the additive inverse of an integer.">negate</a>=<span class="keyword">false</span>;
-<a name="l00153"></a>00153 <span class="keyword">const</span> <span class="keywordtype">char</span> *c=str.c_str();
-<a name="l00154"></a>00154 <span class="keywordflow">if</span> (*c==<span class="charliteral">&apos;+&apos;</span>) ++c;
-<a name="l00155"></a>00155 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c==<span class="charliteral">&apos;-&apos;</span>) { negate=<span class="keyword">true</span>; ++c; }
-<a name="l00156"></a>00156
-<a name="l00157"></a>00157 <span class="keywordflow">if</span> (base==<a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a>) {
-<a name="l00158"></a>00158 <span class="keywordflow">if</span> (*c==<span class="charliteral">&apos;0&apos;</span>) {
-<a name="l00159"></a>00159 ++c;
-<a name="l00160"></a>00160 <span class="keywordflow">if</span> (*c==<span class="charliteral">&apos;x&apos;</span> || *c==<span class="charliteral">&apos;X&apos;</span>) {
-<a name="l00161"></a>00161 ++c;
-<a name="l00162"></a>00162 base=16;
-<a name="l00163"></a>00163 } <span class="keywordflow">else</span> base=8;
-<a name="l00164"></a>00164 } <span class="keywordflow">else</span> base=10;
-<a name="l00165"></a>00165 }
-<a name="l00166"></a>00166
-<a name="l00167"></a>00167 <span class="keywordflow">if</span> (base&lt;2 || base&gt;36) {
-<a name="l00168"></a>00168 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_base();
-<a name="l00169"></a>00169 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
-<a name="l00170"></a>00170 }
-<a name="l00171"></a>00171
-<a name="l00172"></a>00172 <span class="keywordflow">if</span> (*c==0) {
-<a name="l00173"></a>00173 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_digit(<span class="stringliteral">&quot;No valid digits&quot;</span>);
-<a name="l00174"></a>00174 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
-<a name="l00175"></a>00175 }
-<a name="l00176"></a>00176
-<a name="l00177"></a>00177 <span class="keyword">const</span> integer <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce" title="Bit-shift an integer, in either direction.">shift</a>(base);
-<a name="l00178"></a>00178
-<a name="l00179"></a>00179 integer r;
-<a name="l00180"></a>00180 <span class="keywordflow">while</span> (*c) {
-<a name="l00181"></a>00181 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> digit;
-<a name="l00182"></a>00182 <span class="keywordflow">if</span> (*c&gt;=<span class="charliteral">&apos;0&apos;</span> &amp;&amp; *c&lt;=<span class="charliteral">&apos;9&apos;</span>) digit=*c-<span class="charliteral">&apos;0&apos;</span>;
-<a name="l00183"></a>00183 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c&gt;=<span class="charliteral">&apos;A&apos;</span> &amp;&amp; *c&lt;=<span class="charliteral">&apos;Z&apos;</span>) digit=*c-<span class="charliteral">&apos;A&apos;</span>+10;
-<a name="l00184"></a>00184 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c&gt;=<span class="charliteral">&apos;a&apos;</span> &amp;&amp; *c&lt;=<span class="charliteral">&apos;z&apos;</span>) digit=*c-<span class="charliteral">&apos;a&apos;</span>+10;
-<a name="l00185"></a>00185 <span class="keywordflow">else</span> {
-<a name="l00186"></a>00186 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_digit(<span class="stringliteral">&quot;encountered non-alphanumeric character in string&quot;</span>);
-<a name="l00187"></a>00187 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
-<a name="l00188"></a>00188 }
-<a name="l00189"></a>00189
-<a name="l00190"></a>00190 <span class="keywordflow">if</span> (digit &gt;= base) {
-<a name="l00191"></a>00191 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_digit(<span class="stringliteral">&quot;encountered digit greater than base allows&quot;</span>);
-<a name="l00192"></a>00192 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
-<a name="l00193"></a>00193 }
-<a name="l00194"></a>00194
-<a name="l00195"></a>00195 r = (r * shift) + digit;
-<a name="l00196"></a>00196 ++c;
-<a name="l00197"></a>00197 }
-<a name="l00198"></a>00198 r._set_negative(negate);
-<a name="l00199"></a>00199 <span class="keywordflow">return</span> r;
-<a name="l00200"></a>00200 }
-<a name="l00201"></a>00201
-<a name="l00211"></a>00211 integer <a class="code" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a" title="Converts a binary representation of a number into an integer.">from_binary</a>(<span class="keyword">const</span> std::string&amp; str) {
-<a name="l00212"></a>00212 <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="l00213"></a>00213 <span class="keyword">const</span> <span class="keywordtype">size_t</span> bitsPerByte=std::numeric_limits&lt;unsigned char&gt;::digits;
-<a name="l00214"></a>00214
-<a name="l00215"></a>00215 integer r;
-<a name="l00216"></a>00216 detail::data_t *rdata=r.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
-<a name="l00217"></a>00217 rdata-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a>((str.length() + bytesPerDigit - 1)/bytesPerDigit);
-<a name="l00218"></a>00218 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *p=rdata-&gt;digits;
-<a name="l00219"></a>00219
-<a name="l00220"></a>00220 <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="l00221"></a>00221 <span class="keywordflow">while</span> (s&lt;se) {
-<a name="l00222"></a>00222 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d=0;
-<a name="l00223"></a>00223 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i&lt;bytesPerDigit &amp;&amp; s&lt;se; ++i)
-<a name="l00224"></a>00224 d |= (<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(*s++) &lt;&lt; (i * bitsPerByte));
-<a name="l00225"></a>00225 *p++=d;
-<a name="l00226"></a>00226 }
-<a name="l00227"></a>00227 rdata-&gt;skipLeadingZeros();
-<a name="l00228"></a>00228 <span class="keywordflow">return</span> r;
-<a name="l00229"></a>00229 }
-<a name="l00230"></a>00230
-<a name="l00247"></a>00247 std::string <a class="code" href="namespacexint.html#ab8f33201a251e3e118dc82f214e22aeb" title="Creates a binary representation of an integer, lowest byte first.">to_binary</a>(<span class="keyword">const</span> integer&amp; n) {
-<a name="l00248"></a>00248 n._throw_if_nan();
-<a name="l00249"></a>00249
-<a name="l00250"></a>00250 <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="l00251"></a>00251 <span class="keyword">const</span> <span class="keywordtype">size_t</span> bitsPerByte=std::numeric_limits&lt;unsigned char&gt;::digits;
-<a name="l00252"></a>00252 std::vector&lt;unsigned char&gt; temp;
-<a name="l00253"></a>00253 temp.reserve(n._get_length() * bytesPerDigit);
-<a name="l00254"></a>00254
-<a name="l00255"></a>00255 <span class="keyword">const</span> detail::data_t *ndata=n._get_data();
-<a name="l00256"></a>00256 <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="l00257"></a>00257 <span class="keywordflow">while</span> (p != pe) {
-<a name="l00258"></a>00258 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d(*p++);
-<a name="l00259"></a>00259 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i&lt;bytesPerDigit; ++i) {
-<a name="l00260"></a>00260 temp.push_back((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(d));
-<a name="l00261"></a>00261 d &gt;&gt;= bitsPerByte;
-<a name="l00262"></a>00262 }
-<a name="l00263"></a>00263 }
-<a name="l00264"></a>00264 <span class="keywordflow">while</span> (!temp.empty() &amp;&amp; temp.back()==0) temp.pop_back();
-<a name="l00265"></a>00265 <span class="keywordtype">char</span> *c=(<span class="keywordtype">char</span>*)&amp;temp[0];
-<a name="l00266"></a>00266 <span class="keywordflow">return</span> std::string(c, c+temp.size());
-<a name="l00267"></a>00267 }
-<a name="l00268"></a>00268
-<a name="l00269"></a>00269 } <span class="comment">// namespace xint</span>
+<a name="l00033"></a>00033 <span class="keyword">namespace </span>boost {
+<a name="l00034"></a>00034 <span class="keyword">namespace </span>xint {
+<a name="l00035"></a>00035
+<a name="l00036"></a>00036 <span class="keyword">using namespace </span>detail;
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038 <span class="keyword">namespace </span>{
+<a name="l00039"></a>00039
+<a name="l00040"></a>00040 <span class="keywordtype">char</span> nToChar(<span class="keywordtype">int</span> n, <span class="keywordtype">bool</span> upperCase) {
+<a name="l00041"></a>00041 <span class="keywordflow">if</span> (n &lt; 10) <span class="keywordflow">return</span> char(n+<span class="charliteral">&apos;0&apos;</span>);
+<a name="l00042"></a>00042 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (upperCase) <span class="keywordflow">return</span> char((n - 10) + <span class="charliteral">&apos;A&apos;</span>);
+<a name="l00043"></a>00043 <span class="keywordflow">else</span> <span class="keywordflow">return</span> char((n - 10) + <span class="charliteral">&apos;a&apos;</span>);
+<a name="l00044"></a>00044 }
+<a name="l00045"></a>00045
+<a name="l00046"></a>00046 } <span class="comment">// namespace</span>
+<a name="l00047"></a>00047
+<a name="l00069"></a>00069 std::string <a class="code" href="namespaceboost_1_1xint.html#ac0454fdc47e70a493c7bf5d92dda33d4" title="Creates a string representation of the specified integer.">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="l00070"></a>00070 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#ab0df946a2c10228501ef82bf823d0978" title="Holds the text representation of the Not-a-Number value.">detail::nan_text</a>;
+<a name="l00071"></a>00071 <span class="keywordflow">if</span> (base&lt;2 || base&gt;36) {
+<a name="l00072"></a>00072 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_base();
+<a name="l00073"></a>00073 <span class="keywordflow">else</span> <span class="keywordflow">return</span> std::string();
+<a name="l00074"></a>00074 }
+<a name="l00075"></a>00075
+<a name="l00076"></a>00076 <span class="keywordflow">if</span> (n.sign()==0) <span class="keywordflow">return</span> <span class="stringliteral">&quot;0&quot;</span>;
+<a name="l00077"></a>00077
+<a name="l00078"></a>00078 std::ostringstream out;
+<a name="l00079"></a>00079 <span class="keywordflow">if</span> (base==16) {
+<a name="l00080"></a>00080 <span class="comment">// Special no-division version, primarily for debugging division</span>
+<a name="l00081"></a>00081 <span class="keyword">const</span> data_t *ndata=n._get_data();
+<a name="l00082"></a>00082 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *firstDigit=ndata-&gt;digits,
+<a name="l00083"></a>00083 *lastDigit=firstDigit + ndata-&gt;mLength - 1;
+<a name="l00084"></a>00084
+<a name="l00085"></a>00085 <span class="keyword">const</span> <span class="keywordtype">int</span> bitsPerDigit=4;
+<a name="l00086"></a>00086 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> mask=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(1) &lt;&lt; bitsPerDigit)-1;
+<a name="l00087"></a>00087
+<a name="l00088"></a>00088 <span class="comment">// Suppress any leading zeros</span>
+<a name="l00089"></a>00089 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *d=lastDigit;
+<a name="l00090"></a>00090 <span class="keywordtype">int</span> digitShift=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> - bitsPerDigit);
+<a name="l00091"></a>00091 <span class="keywordflow">while</span> (digitShift &gt;= 0 &amp;&amp; ((*d &gt;&gt; digitShift) &amp; mask) == 0)
+<a name="l00092"></a>00092 digitShift -= bitsPerDigit;
+<a name="l00093"></a>00093
+<a name="l00094"></a>00094 <span class="keywordflow">do</span> {
+<a name="l00095"></a>00095 <span class="keywordflow">while</span> (digitShift &gt;= 0) {
+<a name="l00096"></a>00096 out &lt;&lt; nToChar((*d &gt;&gt; digitShift) &amp; mask, uppercase);
+<a name="l00097"></a>00097 digitShift -= bitsPerDigit;
+<a name="l00098"></a>00098 }
+<a name="l00099"></a>00099
+<a name="l00100"></a>00100 digitShift=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> - bitsPerDigit);
+<a name="l00101"></a>00101 } <span class="keywordflow">while</span> (d-- != firstDigit);
+<a name="l00102"></a>00102
+<a name="l00103"></a>00103 std::string r(n.sign() &lt; 0 ? std::string(<span class="stringliteral">&quot;-&quot;</span>)+out.str() : out.str());
+<a name="l00104"></a>00104 <span class="keywordflow">return</span> r;
+<a name="l00105"></a>00105 } <span class="keywordflow">else</span> {
+<a name="l00106"></a>00106 <span class="keyword">const</span> integer <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>=base;
+<a name="l00107"></a>00107 std::pair&lt;integer, integer&gt; a=std::make_pair(n, <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>());
+<a name="l00108"></a>00108 a.first._set_negative(<span class="keyword">false</span>);
+<a name="l00109"></a>00109
+<a name="l00110"></a>00110 integer r;
+<a name="l00111"></a>00111 <span class="keywordflow">while</span> (a.first.sign()!=0) {
+<a name="l00112"></a>00112 a=<a class="code" href="namespaceboost_1_1xint.html#a0fff3b235a18c0b3243a1ccc01a68f23" title="Calculate how many dividends would fit into divisor, with the remainder.">divide_r</a>(a.first, shift);
+<a name="l00113"></a>00113 out &lt;&lt; nToChar(a.second._get_digit(0), uppercase);
+<a name="l00114"></a>00114 }
+<a name="l00115"></a>00115
+<a name="l00116"></a>00116 <span class="keywordflow">if</span> (n.sign() &lt; 0) out &lt;&lt; <span class="charliteral">&apos;-&apos;</span>;
+<a name="l00117"></a>00117
+<a name="l00118"></a>00118 std::string rval=out.str();
+<a name="l00119"></a>00119 std::reverse(rval.begin(), rval.end());
+<a name="l00120"></a>00120 <span class="keywordflow">return</span> rval;
+<a name="l00121"></a>00121 }
+<a name="l00122"></a>00122 }
+<a name="l00123"></a>00123
+<a name="l00150"></a>00150 integer <a class="code" href="namespaceboost_1_1xint.html#af263105e57d48eff5fe14d4d03ca10e1" title="Converts a string into an integer.">from_string</a>(<span class="keyword">const</span> std::string&amp; str, <span class="keywordtype">size_t</span> base) {
+<a name="l00151"></a>00151 <span class="keywordflow">if</span> (str==<a class="code" href="namespaceboost_1_1xint_1_1detail.html#ab0df946a2c10228501ef82bf823d0978" title="Holds the text representation of the Not-a-Number value.">detail::nan_text</a>) <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00152"></a>00152
+<a name="l00153"></a>00153 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a84190f7b286de191e8026e440f104731" title="Return the additive inverse of an integer.">negate</a>=<span class="keyword">false</span>;
+<a name="l00154"></a>00154 <span class="keyword">const</span> <span class="keywordtype">char</span> *c=str.c_str();
+<a name="l00155"></a>00155 <span class="keywordflow">if</span> (*c==<span class="charliteral">&apos;+&apos;</span>) ++c;
+<a name="l00156"></a>00156 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c==<span class="charliteral">&apos;-&apos;</span>) { negate=<span class="keyword">true</span>; ++c; }
+<a name="l00157"></a>00157
+<a name="l00158"></a>00158 <span class="keywordflow">if</span> (base==<a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">autobase</a>) {
+<a name="l00159"></a>00159 <span class="keywordflow">if</span> (*c==<span class="charliteral">&apos;0&apos;</span>) {
+<a name="l00160"></a>00160 ++c;
+<a name="l00161"></a>00161 <span class="keywordflow">if</span> (*c==<span class="charliteral">&apos;x&apos;</span> || *c==<span class="charliteral">&apos;X&apos;</span>) {
+<a name="l00162"></a>00162 ++c;
+<a name="l00163"></a>00163 base=16;
+<a name="l00164"></a>00164 } <span class="keywordflow">else</span> base=8;
+<a name="l00165"></a>00165 } <span class="keywordflow">else</span> base=10;
+<a name="l00166"></a>00166 }
+<a name="l00167"></a>00167
+<a name="l00168"></a>00168 <span class="keywordflow">if</span> (base&lt;2 || base&gt;36) {
+<a name="l00169"></a>00169 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_base();
+<a name="l00170"></a>00170 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00171"></a>00171 }
+<a name="l00172"></a>00172
+<a name="l00173"></a>00173 <span class="keywordflow">if</span> (*c==0) {
+<a name="l00174"></a>00174 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_digit(<span class="stringliteral">&quot;No valid digits&quot;</span>);
+<a name="l00175"></a>00175 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00176"></a>00176 }
+<a name="l00177"></a>00177
+<a name="l00178"></a>00178 <span class="keyword">const</span> integer <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>(base);
+<a name="l00179"></a>00179
+<a name="l00180"></a>00180 integer r;
+<a name="l00181"></a>00181 <span class="keywordflow">while</span> (*c) {
+<a name="l00182"></a>00182 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> digit;
+<a name="l00183"></a>00183 <span class="keywordflow">if</span> (*c&gt;=<span class="charliteral">&apos;0&apos;</span> &amp;&amp; *c&lt;=<span class="charliteral">&apos;9&apos;</span>) digit=*c-<span class="charliteral">&apos;0&apos;</span>;
+<a name="l00184"></a>00184 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c&gt;=<span class="charliteral">&apos;A&apos;</span> &amp;&amp; *c&lt;=<span class="charliteral">&apos;Z&apos;</span>) digit=*c-<span class="charliteral">&apos;A&apos;</span>+10;
+<a name="l00185"></a>00185 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c&gt;=<span class="charliteral">&apos;a&apos;</span> &amp;&amp; *c&lt;=<span class="charliteral">&apos;z&apos;</span>) digit=*c-<span class="charliteral">&apos;a&apos;</span>+10;
+<a name="l00186"></a>00186 <span class="keywordflow">else</span> {
+<a name="l00187"></a>00187 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_digit(<span class="stringliteral">&quot;encountered non-alphanumeric character in string&quot;</span>);
+<a name="l00188"></a>00188 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00189"></a>00189 }
+<a name="l00190"></a>00190
+<a name="l00191"></a>00191 <span class="keywordflow">if</span> (digit &gt;= base) {
+<a name="l00192"></a>00192 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_digit(<span class="stringliteral">&quot;encountered digit greater than base allows&quot;</span>);
+<a name="l00193"></a>00193 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00194"></a>00194 }
+<a name="l00195"></a>00195
+<a name="l00196"></a>00196 r = (r * shift) + digit;
+<a name="l00197"></a>00197 ++c;
+<a name="l00198"></a>00198 }
+<a name="l00199"></a>00199 r._set_negative(negate);
+<a name="l00200"></a>00200 <span class="keywordflow">return</span> r;
+<a name="l00201"></a>00201 }
+<a name="l00202"></a>00202
+<a name="l00212"></a>00212 integer <a class="code" href="namespaceboost_1_1xint.html#a58aa7dc532f0d8a1557c9ec8f512602e" title="Converts a binary representation of a number into an integer.">from_binary</a>(<span class="keyword">const</span> std::string&amp; str) {
+<a name="l00213"></a>00213 <span class="keyword">const</span> <span class="keywordtype">size_t</span> bytesPerDigit=<span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>);
+<a name="l00214"></a>00214 <span class="keyword">const</span> <span class="keywordtype">size_t</span> bitsPerByte=std::numeric_limits&lt;unsigned char&gt;::digits;
+<a name="l00215"></a>00215
+<a name="l00216"></a>00216 integer r;
+<a name="l00217"></a>00217 detail::data_t *rdata=r.<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>();
+<a name="l00218"></a>00218 rdata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a05165b7f45dea3e2459739d856d78288">alloc</a>((str.length() + bytesPerDigit - 1)/bytesPerDigit);
+<a name="l00219"></a>00219 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *p=rdata-&gt;digits;
+<a name="l00220"></a>00220
+<a name="l00221"></a>00221 <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="l00222"></a>00222 <span class="keywordflow">while</span> (s&lt;se) {
+<a name="l00223"></a>00223 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> d=0;
+<a name="l00224"></a>00224 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i&lt;bytesPerDigit &amp;&amp; s&lt;se; ++i)
+<a name="l00225"></a>00225 d |= (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(*s++) &lt;&lt; (i * bitsPerByte));
+<a name="l00226"></a>00226 *p++=d;
+<a name="l00227"></a>00227 }
+<a name="l00228"></a>00228 rdata-&gt;skipLeadingZeros();
+<a name="l00229"></a>00229 <span class="keywordflow">return</span> r;
+<a name="l00230"></a>00230 }
+<a name="l00231"></a>00231
+<a name="l00248"></a>00248 std::string <a class="code" href="namespaceboost_1_1xint.html#a19124d8eeee95cc7ff1e348c36250eea" title="Creates a binary representation of an integer, lowest byte first.">to_binary</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00249"></a>00249 n._throw_if_nan();
+<a name="l00250"></a>00250
+<a name="l00251"></a>00251 <span class="keyword">const</span> <span class="keywordtype">size_t</span> bytesPerDigit=<span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>);
+<a name="l00252"></a>00252 <span class="keyword">const</span> <span class="keywordtype">size_t</span> bitsPerByte=std::numeric_limits&lt;unsigned char&gt;::digits;
+<a name="l00253"></a>00253 std::vector&lt;unsigned char&gt; temp;
+<a name="l00254"></a>00254 temp.reserve(n._get_length() * bytesPerDigit);
+<a name="l00255"></a>00255
+<a name="l00256"></a>00256 <span class="keyword">const</span> detail::data_t *ndata=n._get_data();
+<a name="l00257"></a>00257 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *p=ndata-&gt;digits, *pe=p+n._get_length();
+<a name="l00258"></a>00258 <span class="keywordflow">while</span> (p != pe) {
+<a name="l00259"></a>00259 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> d(*p++);
+<a name="l00260"></a>00260 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i&lt;bytesPerDigit; ++i) {
+<a name="l00261"></a>00261 temp.push_back((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(d));
+<a name="l00262"></a>00262 d &gt;&gt;= bitsPerByte;
+<a name="l00263"></a>00263 }
+<a name="l00264"></a>00264 }
+<a name="l00265"></a>00265 <span class="keywordflow">while</span> (!temp.empty() &amp;&amp; temp.back()==0) temp.pop_back();
+<a name="l00266"></a>00266 <span class="keywordtype">char</span> *c=(<span class="keywordtype">char</span>*)&amp;temp[0];
+<a name="l00267"></a>00267 <span class="keywordflow">return</span> std::string(c, c+temp.size());
+<a name="l00268"></a>00268 }
+<a name="l00269"></a>00269
+<a name="l00270"></a>00270 } <span class="comment">// namespace xint</span>
+<a name="l00271"></a>00271 } <span class="comment">// namespace boost</span>
 </pre></div></div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:07 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/copyonwrite_8dox.html
==============================================================================
--- sandbox/xint/doc/copyonwrite_8dox.html (original)
+++ sandbox/xint/doc/copyonwrite_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/copyonwrite.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/cow.html
==============================================================================
--- sandbox/xint/doc/cow.html (original)
+++ sandbox/xint/doc/cow.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -24,10 +24,10 @@
 <div class="contents">
 
 
-<h1><a class="anchor" id="cow">Copying and Argument-Passing </a></h1><p>By default, the <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a> class uses copy-on-write, which means that if you copy an integer, the copy and the original share the same storage. They are only assigned separate storage when one of them is changed. This mechanism makes copying an integer (explicitly, by returning it, or by using it as a non-reference parameter to a function) very fast, regardless of its size.</p>
+<h1><a class="anchor" id="cow">Copying and Argument-Passing </a></h1><p>By default, the xint::integer class uses copy-on-write, which means that if you copy an integer, the copy and the original share the same storage. They are only assigned separate storage when one of them is changed. This mechanism makes copying an integer (explicitly, by returning it, or by using it as a non-reference parameter to a function) very fast, regardless of its size.</p>
 <p>(Unfortunately, this makes thread-safe operation impossible. If you need to use the library from multiple threads, you can disable this behavior by compiling it with <a class="el" href="threadsafe.html">the thread-safe option</a>. </p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/data__t_8cpp.html
==============================================================================
--- sandbox/xint/doc/data__t_8cpp.html (original)
+++ sandbox/xint/doc/data__t_8cpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -27,7 +27,7 @@
 </div>
 <div class="contents">
 <h1>data_t.cpp File Reference</h1>
-<p>Contains the definitions for <a class="el" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">xint::detail::data_t</a> member functions.
+<p>Contains the definitions for xint::detail::data_t member functions.
 <a href="#_details">More...</a></p>
 <code>#include &quot;../boost/xint/xint.hpp&quot;</code><br/>
 <code>#include &quot;../boost/xint/xint_data_t.hpp&quot;</code><br/>
@@ -36,23 +36,24 @@
 <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>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All of the functions in the XInt library are within this namespace. </p>
 <br/></td></tr>
 </p>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html">xint::detail</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html">boost::xint::detail</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>The items within this namespace are meant for internal use only. </p>
 <br/></td></tr>
 </p>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Contains the definitions for <a class="el" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">xint::detail::data_t</a> member functions. </p>
+<p>Contains the definitions for xint::detail::data_t member functions. </p>
 
 <p>Definition in file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/data__t_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/data__t_8cpp_source.html (original)
+++ sandbox/xint/doc/data__t_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -42,303 +42,305 @@
 <a name="l00020"></a>00020
 <a name="l00021"></a>00021 <span class="preprocessor">#include &lt;cassert&gt;</span>
 <a name="l00022"></a>00022
-<a name="l00023"></a>00023 <span class="keyword">namespace </span>xint {
-<a name="l00024"></a><a class="code" href="namespacexint_1_1detail.html">00024</a> <span class="keyword">namespace </span>detail {
-<a name="l00025"></a>00025
-<a name="l00026"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">00026</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="l00027"></a>00027 <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=1;
-<a name="l00028"></a>00028 <a class="code" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">mAllocated</a>=<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">QuickDigits::count</a>;
-<a name="l00029"></a>00029 <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="l00030"></a>00030 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[0]=initial1;
-<a name="l00031"></a>00031 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[1]=initial2;
-<a name="l00032"></a>00032 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[2]=initial3;
-<a name="l00033"></a>00033 <a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>=0;
-<a name="l00034"></a>00034 <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>=<span class="keyword">false</span>;
-<a name="l00035"></a>00035 }
-<a name="l00036"></a>00036
-<a name="l00038"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#ae5afaa677468a9624ed3fb04318fd2a3">00038</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" title="Holds the internal details of an xint::integer.">data_t</a> *c) {
-<a name="l00039"></a>00039 <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
-<a name="l00040"></a>00040 <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="l00041"></a>00041 <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="l00042"></a>00042 <a class="code" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">mAllocated</a>=<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">QuickDigits::count</a>;
-<a name="l00043"></a>00043 } <span class="keywordflow">else</span> {
-<a name="l00044"></a>00044 <span class="keywordflow">try</span> {
-<a name="l00045"></a>00045 <a class="code" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">mAllocated</a>=<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
-<a name="l00046"></a>00046 <span class="preprocessor"> #ifdef XINT_SECURE</span>
-<a name="l00047"></a>00047 <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#a3390530db8333b535f65d3cc01ff5236">mAllocated</a>];
-<a name="l00048"></a>00048 <span class="preprocessor"> #else</span>
-<a name="l00049"></a>00049 <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#a3390530db8333b535f65d3cc01ff5236">mAllocated</a>, 0);
-<a name="l00050"></a>00050 <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="l00051"></a>00051 <span class="preprocessor"> #endif</span>
-<a name="l00052"></a>00052 <span class="preprocessor"></span> } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
-<a name="l00053"></a>00053 <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a>(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
-<a name="l00054"></a>00054 }
-<a name="l00055"></a>00055 }
-<a name="l00056"></a>00056 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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>));
-<a name="l00057"></a>00057
-<a name="l00058"></a>00058 <a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>=0;
-<a name="l00059"></a>00059 <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="l00060"></a>00060 }
-<a name="l00061"></a>00061
-<a name="l00062"></a>00062 <span class="preprocessor">#ifdef XINT_SECURE</span>
-<a name="l00063"></a>00063 <span class="preprocessor"></span>data_t::~data_t() {
-<a name="l00064"></a>00064 <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#ac691b42c4404e59ae07f89146e722736">QuickDigits::count</a>);
-<a name="l00065"></a>00065 <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="l00066"></a>00066 <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#a3390530db8333b535f65d3cc01ff5236">mAllocated</a>);
-<a name="l00067"></a>00067 <span class="keyword">delete</span>[] <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
-<a name="l00068"></a>00068 }
-<a name="l00069"></a>00069 }
-<a name="l00070"></a>00070 <span class="preprocessor">#endif</span>
-<a name="l00071"></a>00071 <span class="preprocessor"></span>
-<a name="l00076"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">00076</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">data_t::skipLeadingZeros</a>() {
-<a name="l00077"></a>00077 <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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>-1;
-<a name="l00078"></a>00078 <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="l00079"></a>00079 mLength=int((d-<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>)+1);
-<a name="l00080"></a>00080 <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&apos;t negative</span>
-<a name="l00081"></a>00081 }
-<a name="l00082"></a>00082
-<a name="l00083"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a57fc3966c44d09daeede53899673cde3">00083</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="l00084"></a>00084 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
-<a name="l00085"></a>00085
-<a name="l00086"></a>00086 <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=3;
-<a name="l00087"></a>00087 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[0]=d1;
-<a name="l00088"></a>00088 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[1]=d2;
-<a name="l00089"></a>00089 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[2]=d3;
-<a name="l00090"></a>00090 <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>=<span class="keyword">false</span>;
-<a name="l00091"></a>00091 <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00092"></a>00092 }
-<a name="l00093"></a>00093
-<a name="l00094"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">00094</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">data_t::alloc</a>(<span class="keywordtype">size_t</span> newcount, <span class="keywordtype">bool</span> copydigits) {
-<a name="l00095"></a>00095 <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#ac691b42c4404e59ae07f89146e722736">QuickDigits::count</a>) {
-<a name="l00096"></a>00096 <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#ac691b42c4404e59ae07f89146e722736">QuickDigits::count</a>);
-<a name="l00097"></a>00097 <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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>, (newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>));
-<a name="l00098"></a>00098 <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=newcount;
-<a name="l00099"></a>00099 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (newcount &lt; <a class="code" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">mAllocated</a>) {
-<a name="l00100"></a>00100 <span class="keywordflow">if</span> (copydigits) {
-<a name="l00101"></a>00101 <span class="keywordflow">if</span> (newcount&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>, newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>);
-<a name="l00102"></a>00102 <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=newcount;
-<a name="l00103"></a>00103 } <span class="keywordflow">else</span> {
-<a name="l00104"></a>00104 <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=newcount;
-<a name="l00105"></a>00105 <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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>);
-<a name="l00106"></a>00106 }
-<a name="l00107"></a>00107 } <span class="keywordflow">else</span> {
-<a name="l00108"></a>00108 <span class="preprocessor"> #ifdef XINT_SECURE</span>
-<a name="l00109"></a>00109 <span class="preprocessor"></span> <span class="keywordtype">int</span> e=newcount;
-<a name="l00110"></a>00110 newcount=1;
-<a name="l00111"></a>00111 <span class="keywordflow">while</span> (newcount &lt; e) newcount &lt;&lt;= 1;
-<a name="l00112"></a>00112 <span class="preprocessor"> #endif</span>
-<a name="l00113"></a>00113 <span class="preprocessor"></span>
-<a name="l00114"></a>00114 <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="l00115"></a>00115 <span class="keywordflow">try</span> {
-<a name="l00116"></a>00116 <span class="preprocessor"> #ifdef XINT_SECURE</span>
-<a name="l00117"></a>00117 <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="l00118"></a>00118 <span class="preprocessor"> #else</span>
-<a name="l00119"></a>00119 <span class="preprocessor"></span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>.resize(newcount);
-<a name="l00120"></a>00120 <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="l00121"></a>00121 <span class="preprocessor"> #endif</span>
-<a name="l00122"></a>00122 <span class="preprocessor"></span> } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
-<a name="l00123"></a>00123 <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="l00124"></a>00124 <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a>(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
-<a name="l00125"></a>00125 }
-<a name="l00126"></a>00126
-<a name="l00127"></a>00127 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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>));
-<a name="l00128"></a>00128 <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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>, newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>);
-<a name="l00129"></a>00129 } <span class="keywordflow">else</span> {
-<a name="l00130"></a>00130 <span class="preprocessor"> #ifdef XINT_SECURE</span>
-<a name="l00131"></a>00131 <span class="preprocessor"></span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *newDigits=0;
-<a name="l00132"></a>00132 <span class="keywordflow">try</span> {
-<a name="l00133"></a>00133 newDigits=<span class="keyword">new</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>[newcount];
-<a name="l00134"></a>00134 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
-<a name="l00135"></a>00135 <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a>(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
-<a name="l00136"></a>00136 }
-<a name="l00137"></a>00137
-<a name="l00138"></a>00138 <span class="keywordflow">if</span> (copydigits) {
-<a name="l00139"></a>00139 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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>));
-<a name="l00140"></a>00140 <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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>, newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>);
-<a name="l00141"></a>00141 } <span class="keywordflow">else</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(newDigits, newcount);
-<a name="l00142"></a>00142
-<a name="l00143"></a>00143 <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="l00144"></a>00144 <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#a3390530db8333b535f65d3cc01ff5236">mAllocated</a>);
-<a name="l00145"></a>00145 <span class="keyword">delete</span>[] <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
-<a name="l00146"></a>00146 }
-<a name="l00147"></a>00147 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=newDigits;
-<a name="l00148"></a>00148 <span class="preprocessor"> #else</span>
-<a name="l00149"></a>00149 <span class="preprocessor"></span> <span class="keywordflow">try</span> {
-<a name="l00150"></a>00150 <a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>.resize(newcount);
-<a name="l00151"></a>00151 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
-<a name="l00152"></a>00152 <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a>(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
-<a name="l00153"></a>00153 }
-<a name="l00154"></a>00154 <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="l00155"></a>00155 <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="l00156"></a>00156 <span class="preprocessor"> #endif</span>
-<a name="l00157"></a>00157 <span class="preprocessor"></span> }
-<a name="l00158"></a>00158 <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=<a class="code" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">mAllocated</a>=newcount;
-<a name="l00159"></a>00159 }
-<a name="l00160"></a>00160 }
-<a name="l00161"></a>00161
-<a name="l00162"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a66862f94545c953f6604b4347205277b">00162</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a66862f94545c953f6604b4347205277b">data_t::copy</a>(<span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">data_t</a> *c, <span class="keywordtype">size_t</span> extraDigits) {
-<a name="l00163"></a>00163 <a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a>(c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>+extraDigits);
-<a name="l00164"></a>00164
-<a name="l00165"></a>00165 <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
-<a name="l00166"></a>00166 <span class="keywordflow">if</span> (c-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">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="l00167"></a>00167 <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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>));
-<a name="l00168"></a>00168
-<a name="l00169"></a>00169 <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="l00170"></a>00170
-<a name="l00171"></a>00171 <span class="comment">// Deliberately doesn&apos;t call skipLeadingZeros().</span>
-<a name="l00172"></a>00172 }
-<a name="l00173"></a>00173
-<a name="l00174"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">00174</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="l00175"></a>00175 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *pe=p+count;
-<a name="l00176"></a>00176 <span class="keywordflow">while</span> (p&lt;pe) *p++=0;
-<a name="l00177"></a>00177 }
-<a name="l00178"></a>00178
-<a name="l00179"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#aaf6f202db416ad8fe18ec8a6c8c48904">00179</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#aaf6f202db416ad8fe18ec8a6c8c48904">data_t::invert</a>() {
-<a name="l00180"></a>00180 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
-<a name="l00181"></a>00181
-<a name="l00182"></a>00182 <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="l00183"></a>00183
-<a name="l00184"></a>00184 <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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
-<a name="l00185"></a>00185 <span class="keywordflow">while</span> (d&lt;e) {
-<a name="l00186"></a>00186 *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="l00187"></a>00187 ++d;
-<a name="l00188"></a>00188 }
-<a name="l00189"></a>00189
-<a name="l00190"></a>00190 d=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
-<a name="l00191"></a>00191 <span class="keywordflow">while</span> (d&lt;e) {
-<a name="l00192"></a>00192 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> w=(*d)+1;
-<a name="l00193"></a>00193 (*d++)=static_cast&lt;digit_t&gt;(w);
-<a name="l00194"></a>00194 <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="l00195"></a>00195 }
-<a name="l00196"></a>00196
-<a name="l00197"></a>00197 <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00198"></a>00198 }
-<a name="l00199"></a>00199
-<a name="l00200"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">00200</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">data_t::negate</a>() {
-<a name="l00201"></a>00201 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
-<a name="l00202"></a>00202
-<a name="l00203"></a>00203 <span class="comment">// If it&apos;s zero, don&apos;t change the sign</span>
-<a name="l00204"></a>00204 <span class="keywordflow">if</span> (<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">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="l00205"></a>00205 }
-<a name="l00206"></a>00206
-<a name="l00207"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">00207</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" title="Holds the internal details of an xint::integer.">data_t</a>&amp; addend) {
-<a name="l00208"></a>00208 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
-<a name="l00209"></a>00209 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> &gt;= addend.<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>);
-<a name="l00210"></a>00210
-<a name="l00211"></a>00211 <span class="comment">// The answer to any addition problem contains, at most, one digit more</span>
-<a name="l00212"></a>00212 <span class="comment">// than the largest addend.</span>
-<a name="l00213"></a>00213 <a class="code" href="structxint_1_1detail_1_1data__t.html#a2bb2c79d47f2fda3605f34b80cb58b8b">realloc</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>+1);
-<a name="l00214"></a>00214
-<a name="l00215"></a>00215 <span class="comment">// Now add the digits, starting at the least-significant digit.</span>
-<a name="l00216"></a>00216 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> carry=0;
-<a name="l00217"></a>00217 <span class="keywordtype">size_t</span> x=0;
-<a name="l00218"></a>00218 <span class="keywordflow">for</span> (; x&lt;addend.<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>; ++x) {
-<a name="l00219"></a>00219 <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="l00220"></a>00220 <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="l00221"></a>00221 <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="l00222"></a>00222 }
-<a name="l00223"></a>00223
-<a name="l00224"></a>00224 <span class="keywordflow">while</span> (carry) {
-<a name="l00225"></a>00225 <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="l00226"></a>00226 <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="l00227"></a>00227 <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="l00228"></a>00228 ++x;
-<a name="l00229"></a>00229 }
-<a name="l00230"></a>00230
-<a name="l00231"></a>00231 <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00232"></a>00232 }
-<a name="l00233"></a>00233
-<a name="l00234"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">00234</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" title="Holds the internal details of an xint::integer.">data_t</a>&amp; subtrahend) {
-<a name="l00235"></a>00235 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
-<a name="l00236"></a>00236 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> &gt;= subtrahend.<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>);
-<a name="l00237"></a>00237
-<a name="l00238"></a>00238 <span class="comment">// For subtraction, the answer will always be less than or equal to the</span>
-<a name="l00239"></a>00239 <span class="comment">// size of the longest operand, so we&apos;ve already got enough room.</span>
-<a name="l00240"></a>00240
-<a name="l00241"></a>00241 <span class="comment">// Now subtract the digits, starting at the least-significant one.</span>
-<a name="l00242"></a>00242 <span class="keywordtype">size_t</span> x;
-<a name="l00243"></a>00243 <span class="keywordtype">int</span> borrow=0;
-<a name="l00244"></a>00244 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> t;
-<a name="l00245"></a>00245 <span class="keywordflow">for</span> (x=0; x&lt;subtrahend.<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>; ++x) {
-<a name="l00246"></a>00246 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="l00247"></a>00247 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="l00248"></a>00248 <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="l00249"></a>00249 }
-<a name="l00250"></a>00250
-<a name="l00251"></a>00251 <span class="keywordflow">for</span> (; x&lt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> &amp;&amp; borrow; ++x) {
-<a name="l00252"></a>00252 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="l00253"></a>00253 <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="l00254"></a>00254 <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="l00255"></a>00255 }
-<a name="l00256"></a>00256
-<a name="l00257"></a>00257 <span class="keywordflow">if</span> (borrow) <a class="code" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">negate</a>();
-<a name="l00258"></a>00258 <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00259"></a>00259 }
-<a name="l00260"></a>00260
-<a name="l00261"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a72785130c7c6490af874f450cf6e0086">00261</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a72785130c7c6490af874f450cf6e0086">data_t::shift_left</a>(<span class="keywordtype">size_t</span> byBits) {
-<a name="l00262"></a>00262 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
-<a name="l00263"></a>00263 assert(byBits&gt;0);
-<a name="l00264"></a>00264
-<a name="l00265"></a>00265 <span class="keywordtype">size_t</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="l00266"></a>00266 <span class="keywordtype">size_t</span> oldLength=<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
-<a name="l00267"></a>00267
-<a name="l00268"></a>00268 <a class="code" href="structxint_1_1detail_1_1data__t.html#a2bb2c79d47f2fda3605f34b80cb58b8b">realloc</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>+bytes+1);
-<a name="l00269"></a>00269
-<a name="l00270"></a>00270 <span class="keywordflow">if</span> (bits != 0) {
-<a name="l00271"></a>00271 <span class="comment">// Handle both bits and bytes in one pass</span>
-<a name="l00272"></a>00272 <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="l00273"></a>00273
-<a name="l00274"></a>00274 *t-- = *s &gt;&gt; (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bits);
-<a name="l00275"></a>00275 <span class="keywordflow">while</span> (s &gt; <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>) {
-<a name="l00276"></a>00276 *t = (*s-- &lt;&lt; bits);
-<a name="l00277"></a>00277 *t-- |= (*s &gt;&gt; (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bits));
-<a name="l00278"></a>00278 }
-<a name="l00279"></a>00279 *t = (*s &lt;&lt; bits);
-<a name="l00280"></a>00280
-<a name="l00281"></a>00281 <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="l00282"></a>00282 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bytes != 0) {
-<a name="l00283"></a>00283 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="l00284"></a>00284 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="l00285"></a>00285 }
-<a name="l00286"></a>00286 <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00287"></a>00287 }
-<a name="l00288"></a>00288
-<a name="l00289"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a432ace7094bca306dcba254f862e2428">00289</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a432ace7094bca306dcba254f862e2428">data_t::shift_right</a>(<span class="keywordtype">size_t</span> byBits) {
-<a name="l00290"></a>00290 assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
-<a name="l00291"></a>00291 assert(byBits&gt;0);
-<a name="l00292"></a>00292
-<a name="l00293"></a>00293 <span class="keywordtype">size_t</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="l00294"></a>00294 bits2 = <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bits;
-<a name="l00295"></a>00295
-<a name="l00296"></a>00296 <span class="keywordflow">if</span> (bytes &gt;= <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>) {
-<a name="l00297"></a>00297 <span class="comment">// Right-shift it into oblivion.</span>
-<a name="l00298"></a>00298 <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=1;
-<a name="l00299"></a>00299 *<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=0;
-<a name="l00300"></a>00300 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits != 0) {
-<a name="l00301"></a>00301 <span class="comment">// Handle both bits and bytes in one pass</span>
-<a name="l00302"></a>00302 <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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>-1;
-<a name="l00303"></a>00303 <span class="keywordflow">while</span> (s!=se) {
-<a name="l00304"></a>00304 *t = (*s++ &gt;&gt; bits);
-<a name="l00305"></a>00305 *t++ |= (*s &lt;&lt; bits2);
-<a name="l00306"></a>00306 }
-<a name="l00307"></a>00307 *t = (*s &gt;&gt; bits);
-<a name="l00308"></a>00308 <span class="keywordflow">if</span> (bytes != 0) {
-<a name="l00309"></a>00309 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="l00310"></a>00310 mLength-=bytes;
-<a name="l00311"></a>00311 }
-<a name="l00312"></a>00312 <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00313"></a>00313 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bytes != 0) {
-<a name="l00314"></a>00314 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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> - bytes));
-<a name="l00315"></a>00315 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#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> - bytes, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>) * bytes);
-<a name="l00316"></a>00316 <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>-=bytes;
-<a name="l00317"></a>00317 <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00318"></a>00318 }
-<a name="l00319"></a>00319 }
-<a name="l00320"></a>00320
-<a name="l00321"></a>00321 } <span class="comment">// namespace detail</span>
-<a name="l00322"></a>00322 } <span class="comment">// namespace xint</span>
+<a name="l00023"></a>00023 <span class="keyword">namespace </span>boost {
+<a name="l00024"></a>00024 <span class="keyword">namespace </span>xint {
+<a name="l00025"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html">00025</a> <span class="keyword">namespace </span>detail {
+<a name="l00026"></a>00026
+<a name="l00027"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a37dee31093efc13f9ad64171fd9c373a">00027</a> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a37dee31093efc13f9ad64171fd9c373a">data_t::data_t</a>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> initial1, <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> initial2, <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> initial3) {
+<a name="l00028"></a>00028 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>=1;
+<a name="l00029"></a>00029 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a02411914c8a9d59e3521b04367352ea5">mAllocated</a>=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#ae820a83ad097f0cc70ba3f53ea00ab70">QuickDigits::count</a>;
+<a name="l00030"></a>00030 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af91f399a0533e8cdf46ac021616e2500">mQuickDigits</a>;
+<a name="l00031"></a>00031 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[0]=initial1;
+<a name="l00032"></a>00032 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[1]=initial2;
+<a name="l00033"></a>00033 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[2]=initial3;
+<a name="l00034"></a>00034 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">mCopies</a>=0;
+<a name="l00035"></a>00035 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">mIsNegative</a>=<span class="keyword">false</span>;
+<a name="l00036"></a>00036 }
+<a name="l00037"></a>00037
+<a name="l00039"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a91d6951498c6df25133e987c7d347c17">00039</a> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a37dee31093efc13f9ad64171fd9c373a">data_t::data_t</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">data_t</a> *c) {
+<a name="l00040"></a>00040 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>=c-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>;
+<a name="l00041"></a>00041 <span class="keywordflow">if</span> (c-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a> == c-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af91f399a0533e8cdf46ac021616e2500">mQuickDigits</a>) {
+<a name="l00042"></a>00042 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af91f399a0533e8cdf46ac021616e2500">mQuickDigits</a>;
+<a name="l00043"></a>00043 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a02411914c8a9d59e3521b04367352ea5">mAllocated</a>=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#ae820a83ad097f0cc70ba3f53ea00ab70">QuickDigits::count</a>;
+<a name="l00044"></a>00044 } <span class="keywordflow">else</span> {
+<a name="l00045"></a>00045 <span class="keywordflow">try</span> {
+<a name="l00046"></a>00046 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a02411914c8a9d59e3521b04367352ea5">mAllocated</a>=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>;
+<a name="l00047"></a>00047 <span class="preprocessor"> #ifdef XINT_SECURE</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>=<span class="keyword">new</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>[<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a02411914c8a9d59e3521b04367352ea5">mAllocated</a>];
+<a name="l00049"></a>00049 <span class="preprocessor"> #else</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8867fdad2325f390790c1188e6f71219">mStorage</a>.resize(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a02411914c8a9d59e3521b04367352ea5">mAllocated</a>, 0);
+<a name="l00051"></a>00051 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>=&amp;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8867fdad2325f390790c1188e6f71219">mStorage</a>[0];
+<a name="l00052"></a>00052 <span class="preprocessor"> #endif</span>
+<a name="l00053"></a>00053 <span class="preprocessor"></span> } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
+<a name="l00054"></a>00054 <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a>(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
+<a name="l00055"></a>00055 }
+<a name="l00056"></a>00056 }
+<a name="l00057"></a>00057 memcpy(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, c-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>));
+<a name="l00058"></a>00058
+<a name="l00059"></a>00059 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">mCopies</a>=0;
+<a name="l00060"></a>00060 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">mIsNegative</a>=c-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">mIsNegative</a>;
+<a name="l00061"></a>00061 }
+<a name="l00062"></a>00062
+<a name="l00063"></a>00063 <span class="preprocessor">#ifdef XINT_SECURE</span>
+<a name="l00064"></a>00064 <span class="preprocessor"></span>data_t::~data_t() {
+<a name="l00065"></a>00065 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">zero</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af91f399a0533e8cdf46ac021616e2500">mQuickDigits</a>, <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#ae820a83ad097f0cc70ba3f53ea00ab70">QuickDigits::count</a>);
+<a name="l00066"></a>00066 <span class="keywordflow">if</span> (<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a> != <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af91f399a0533e8cdf46ac021616e2500">mQuickDigits</a>) {
+<a name="l00067"></a>00067 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">zero</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a02411914c8a9d59e3521b04367352ea5">mAllocated</a>);
+<a name="l00068"></a>00068 <span class="keyword">delete</span>[] <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>;
+<a name="l00069"></a>00069 }
+<a name="l00070"></a>00070 }
+<a name="l00071"></a>00071 <span class="preprocessor">#endif</span>
+<a name="l00072"></a>00072 <span class="preprocessor"></span>
+<a name="l00077"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">00077</a> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">data_t::skipLeadingZeros</a>() {
+<a name="l00078"></a>00078 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *d=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>+<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>-1;
+<a name="l00079"></a>00079 <span class="keywordflow">while</span> (d&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a> &amp;&amp; *d==0) --d;
+<a name="l00080"></a>00080 mLength=int((d-<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>)+1);
+<a name="l00081"></a>00081 <span class="keywordflow">if</span> (mLength==1 &amp;&amp; <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[0]==0) <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">mIsNegative</a>=<span class="keyword">false</span>; <span class="comment">// Zero isn&apos;t negative</span>
+<a name="l00082"></a>00082 }
+<a name="l00083"></a>00083
+<a name="l00084"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a231dab01a05e0c7f64e9c592537ddb14">00084</a> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a231dab01a05e0c7f64e9c592537ddb14">data_t::quickset</a>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> d1, <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> d2, <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> d3) {
+<a name="l00085"></a>00085 assert(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">mCopies</a>==1);
+<a name="l00086"></a>00086
+<a name="l00087"></a>00087 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>=3;
+<a name="l00088"></a>00088 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[0]=d1;
+<a name="l00089"></a>00089 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[1]=d2;
+<a name="l00090"></a>00090 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[2]=d3;
+<a name="l00091"></a>00091 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">mIsNegative</a>=<span class="keyword">false</span>;
+<a name="l00092"></a>00092 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">skipLeadingZeros</a>();
+<a name="l00093"></a>00093 }
+<a name="l00094"></a>00094
+<a name="l00095"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a05165b7f45dea3e2459739d856d78288">00095</a> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a05165b7f45dea3e2459739d856d78288">data_t::alloc</a>(<span class="keywordtype">size_t</span> newcount, <span class="keywordtype">bool</span> copydigits) {
+<a name="l00096"></a>00096 <span class="keywordflow">if</span> (<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>==<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af91f399a0533e8cdf46ac021616e2500">mQuickDigits</a> &amp;&amp; newcount&lt;=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#ae820a83ad097f0cc70ba3f53ea00ab70">QuickDigits::count</a>) {
+<a name="l00097"></a>00097 <span class="keywordflow">if</span> (!copydigits) <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">zero</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#ae820a83ad097f0cc70ba3f53ea00ab70">QuickDigits::count</a>);
+<a name="l00098"></a>00098 <span class="keywordflow">else</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">zero</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>+<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>, (newcount-<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>));
+<a name="l00099"></a>00099 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>=newcount;
+<a name="l00100"></a>00100 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (newcount &lt; <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a02411914c8a9d59e3521b04367352ea5">mAllocated</a>) {
+<a name="l00101"></a>00101 <span class="keywordflow">if</span> (copydigits) {
+<a name="l00102"></a>00102 <span class="keywordflow">if</span> (newcount&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>) <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">zero</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>+<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>, newcount-<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>);
+<a name="l00103"></a>00103 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>=newcount;
+<a name="l00104"></a>00104 } <span class="keywordflow">else</span> {
+<a name="l00105"></a>00105 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>=newcount;
+<a name="l00106"></a>00106 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">zero</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>);
+<a name="l00107"></a>00107 }
+<a name="l00108"></a>00108 } <span class="keywordflow">else</span> {
+<a name="l00109"></a>00109 <span class="preprocessor"> #ifdef XINT_SECURE</span>
+<a name="l00110"></a>00110 <span class="preprocessor"></span> <span class="keywordtype">int</span> e=newcount;
+<a name="l00111"></a>00111 newcount=1;
+<a name="l00112"></a>00112 <span class="keywordflow">while</span> (newcount &lt; e) newcount &lt;&lt;= 1;
+<a name="l00113"></a>00113 <span class="preprocessor"> #endif</span>
+<a name="l00114"></a>00114 <span class="preprocessor"></span>
+<a name="l00115"></a>00115 <span class="keywordflow">if</span> (<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>==<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af91f399a0533e8cdf46ac021616e2500">mQuickDigits</a> &amp;&amp; copydigits) {
+<a name="l00116"></a>00116 <span class="keywordflow">try</span> {
+<a name="l00117"></a>00117 <span class="preprocessor"> #ifdef XINT_SECURE</span>
+<a name="l00118"></a>00118 <span class="preprocessor"></span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>=<span class="keyword">new</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>[newcount];
+<a name="l00119"></a>00119 <span class="preprocessor"> #else</span>
+<a name="l00120"></a>00120 <span class="preprocessor"></span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8867fdad2325f390790c1188e6f71219">mStorage</a>.resize(newcount);
+<a name="l00121"></a>00121 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>=&amp;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8867fdad2325f390790c1188e6f71219">mStorage</a>[0];
+<a name="l00122"></a>00122 <span class="preprocessor"> #endif</span>
+<a name="l00123"></a>00123 <span class="preprocessor"></span> } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
+<a name="l00124"></a>00124 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af91f399a0533e8cdf46ac021616e2500">mQuickDigits</a>; <span class="comment">// Might allow for recovery in some cases</span>
+<a name="l00125"></a>00125 <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a>(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
+<a name="l00126"></a>00126 }
+<a name="l00127"></a>00127
+<a name="l00128"></a>00128 memcpy(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af91f399a0533e8cdf46ac021616e2500">mQuickDigits</a>, <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>));
+<a name="l00129"></a>00129 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">zero</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>+<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>, newcount-<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>);
+<a name="l00130"></a>00130 } <span class="keywordflow">else</span> {
+<a name="l00131"></a>00131 <span class="preprocessor"> #ifdef XINT_SECURE</span>
+<a name="l00132"></a>00132 <span class="preprocessor"></span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *newDigits=0;
+<a name="l00133"></a>00133 <span class="keywordflow">try</span> {
+<a name="l00134"></a>00134 newDigits=<span class="keyword">new</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>[newcount];
+<a name="l00135"></a>00135 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
+<a name="l00136"></a>00136 <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a>(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
+<a name="l00137"></a>00137 }
+<a name="l00138"></a>00138
+<a name="l00139"></a>00139 <span class="keywordflow">if</span> (copydigits) {
+<a name="l00140"></a>00140 memcpy(newDigits, <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>));
+<a name="l00141"></a>00141 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">zero</a>(newDigits+<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>, newcount-<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>);
+<a name="l00142"></a>00142 } <span class="keywordflow">else</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">zero</a>(newDigits, newcount);
+<a name="l00143"></a>00143
+<a name="l00144"></a>00144 <span class="keywordflow">if</span> (<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>!=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af91f399a0533e8cdf46ac021616e2500">mQuickDigits</a>) {
+<a name="l00145"></a>00145 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">zero</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a02411914c8a9d59e3521b04367352ea5">mAllocated</a>);
+<a name="l00146"></a>00146 <span class="keyword">delete</span>[] <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>;
+<a name="l00147"></a>00147 }
+<a name="l00148"></a>00148 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>=newDigits;
+<a name="l00149"></a>00149 <span class="preprocessor"> #else</span>
+<a name="l00150"></a>00150 <span class="preprocessor"></span> <span class="keywordflow">try</span> {
+<a name="l00151"></a>00151 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8867fdad2325f390790c1188e6f71219">mStorage</a>.resize(newcount);
+<a name="l00152"></a>00152 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
+<a name="l00153"></a>00153 <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a>(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
+<a name="l00154"></a>00154 }
+<a name="l00155"></a>00155 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>=&amp;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8867fdad2325f390790c1188e6f71219">mStorage</a>[0];
+<a name="l00156"></a>00156 <span class="keywordflow">if</span> (!copydigits) <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">zero</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, newcount);
+<a name="l00157"></a>00157 <span class="preprocessor"> #endif</span>
+<a name="l00158"></a>00158 <span class="preprocessor"></span> }
+<a name="l00159"></a>00159 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a02411914c8a9d59e3521b04367352ea5">mAllocated</a>=newcount;
+<a name="l00160"></a>00160 }
+<a name="l00161"></a>00161 }
+<a name="l00162"></a>00162
+<a name="l00163"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8fd5f934c3ad8c1f9d38bb38ac89cfcd">00163</a> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8fd5f934c3ad8c1f9d38bb38ac89cfcd">data_t::copy</a>(<span class="keyword">const</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">data_t</a> *c, <span class="keywordtype">size_t</span> extraDigits) {
+<a name="l00164"></a>00164 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a05165b7f45dea3e2459739d856d78288">alloc</a>(c-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>+extraDigits);
+<a name="l00165"></a>00165
+<a name="l00166"></a>00166 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>=c-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>;
+<a name="l00167"></a>00167 <span class="keywordflow">if</span> (c-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>==1) *<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a> = *c-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>;
+<a name="l00168"></a>00168 <span class="keywordflow">else</span> memcpy(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, c-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>));
+<a name="l00169"></a>00169
+<a name="l00170"></a>00170 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">mIsNegative</a>=c-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">mIsNegative</a>;
+<a name="l00171"></a>00171
+<a name="l00172"></a>00172 <span class="comment">// Deliberately doesn&apos;t call skipLeadingZeros().</span>
+<a name="l00173"></a>00173 }
+<a name="l00174"></a>00174
+<a name="l00175"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">00175</a> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">data_t::zero</a>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *p, <span class="keywordtype">size_t</span> count) {
+<a name="l00176"></a>00176 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *pe=p+count;
+<a name="l00177"></a>00177 <span class="keywordflow">while</span> (p&lt;pe) *p++=0;
+<a name="l00178"></a>00178 }
+<a name="l00179"></a>00179
+<a name="l00180"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ad082d802e78dab68eb7409e09386e974">00180</a> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ad082d802e78dab68eb7409e09386e974">data_t::invert</a>() {
+<a name="l00181"></a>00181 assert(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">mCopies</a>==1);
+<a name="l00182"></a>00182
+<a name="l00183"></a>00183 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">mIsNegative</a>=!<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">mIsNegative</a>;
+<a name="l00184"></a>00184
+<a name="l00185"></a>00185 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *d=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, *e=d+<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>;
+<a name="l00186"></a>00186 <span class="keywordflow">while</span> (d&lt;e) {
+<a name="l00187"></a>00187 *d=<span class="keyword">static_cast&lt;</span><a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a> - 1 - *d);
+<a name="l00188"></a>00188 ++d;
+<a name="l00189"></a>00189 }
+<a name="l00190"></a>00190
+<a name="l00191"></a>00191 d=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>;
+<a name="l00192"></a>00192 <span class="keywordflow">while</span> (d&lt;e) {
+<a name="l00193"></a>00193 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> w=(*d)+1;
+<a name="l00194"></a>00194 (*d++)=static_cast&lt;digit_t&gt;(w);
+<a name="l00195"></a>00195 <span class="keywordflow">if</span> (w&lt;<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>) <span class="keywordflow">break</span>;
+<a name="l00196"></a>00196 }
+<a name="l00197"></a>00197
+<a name="l00198"></a>00198 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">skipLeadingZeros</a>();
+<a name="l00199"></a>00199 }
+<a name="l00200"></a>00200
+<a name="l00201"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a1207c8b514f44886ae98f6632b9726a1">00201</a> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a1207c8b514f44886ae98f6632b9726a1">data_t::negate</a>() {
+<a name="l00202"></a>00202 assert(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">mCopies</a>==1);
+<a name="l00203"></a>00203
+<a name="l00204"></a>00204 <span class="comment">// If it&apos;s zero, don&apos;t change the sign</span>
+<a name="l00205"></a>00205 <span class="keywordflow">if</span> (<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>&gt;1 || <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[0]!=0) <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">mIsNegative</a>=!<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">mIsNegative</a>;
+<a name="l00206"></a>00206 }
+<a name="l00207"></a>00207
+<a name="l00208"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ac723d73bc8845e6df77f3c439128b939">00208</a> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ac723d73bc8845e6df77f3c439128b939">data_t::add</a>(<span class="keyword">const</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">data_t</a>&amp; addend) {
+<a name="l00209"></a>00209 assert(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">mCopies</a>==1);
+<a name="l00210"></a>00210 assert(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a> &gt;= addend.<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>);
+<a name="l00211"></a>00211
+<a name="l00212"></a>00212 <span class="comment">// The answer to any addition problem contains, at most, one digit more</span>
+<a name="l00213"></a>00213 <span class="comment">// than the largest addend.</span>
+<a name="l00214"></a>00214 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3bdd8e8ef7c5b8bc888b96725aac9dfe">realloc</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>+1);
+<a name="l00215"></a>00215
+<a name="l00216"></a>00216 <span class="comment">// Now add the digits, starting at the least-significant digit.</span>
+<a name="l00217"></a>00217 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> carry=0;
+<a name="l00218"></a>00218 <span class="keywordtype">size_t</span> x=0;
+<a name="l00219"></a>00219 <span class="keywordflow">for</span> (; x&lt;addend.<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>; ++x) {
+<a name="l00220"></a>00220 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> t=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[x])+addend.<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[x]+carry;
+<a name="l00221"></a>00221 <span class="keywordflow">if</span> (t&gt;=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>) { carry=1; t-=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>; } <span class="keywordflow">else</span> carry=0;
+<a name="l00222"></a>00222 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[x]=<span class="keyword">static_cast&lt;</span><a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a><span class="keyword">&gt;</span>(t);
+<a name="l00223"></a>00223 }
+<a name="l00224"></a>00224
+<a name="l00225"></a>00225 <span class="keywordflow">while</span> (carry) {
+<a name="l00226"></a>00226 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> t=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[x])+1;
+<a name="l00227"></a>00227 <span class="keywordflow">if</span> (t&gt;=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>) { carry=1; t-=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>; } <span class="keywordflow">else</span> carry=0;
+<a name="l00228"></a>00228 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[x]=<span class="keyword">static_cast&lt;</span><a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a><span class="keyword">&gt;</span>(t);
+<a name="l00229"></a>00229 ++x;
+<a name="l00230"></a>00230 }
+<a name="l00231"></a>00231
+<a name="l00232"></a>00232 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">skipLeadingZeros</a>();
+<a name="l00233"></a>00233 }
+<a name="l00234"></a>00234
+<a name="l00235"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a138ee1d91bfa37d248c43ef66371e590">00235</a> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a138ee1d91bfa37d248c43ef66371e590">data_t::subtract</a>(<span class="keyword">const</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">data_t</a>&amp; subtrahend) {
+<a name="l00236"></a>00236 assert(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">mCopies</a>==1);
+<a name="l00237"></a>00237 assert(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a> &gt;= subtrahend.<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>);
+<a name="l00238"></a>00238
+<a name="l00239"></a>00239 <span class="comment">// For subtraction, the answer will always be less than or equal to the</span>
+<a name="l00240"></a>00240 <span class="comment">// size of the longest operand, so we&apos;ve already got enough room.</span>
+<a name="l00241"></a>00241
+<a name="l00242"></a>00242 <span class="comment">// Now subtract the digits, starting at the least-significant one.</span>
+<a name="l00243"></a>00243 <span class="keywordtype">size_t</span> x;
+<a name="l00244"></a>00244 <span class="keywordtype">int</span> borrow=0;
+<a name="l00245"></a>00245 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> t;
+<a name="l00246"></a>00246 <span class="keywordflow">for</span> (x=0; x&lt;subtrahend.<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>; ++x) {
+<a name="l00247"></a>00247 t=(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[x]+<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>)-subtrahend.<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[x]-borrow;
+<a name="l00248"></a>00248 if (t&lt;<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>) borrow=1; <span class="keywordflow">else</span> { borrow=0; t-=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>; }
+<a name="l00249"></a>00249 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[x]=<span class="keyword">static_cast&lt;</span><a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a><span class="keyword">&gt;</span>(t);
+<a name="l00250"></a>00250 }
+<a name="l00251"></a>00251
+<a name="l00252"></a>00252 <span class="keywordflow">for</span> (; x&lt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a> &amp;&amp; borrow; ++x) {
+<a name="l00253"></a>00253 t=(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[x]+<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>)-borrow;
+<a name="l00254"></a>00254 <span class="keywordflow">if</span> (t&lt;<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>) borrow=1; <span class="keywordflow">else</span> { borrow=0; t-=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>; }
+<a name="l00255"></a>00255 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[x]=<span class="keyword">static_cast&lt;</span><a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a><span class="keyword">&gt;</span>(t);
+<a name="l00256"></a>00256 }
+<a name="l00257"></a>00257
+<a name="l00258"></a>00258 <span class="keywordflow">if</span> (borrow) <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a1207c8b514f44886ae98f6632b9726a1">negate</a>();
+<a name="l00259"></a>00259 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">skipLeadingZeros</a>();
+<a name="l00260"></a>00260 }
+<a name="l00261"></a>00261
+<a name="l00262"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aaa43f067c7f1a7772276cf9a57ab653c">00262</a> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aaa43f067c7f1a7772276cf9a57ab653c">data_t::shift_left</a>(<span class="keywordtype">size_t</span> byBits) {
+<a name="l00263"></a>00263 assert(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">mCopies</a>==1);
+<a name="l00264"></a>00264 assert(byBits&gt;0);
+<a name="l00265"></a>00265
+<a name="l00266"></a>00266 <span class="keywordtype">size_t</span> bytes=byBits / <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>, bits=byBits % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
+<a name="l00267"></a>00267 <span class="keywordtype">size_t</span> oldLength=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>;
+<a name="l00268"></a>00268
+<a name="l00269"></a>00269 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3bdd8e8ef7c5b8bc888b96725aac9dfe">realloc</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>+bytes+1);
+<a name="l00270"></a>00270
+<a name="l00271"></a>00271 <span class="keywordflow">if</span> (bits != 0) {
+<a name="l00272"></a>00272 <span class="comment">// Handle both bits and bytes in one pass</span>
+<a name="l00273"></a>00273 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>+oldLength-1, *t=s+bytes+1;
+<a name="l00274"></a>00274
+<a name="l00275"></a>00275 *t-- = *s &gt;&gt; (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> - bits);
+<a name="l00276"></a>00276 <span class="keywordflow">while</span> (s &gt; <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>) {
+<a name="l00277"></a>00277 *t = (*s-- &lt;&lt; bits);
+<a name="l00278"></a>00278 *t-- |= (*s &gt;&gt; (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> - bits));
+<a name="l00279"></a>00279 }
+<a name="l00280"></a>00280 *t = (*s &lt;&lt; bits);
+<a name="l00281"></a>00281
+<a name="l00282"></a>00282 <span class="keywordflow">if</span> (bytes != 0) memset(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>) * bytes);
+<a name="l00283"></a>00283 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bytes != 0) {
+<a name="l00284"></a>00284 memmove(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>+bytes, <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, <span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>) * oldLength);
+<a name="l00285"></a>00285 memset(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>) * bytes);
+<a name="l00286"></a>00286 }
+<a name="l00287"></a>00287 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">skipLeadingZeros</a>();
+<a name="l00288"></a>00288 }
+<a name="l00289"></a>00289
+<a name="l00290"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ad28012e618ecab56b69ceac7585d1741">00290</a> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ad28012e618ecab56b69ceac7585d1741">data_t::shift_right</a>(<span class="keywordtype">size_t</span> byBits) {
+<a name="l00291"></a>00291 assert(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">mCopies</a>==1);
+<a name="l00292"></a>00292 assert(byBits&gt;0);
+<a name="l00293"></a>00293
+<a name="l00294"></a>00294 <span class="keywordtype">size_t</span> bytes=byBits / <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>, bits=byBits % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>,
+<a name="l00295"></a>00295 bits2 = <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> - bits;
+<a name="l00296"></a>00296
+<a name="l00297"></a>00297 <span class="keywordflow">if</span> (bytes &gt;= <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>) {
+<a name="l00298"></a>00298 <span class="comment">// Right-shift it into oblivion.</span>
+<a name="l00299"></a>00299 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>=1;
+<a name="l00300"></a>00300 *<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>=0;
+<a name="l00301"></a>00301 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits != 0) {
+<a name="l00302"></a>00302 <span class="comment">// Handle both bits and bytes in one pass</span>
+<a name="l00303"></a>00303 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, *s=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>+bytes, *se=<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>+<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>-1;
+<a name="l00304"></a>00304 <span class="keywordflow">while</span> (s!=se) {
+<a name="l00305"></a>00305 *t = (*s++ &gt;&gt; bits);
+<a name="l00306"></a>00306 *t++ |= (*s &lt;&lt; bits2);
+<a name="l00307"></a>00307 }
+<a name="l00308"></a>00308 *t = (*s &gt;&gt; bits);
+<a name="l00309"></a>00309 <span class="keywordflow">if</span> (bytes != 0) {
+<a name="l00310"></a>00310 memset(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>+mLength-bytes, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>) * bytes);
+<a name="l00311"></a>00311 mLength-=bytes;
+<a name="l00312"></a>00312 }
+<a name="l00313"></a>00313 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">skipLeadingZeros</a>();
+<a name="l00314"></a>00314 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bytes != 0) {
+<a name="l00315"></a>00315 memmove(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a> + bytes, <span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>) * (<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a> - bytes));
+<a name="l00316"></a>00316 memset(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a> + <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a> - bytes, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>) * bytes);
+<a name="l00317"></a>00317 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>-=bytes;
+<a name="l00318"></a>00318 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">skipLeadingZeros</a>();
+<a name="l00319"></a>00319 }
+<a name="l00320"></a>00320 }
+<a name="l00321"></a>00321
+<a name="l00322"></a>00322 } <span class="comment">// namespace detail</span>
+<a name="l00323"></a>00323 } <span class="comment">// namespace xint</span>
+<a name="l00324"></a>00324 } <span class="comment">// namespace boost</span>
 </pre></div></div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:07 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/dependencies.html
==============================================================================
--- sandbox/xint/doc/dependencies.html (original)
+++ sandbox/xint/doc/dependencies.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -36,7 +36,7 @@
 </ul>
 <p>With the exception of Boost.Thread, all of these are header-only libraries, meaning that you don't need to worry about linking your program with them. </p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/dependencies_8dox.html
==============================================================================
--- sandbox/xint/doc/dependencies_8dox.html (original)
+++ sandbox/xint/doc/dependencies_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/dependencies.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/dox/index.dox
==============================================================================
--- sandbox/xint/doc/dox/index.dox (original)
+++ sandbox/xint/doc/dox/index.dox 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -45,7 +45,7 @@
 all you need to do is add <code>\#include \<boost/xint/xint.hpp\></code> at the
 top of your source code file, and declare your variable as type \c
 boost::xint::integer. Then just use it the way you'd use any integer. If you
-need something more advanced, take a look in \link xint the reference
+need something more advanced, take a look in \link boost::xint the reference
 section\endlink and you just might find it.
 
 More information on how to use it can be found on the pages listed below.

Modified: sandbox/xint/doc/ex__fibonacci_8dox.html
==============================================================================
--- sandbox/xint/doc/ex__fibonacci_8dox.html (original)
+++ sandbox/xint/doc/ex__fibonacci_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/ex_fibonacci.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/ex_fibonacci.html
==============================================================================
--- sandbox/xint/doc/ex_fibonacci.html (original)
+++ sandbox/xint/doc/ex_fibonacci.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -31,7 +31,7 @@
 <span class="preprocessor">#include &lt;<a class="code" href="xint_8hpp.html" title="The main header file for the XInt library.">boost/xint/xint.hpp</a>&gt;</span>
 
 <span class="keywordtype">int</span> main() {
- <span class="keyword">using</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>;
+ <span class="keyword">using</span> xint::integer;
     <span class="keyword">using</span> std::cout;
     <span class="keyword">using</span> std::endl;
 
@@ -63,9 +63,9 @@
 }
 
 </pre></div><p>If you're not intimately familiar with the Fibonacci sequence, and how fast the numbers in it grow, the answer might shock you.</p>
-<p>As you can see, using the XInt library is just like using the native integer types -- except that an <code><a class="el" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a></code> won't overflow on you until you completely exhaust your system's memory. :-) </p>
+<p>As you can see, using the XInt library is just like using the native integer types -- except that an <code>xint::integer</code> won't overflow on you until you completely exhaust your system's memory. :-) </p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/exception__blocker_8cpp.html
==============================================================================
--- sandbox/xint/doc/exception__blocker_8cpp.html (original)
+++ sandbox/xint/doc/exception__blocker_8cpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -34,7 +34,8 @@
 <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>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All of the functions in the XInt library are within this namespace. </p>
 <br/></td></tr>
@@ -43,12 +44,12 @@
 <tr><td colspan="2"><div class="groupHeader">Exception-blocking and -allowing functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp6b736a9df3b9afabec548528235f28b6"></a> See the <a class="el" href="exceptions.html">exception-blocking page</a> for details on these functions and how to use them. </p>
 <br/><br/></div></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="mdescLeft">&nbsp;</td><td class="mdescRight">Query whether exceptions are currently allowed or blocked. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Temporarily prevent the library from throwing blockable exceptions. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Temprarily counteract an <a class="el" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c" title="Temporarily prevent the library from throwing blockable exceptions.">xint::block_exceptions</a> token to allow all exceptions. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a">boost::xint::exceptions_allowed</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query whether exceptions are currently allowed or blocked. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">token&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a23aac788de86c99b403a691954e016ad">boost::xint::block_exceptions</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Temporarily prevent the library from throwing blockable exceptions. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">token&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a6353146e15d8912324f5fa820674a75f">boost::xint::allow_exceptions</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Temprarily counteract an <a class="el" href="namespaceboost_1_1xint.html#a23aac788de86c99b403a691954e016ad" title="Temporarily prevent the library from throwing blockable exceptions.">xint::block_exceptions</a> token to allow all exceptions. <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Contains the definitions for the exception-blocker classes and functions. </p>
@@ -66,12 +67,12 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="exception__blocker_8cpp_source.html#l00048">48</a> of file <a class="el" href="exception__blocker_8cpp_source.html">exception_blocker.cpp</a>.</p>
+<p>Definition at line <a class="el" href="exception__blocker_8cpp_source.html#l00049">49</a> of file <a class="el" href="exception__blocker_8cpp_source.html">exception_blocker.cpp</a>.</p>
 
 </div>
 </div>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/exception__blocker_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/exception__blocker_8cpp_source.html (original)
+++ sandbox/xint/doc/exception__blocker_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -43,55 +43,56 @@
 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"> #include &lt;boost/thread.hpp&gt;</span>
 <a name="l00023"></a>00023 <span class="preprocessor">#endif</span>
 <a name="l00024"></a>00024 <span class="preprocessor"></span>
-<a name="l00025"></a>00025 <span class="keyword">namespace </span>xint {
-<a name="l00026"></a>00026 <span class="keyword">namespace </span>{
-<a name="l00027"></a>00027
-<a name="l00028"></a>00028 <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
-<a name="l00029"></a>00029 <span class="preprocessor"></span> boost::thread_specific_ptr&lt;bool&gt; allowed;
-<a name="l00030"></a>00030 <span class="preprocessor">#else</span>
-<a name="l00031"></a>00031 <span class="preprocessor"></span> <span class="keywordtype">bool</span> allowed=<span class="keyword">true</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 <span class="keyword">struct </span>EBlockerToken: <span class="keyword">public</span> detail::<a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582" title="Used for the exception-blocker.">token</a> {
-<a name="l00035"></a>00035 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
-<a name="l00036"></a>00036 <span class="preprocessor"></span> EBlockerToken(<span class="keywordtype">bool</span> newAllowState) {
-<a name="l00037"></a>00037 <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="l00038"></a>00038 <a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a>=*allowed;
-<a name="l00039"></a>00039 *allowed=newAllowState;
-<a name="l00040"></a>00040 }
-<a name="l00041"></a>00041 ~EBlockerToken() { *allowed=<a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a>; }
-<a name="l00042"></a>00042 <span class="preprocessor"> #else</span>
-<a name="l00043"></a>00043 <span class="preprocessor"></span> EBlockerToken(<span class="keywordtype">bool</span> newAllowState): <a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a>(allowed) {
-<a name="l00044"></a>00044 allowed=newAllowState; }
-<a name="l00045"></a>00045 ~EBlockerToken() { allowed=<a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</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="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">00048</a> <span class="keywordtype">bool</span> <a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a>;
-<a name="l00049"></a>00049 };
-<a name="l00050"></a>00050
-<a name="l00051"></a>00051 } <span class="comment">// namespace</span>
-<a name="l00052"></a>00052
-<a name="l00063"></a>00063 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>() {
-<a name="l00064"></a>00064 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
-<a name="l00065"></a>00065 <span class="preprocessor"></span> <span class="comment">// Defaults to true</span>
-<a name="l00066"></a>00066 <span class="keywordflow">return</span> (allowed.get()==0 || *allowed==<span class="keyword">true</span>);
-<a name="l00067"></a>00067 <span class="preprocessor"> #else</span>
-<a name="l00068"></a>00068 <span class="preprocessor"></span> <span class="keywordflow">return</span> allowed;
-<a name="l00069"></a>00069 <span class="preprocessor"> #endif</span>
-<a name="l00070"></a>00070 <span class="preprocessor"></span>}
-<a name="l00071"></a>00071
-<a name="l00084"></a>00084 <a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582" title="Used for the exception-blocker.">token</a> <a class="code" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c" title="Temporarily prevent the library from throwing blockable exceptions.">block_exceptions</a>() {
-<a name="l00085"></a>00085 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582" title="Used for the exception-blocker.">token</a>(<span class="keyword">new</span> EBlockerToken(<span class="keyword">false</span>));
-<a name="l00086"></a>00086 }
-<a name="l00087"></a>00087
-<a name="l00104"></a>00104 <a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582" title="Used for the exception-blocker.">token</a> <a class="code" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e" title="Temprarily counteract an xint::block_exceptions token to allow all exceptions.">allow_exceptions</a>() {
-<a name="l00105"></a>00105 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582" title="Used for the exception-blocker.">token</a>(<span class="keyword">new</span> EBlockerToken(<span class="keyword">true</span>));
-<a name="l00106"></a>00106 }
-<a name="l00107"></a>00107
-<a name="l00108"></a>00108 } <span class="comment">// namespace xint</span>
-<a name="l00109"></a>00109
+<a name="l00025"></a>00025 <span class="keyword">namespace </span>boost {
+<a name="l00026"></a>00026 <span class="keyword">namespace </span>xint {
+<a name="l00027"></a>00027 <span class="keyword">namespace </span>{
+<a name="l00028"></a>00028
+<a name="l00029"></a>00029 <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span> boost::thread_specific_ptr&lt;bool&gt; allowed;
+<a name="l00031"></a>00031 <span class="preprocessor">#else</span>
+<a name="l00032"></a>00032 <span class="preprocessor"></span> <span class="keywordtype">bool</span> allowed=<span class="keyword">true</span>;
+<a name="l00033"></a>00033 <span class="preprocessor">#endif</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>
+<a name="l00035"></a>00035 <span class="keyword">struct </span>EBlockerToken: <span class="keyword">public</span> detail::<a class="code" href="namespaceboost_1_1xint.html#a8554e5ef0fa7ba2da83c8f01a9bb1128" title="Used for the exception-blocker.">token</a> {
+<a name="l00036"></a>00036 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span> EBlockerToken(<span class="keywordtype">bool</span> newAllowState) {
+<a name="l00038"></a>00038 <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="l00039"></a>00039 <a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a>=*allowed;
+<a name="l00040"></a>00040 *allowed=newAllowState;
+<a name="l00041"></a>00041 }
+<a name="l00042"></a>00042 ~EBlockerToken() { *allowed=<a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a>; }
+<a name="l00043"></a>00043 <span class="preprocessor"> #else</span>
+<a name="l00044"></a>00044 <span class="preprocessor"></span> EBlockerToken(<span class="keywordtype">bool</span> newAllowState): <a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a>(allowed) {
+<a name="l00045"></a>00045 allowed=newAllowState; }
+<a name="l00046"></a>00046 ~EBlockerToken() { allowed=<a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</a>; }
+<a name="l00047"></a>00047 <span class="preprocessor"> #endif</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span>
+<a name="l00049"></a><a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">00049</a> <span class="keywordtype">bool</span> <a class="code" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">mOldState</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="l00064"></a>00064 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>() {
+<a name="l00065"></a>00065 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
+<a name="l00066"></a>00066 <span class="preprocessor"></span> <span class="comment">// Defaults to true</span>
+<a name="l00067"></a>00067 <span class="keywordflow">return</span> (allowed.get()==0 || *allowed==<span class="keyword">true</span>);
+<a name="l00068"></a>00068 <span class="preprocessor"> #else</span>
+<a name="l00069"></a>00069 <span class="preprocessor"></span> <span class="keywordflow">return</span> allowed;
+<a name="l00070"></a>00070 <span class="preprocessor"> #endif</span>
+<a name="l00071"></a>00071 <span class="preprocessor"></span>}
+<a name="l00072"></a>00072
+<a name="l00085"></a>00085 <a class="code" href="namespaceboost_1_1xint.html#a8554e5ef0fa7ba2da83c8f01a9bb1128" title="Used for the exception-blocker.">token</a> <a class="code" href="namespaceboost_1_1xint.html#a23aac788de86c99b403a691954e016ad" title="Temporarily prevent the library from throwing blockable exceptions.">block_exceptions</a>() {
+<a name="l00086"></a>00086 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a8554e5ef0fa7ba2da83c8f01a9bb1128" title="Used for the exception-blocker.">token</a>(<span class="keyword">new</span> EBlockerToken(<span class="keyword">false</span>));
+<a name="l00087"></a>00087 }
+<a name="l00088"></a>00088
+<a name="l00105"></a>00105 <a class="code" href="namespaceboost_1_1xint.html#a8554e5ef0fa7ba2da83c8f01a9bb1128" title="Used for the exception-blocker.">token</a> <a class="code" href="namespaceboost_1_1xint.html#a6353146e15d8912324f5fa820674a75f" title="Temprarily counteract an xint::block_exceptions token to allow all exceptions.">allow_exceptions</a>() {
+<a name="l00106"></a>00106 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a8554e5ef0fa7ba2da83c8f01a9bb1128" title="Used for the exception-blocker.">token</a>(<span class="keyword">new</span> EBlockerToken(<span class="keyword">true</span>));
+<a name="l00107"></a>00107 }
+<a name="l00108"></a>00108
+<a name="l00109"></a>00109 } <span class="comment">// namespace xint</span>
+<a name="l00110"></a>00110 } <span class="comment">// namespace boost</span>
 </pre></div></div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:07 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/exceptions.html
==============================================================================
--- sandbox/xint/doc/exceptions.html (original)
+++ sandbox/xint/doc/exceptions.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,13 +29,13 @@
 <p>This library includes a mechanism for preventing most exceptions from being thrown. This was added to give you, the developer using the library, maximum flexibility in dealing with its functions. You can choose to deal with errors by catching exceptions or by checking returned values for error codes, on a case-by-case basis, depending on which would make for easier or more readable code.</p>
 <h2><a class="anchor" id="howitworks">
 How it Works</a></h2>
-<p>When exceptions are blocked, any function that would normally throw a blockable exception will return a special value indicating failure instead. For functions that return an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>, this will be <a class="el" href="nan.html">the Not-a-Number value</a>; for other functions, the value will be noted in the documentation.</p>
+<p>When exceptions are blocked, any function that would normally throw a blockable exception will return a special value indicating failure instead. For functions that return an xint::integer, this will be <a class="el" href="nan.html">the Not-a-Number value</a>; for other functions, the value will be noted in the documentation.</p>
 <p>Note that, while most exceptions can be blocked, a few are unblockable, by design.</p>
 <dl class="warning"><dt><b>Warning:</b></dt><dd></dd></dl>
-<p>When exceptions are blocked, <em>any</em> function can return Not-a-Number under certain conditions, not just the ones listed as throwing exceptions. An insufficient-memory exception (<a class="el" href="classxint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a>), for instance, can happen nearly anywhere.</p>
+<p>When exceptions are blocked, <em>any</em> function can return Not-a-Number under certain conditions, not just the ones listed as throwing exceptions. An insufficient-memory exception (xint::overflow_error), for instance, can happen nearly anywhere.</p>
 <h2><a class="anchor" id="howtouse">
 How to Use the Functions</a></h2>
-<p>By default, the library throws exceptions when it can't complete the task you've asked it to do, and there's no other logical way to indicate an error. But when it is more convenient, most of the exceptions that the library might throw can be blocked, by holding the <a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582" title="Used for the exception-blocker.">xint::token</a> object returned by the <a class="el" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c" title="Temporarily prevent the library from throwing blockable exceptions.">xint::block_exceptions</a> function. Here's an example (which can be found in the <code>examples</code> subdirectory as exceptions.cpp):</p>
+<p>By default, the library throws exceptions when it can't complete the task you've asked it to do, and there's no other logical way to indicate an error. But when it is more convenient, most of the exceptions that the library might throw can be blocked, by holding the xint::token object returned by the xint::block_exceptions function. Here's an example (which can be found in the <code>examples</code> subdirectory as exceptions.cpp):</p>
 <div class="fragment"><pre class="fragment">
 <span class="preprocessor">#include &lt;<a class="code" href="xint_8hpp.html" title="The main header file for the XInt library.">boost/xint/xint.hpp</a>&gt;</span>
 <span class="preprocessor">#include &lt;ostream&gt;</span>
@@ -43,14 +43,14 @@
 <span class="keywordtype">int</span> main() {
     <span class="keyword">using namespace </span>std;
     <span class="keyword">using namespace </span>boost;
- <span class="keyword">using</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>;
+ <span class="keyword">using</span> xint::integer;
 
     integer n;
 
     <span class="comment">// It *is* possible to block exceptions multiple times, so this assert</span>
     <span class="comment">// checks to see whether they&apos;re presently allowed. It is not needed,</span>
     <span class="comment">// it&apos;s only here for demonstration purposes.</span>
- assert(<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">xint::exceptions_allowed</a>() == <span class="keyword">true</span>);
+ assert(<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">xint::exceptions_allowed</a>() == <span class="keyword">true</span>);
 
     <span class="comment">// We&apos;ll wrap this in a try block for demonstration purposes, just to</span>
     <span class="comment">// prove that it doesn&apos;t throw an exception. You normally don&apos;t need a</span>
@@ -58,10 +58,10 @@
     <span class="keywordflow">try</span> {
         <span class="comment">// Create the &quot;blocker&quot; token. Until the token is destroyed, exceptions</span>
         <span class="comment">// will be blocked, except when explicitly re-enabled.</span>
- <a class="code" href="structxint_1_1detail_1_1token.html" title="An empty struct, used in xint::token.">xint::token</a> blocker=<a class="code" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c" title="Temporarily prevent the library from throwing blockable exceptions.">xint::block_exceptions</a>();
+ <a class="code" href="namespaceboost_1_1xint.html#a8554e5ef0fa7ba2da83c8f01a9bb1128" title="Used for the exception-blocker.">xint::token</a> blocker=<a class="code" href="namespaceboost_1_1xint.html#a23aac788de86c99b403a691954e016ad" title="Temporarily prevent the library from throwing blockable exceptions.">xint::block_exceptions</a>();
 
         <span class="comment">// This assert is only here for demonstration purposes.</span>
- assert(<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">xint::exceptions_allowed</a>() == <span class="keyword">false</span>);
+ assert(<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">xint::exceptions_allowed</a>() == <span class="keyword">false</span>);
 
         <span class="comment">// Call the function(s) that should be exception-blocked. The example</span>
         <span class="comment">// call tries to interpret an empty string as an integer, which would</span>
@@ -90,12 +90,12 @@
     <span class="comment">// Now exceptions are re-enabled, because the blocking behavior ended when</span>
     <span class="comment">// the &quot;blocker&quot; token was destroyed at the end of the try block. Note that</span>
     <span class="comment">// this assert is not needed, it&apos;s only here for demonstration purposes.</span>
- assert(<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">xint::exceptions_allowed</a>() == <span class="keyword">true</span>);
+ assert(<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">xint::exceptions_allowed</a>() == <span class="keyword">true</span>);
 }
-</pre></div><p>If you need to ensure that exceptions are allowed, in one of your own functions that might be called with them blocked, you can hold the <a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582" title="Used for the exception-blocker.">xint::token</a> object returned by <a class="el" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e" title="Temprarily counteract an xint::block_exceptions token to allow all exceptions.">xint::allow_exceptions</a>. It works the same way.</p>
-<p><a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582" title="Used for the exception-blocker.">xint::token</a> objects should always be created on the stack, so that they are guaranteed to be destroyed in reverse order. If they are not, or if they are copied elsewhere, the results are undefined. </p>
+</pre></div><p>If you need to ensure that exceptions are allowed, in one of your own functions that might be called with them blocked, you can hold the xint::token object returned by xint::allow_exceptions. It works the same way.</p>
+<p>xint::token objects should always be created on the stack, so that they are guaranteed to be destroyed in reverse order. If they are not, or if they are copied elsewhere, the results are undefined. </p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/exceptions_8dox.html
==============================================================================
--- sandbox/xint/doc/exceptions_8dox.html (original)
+++ sandbox/xint/doc/exceptions_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/exceptions.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/files.html
==============================================================================
--- sandbox/xint/doc/files.html (original)
+++ sandbox/xint/doc/files.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -28,16 +28,16 @@
 <div class="contents">
 <h1>File List</h1>Here is a list of all files with brief descriptions:<table>
   <tr><td class="indexkey"><a class="el" href="xint_8hpp.html">xint.hpp</a> [code]</td><td class="indexvalue">The main header file for the XInt library </td></tr>
- <tr><td class="indexkey"><a class="el" href="xint__data__t_8hpp.html">xint_data_t.hpp</a> [code]</td><td class="indexvalue">Internal details of an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a> </td></tr>
+ <tr><td class="indexkey"><a class="el" href="xint__data__t_8hpp.html">xint_data_t.hpp</a> [code]</td><td class="indexvalue">Internal details of an xint::integer </td></tr>
   <tr><td class="indexkey"><a class="el" href="xint__monty_8hpp.html">xint_monty.hpp</a> [code]</td><td class="indexvalue">Internally-used functions </td></tr>
   <tr><td class="indexkey"><a class="el" href="xint__test_8hpp.html">xint_test.hpp</a> [code]</td><td class="indexvalue">Declares the library's self-testing functions </td></tr>
   <tr><td class="indexkey"><a class="el" href="bit__manipulations_8cpp.html">bit_manipulations.cpp</a> [code]</td><td class="indexvalue">Contains the bit-manipulation functions </td></tr>
   <tr><td class="indexkey"><a class="el" href="compare_8cpp.html">compare.cpp</a> [code]</td><td class="indexvalue">Contains the the compare function and comparison operators </td></tr>
   <tr><td class="indexkey"><a class="el" href="convert_8cpp.html">convert.cpp</a> [code]</td><td class="indexvalue">Contains the conversion functions </td></tr>
- <tr><td class="indexkey"><a class="el" href="data__t_8cpp.html">data_t.cpp</a> [code]</td><td class="indexvalue">Contains the definitions for <a class="el" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">xint::detail::data_t</a> member functions </td></tr>
+ <tr><td class="indexkey"><a class="el" href="data__t_8cpp.html">data_t.cpp</a> [code]</td><td class="indexvalue">Contains the definitions for xint::detail::data_t member functions </td></tr>
   <tr><td class="indexkey"><a class="el" href="exception__blocker_8cpp.html">exception_blocker.cpp</a> [code]</td><td class="indexvalue">Contains the definitions for the exception-blocker classes and functions </td></tr>
   <tr><td class="indexkey"><a class="el" href="gcd_8cpp.html">gcd.cpp</a> [code]</td><td class="indexvalue">Greatest Common Denominator and Least Common Multple </td></tr>
- <tr><td class="indexkey"><a class="el" href="integer_8cpp.html">integer.cpp</a> [code]</td><td class="indexvalue">Contains the definitions for the <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a> member functions </td></tr>
+ <tr><td class="indexkey"><a class="el" href="integer_8cpp.html">integer.cpp</a> [code]</td><td class="indexvalue">Contains the definitions for the xint::integer member functions </td></tr>
   <tr><td class="indexkey"><a class="el" href="misc_8cpp.html">misc.cpp</a> [code]</td><td class="indexvalue">Functions that don't fall into any other category </td></tr>
   <tr><td class="indexkey"><a class="el" href="modular_8cpp.html">modular.cpp</a> [code]</td><td class="indexvalue">Contains the definitions for the basic modular math functions </td></tr>
   <tr><td class="indexkey"><a class="el" href="monty_8cpp.html">monty.cpp</a> [code]</td><td class="indexvalue">Internally used functions </td></tr>
@@ -49,7 +49,7 @@
   <tr><td class="indexkey"><a class="el" href="roots_8cpp.html">roots.cpp</a> [code]</td><td class="indexvalue">Contains the definitions for functions related to roots of a number </td></tr>
 </table>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:52 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/functions.html
==============================================================================
--- sandbox/xint/doc/functions.html (original)
+++ sandbox/xint/doc/functions.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -60,313 +60,313 @@
 
 <h3><a class="anchor" id="index__">- _ -</a></h3><ul>
 <li>_get_data()
-: <a class="el" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">boost::xint::integer</a>
 </li>
 <li>_get_digit()
-: <a class="el" href="classxint_1_1integer.html#a33fe6f16dfba7b076f04a5ea40d8dccb">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a9b98d94930ac6e0c4a6add69f622e6e2">boost::xint::integer</a>
 </li>
 <li>_get_length()
-: <a class="el" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#ad4a65fa154847321803888988d18d244">boost::xint::integer</a>
 </li>
 <li>_make_unique()
-: <a class="el" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a04331a88bb2a975a7349e0c04cb230de">boost::xint::integer</a>
 </li>
 <li>_set_negative()
-: <a class="el" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#ae19edd0d1ee7ecc2d7115b3d489fed55">boost::xint::integer</a>
 </li>
 <li>_throw_if_nan()
-: <a class="el" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">boost::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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#ac723d73bc8845e6df77f3c439128b939">boost::xint::detail::data_t</a>
 </li>
 <li>alloc()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a05165b7f45dea3e2459739d856d78288">boost::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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#ae5e0fb03bd1a93e834bbbcbb11dcf845">boost::xint::detail::data_t</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_c">- c -</a></h3><ul>
 <li>cannot_represent()
-: <a class="el" href="classxint_1_1cannot__represent.html#ae551af601d2ab445a380a9c48e2a1db9">xint::cannot_represent</a>
+: <a class="el" href="classboost_1_1xint_1_1cannot__represent.html#a940b731d15c77c43abef5d6053fd5d75">boost::xint::cannot_represent</a>
 </li>
 <li>copy()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a66862f94545c953f6604b4347205277b">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8fd5f934c3ad8c1f9d38bb38ac89cfcd">boost::xint::detail::data_t</a>
 </li>
 <li>count
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#ae820a83ad097f0cc70ba3f53ea00ab70">boost::xint::detail::data_t::QuickDigits</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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a37dee31093efc13f9ad64171fd9c373a">boost::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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#aca622bc945c157c65cf5042b70eabd83">boost::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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">boost::xint::detail::data_t</a>
 </li>
 <li>dist_t
-: <a class="el" href="structxint_1_1detail_1_1random__generator.html#aab9830c38c791b5c3ac0ef8328573bfd">xint::detail::random_generator&lt; T &gt;</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html#ae206a1943d1e8d15efdf443f59cf1106">boost::xint::detail::random_generator&lt; T &gt;</a>
 </li>
 <li>divide_by_zero()
-: <a class="el" href="classxint_1_1divide__by__zero.html#a31233d42a45ca6ef7078e700fa114ad2">xint::divide_by_zero</a>
+: <a class="el" href="classboost_1_1xint_1_1divide__by__zero.html#a67f133dc2856d38d2664f3c8d8c73fe4">boost::xint::divide_by_zero</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_e">- e -</a></h3><ul>
 <li>entropy()
-: <a class="el" href="classxint_1_1strong__random__generator.html#a57ff17a9c2b36775acfedd53f5a0b30e">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a1faed1bfa2b68731ecc2cb15f78e035b">boost::xint::strong_random_generator</a>
 </li>
 <li>even()
-: <a class="el" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#afa36410b307d227f66657ea6f2116bdb">boost::xint::integer</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_g">- g -</a></h3><ul>
 <li>gen
-: <a class="el" href="structxint_1_1detail_1_1random__generator.html#a9a90a3050b2ff83d78ef8633deb5d42d">xint::detail::random_generator&lt; T &gt;</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a28fd023763b7e984033a3d7e632e41df">boost::xint::detail::random_generator&lt; T &gt;</a>
 </li>
 <li>gen_t
-: <a class="el" href="structxint_1_1detail_1_1random__generator.html#adbc88a70815fa4f72deb9bddaec86675">xint::detail::random_generator&lt; T &gt;</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a77f59e8237e125403e5304a54bf8e418">boost::xint::detail::random_generator&lt; T &gt;</a>
 </li>
 <li>genobj
-: <a class="el" href="structxint_1_1detail_1_1random__generator.html#a68bbea81955a1424f474b49040bcb007">xint::detail::random_generator&lt; T &gt;</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a6283923082acfdbeceb294acb0ee1075">boost::xint::detail::random_generator&lt; T &gt;</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_h">- h -</a></h3><ul>
 <li>has_fixed_range
-: <a class="el" href="classxint_1_1strong__random__generator.html#a1a808cca9189eb64f420e4745ca5122d">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a1fec38eaf8f94dbcb866e9ee495a1eef">boost::xint::strong_random_generator</a>
 </li>
 <li>hex_digits()
-: <a class="el" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#af9206e301a190df90fa2e76a30238c6f">boost::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#af5323a8fbfdfaa3cae371872ec865fc5">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#adbe737b8debc83a5a1fc0f92e39c6aa7">boost::xint::detail::data_t::QuickDigits</a>
 </li>
 <li>integer()
-: <a class="el" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600">boost::xint::integer</a>
 </li>
 <li>invalid_base()
-: <a class="el" href="classxint_1_1invalid__base.html#a16a577d5584652ca358450cbb55b5d55">xint::invalid_base</a>
+: <a class="el" href="classboost_1_1xint_1_1invalid__base.html#a73c7125da5b1425c27b9f20aa3845078">boost::xint::invalid_base</a>
 </li>
 <li>invalid_digit()
-: <a class="el" href="classxint_1_1invalid__digit.html#a832283e75569bd7e9d09f38ebae87a27">xint::invalid_digit</a>
+: <a class="el" href="classboost_1_1xint_1_1invalid__digit.html#a02be633b5225e22839b547c4b0e8d4ca">boost::xint::invalid_digit</a>
 </li>
 <li>invalid_modulus()
-: <a class="el" href="classxint_1_1invalid__modulus.html#a691026e352d38fc5120c12d6d134e854">xint::invalid_modulus</a>
+: <a class="el" href="classboost_1_1xint_1_1invalid__modulus.html#aab32f87b83c6d8deca7d3ce4e887e03b">boost::xint::invalid_modulus</a>
 </li>
 <li>invert()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#aaf6f202db416ad8fe18ec8a6c8c48904">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#ad082d802e78dab68eb7409e09386e974">boost::xint::detail::data_t</a>
 </li>
 <li>is_nan()
-: <a class="el" href="classxint_1_1integer.html#a0bca68386478755dc787f981d9cd5606">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a65fb2696f8506a6db16b8fb422c98ff5">boost::xint::integer</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#a3390530db8333b535f65d3cc01ff5236">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a02411914c8a9d59e3521b04367352ea5">boost::xint::detail::data_t</a>
 </li>
 <li>max()
-: <a class="el" href="classxint_1_1strong__random__generator.html#a1327ad0fe9d6f1f1c851456592b178db">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a4fa01769bdeb04ec7c55a7e8cb297922">boost::xint::strong_random_generator</a>
 </li>
 <li>max_value
-: <a class="el" href="classxint_1_1strong__random__generator.html#aea47e4fbf8b0fe5914ade7ce2704a3c3">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#ab1ae2657dfc2cbce1511d9991c21a68b">boost::xint::strong_random_generator</a>
 </li>
 <li>mCopies
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">boost::xint::detail::data_t</a>
 </li>
 <li>min()
-: <a class="el" href="classxint_1_1strong__random__generator.html#a5ec89070a7a7338c2b7318086efef701">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a6a7fac4a372011d55494e3b5dc7f3471">boost::xint::strong_random_generator</a>
 </li>
 <li>min_value
-: <a class="el" href="classxint_1_1strong__random__generator.html#a4bea7dba7f086441548dfee576e54fce">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a487dc7bc2b00f9e692957fc7f7b2da25">boost::xint::strong_random_generator</a>
 </li>
 <li>minimum
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#a8f2061e90bb9e89949f10f57accc1bbb">boost::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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">boost::xint::detail::data_t</a>
 </li>
 <li>mLength
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">boost::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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#af91f399a0533e8cdf46ac021616e2500">boost::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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8867fdad2325f390790c1188e6f71219">boost::xint::detail::data_t</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_n">- n -</a></h3><ul>
 <li>negate()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a1207c8b514f44886ae98f6632b9726a1">boost::xint::detail::data_t</a>
 </li>
 <li>no_strong_random()
-: <a class="el" href="classxint_1_1no__strong__random.html#a1ed9b4ac87613e636ad8f87bacf25544">xint::no_strong_random</a>
+: <a class="el" href="classboost_1_1xint_1_1no__strong__random.html#a4c6cd31c06363212c0f1e21ba6718d58">boost::xint::no_strong_random</a>
 </li>
 <li>not_a_number()
-: <a class="el" href="classxint_1_1not__a__number.html#a4ecc5bcc06a5d660176d51fc63c996cd">xint::not_a_number</a>
+: <a class="el" href="classboost_1_1xint_1_1not__a__number.html#a61a42fa00f7424f0e04e1f859fd40632">boost::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>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a5d17a8184d20e7829273f769550954c1">boost::xint::integer</a>
 </li>
 <li>one()
-: <a class="el" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">boost::xint::integer</a>
 </li>
 <li>operator%=()
-: <a class="el" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a1acfe3b61f26b7168fd103521f6deee9">boost::xint::integer</a>
 </li>
 <li>operator&amp;=()
-: <a class="el" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a717edb41c50edbd4b601c38b1fc6a8b0">boost::xint::integer</a>
 </li>
 <li>operator()()
-: <a class="el" href="structxint_1_1detail_1_1base__random__generator.html#aa7f3b20e2fcccbf9d3a5c76e6c89b4b5">xint::detail::base_random_generator</a>
-, <a class="el" href="structxint_1_1detail_1_1random__generator.html#ade9cefb3f061112ba1d3144aefd24f28">xint::detail::random_generator&lt; T &gt;</a>
-, <a class="el" href="classxint_1_1strong__random__generator.html#a2bbb1944511585f66e5daec4737bd4e7">xint::strong_random_generator</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html#ae6981f9d0ce6b201c150a5c9c6066814">boost::xint::detail::base_random_generator</a>
+, <a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a46fa82c3887acbfc9a0d1f3071aa8c96">boost::xint::detail::random_generator&lt; T &gt;</a>
+, <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#ae2afe16256095db48543b859530990b8">boost::xint::strong_random_generator</a>
 </li>
 <li>operator*=()
-: <a class="el" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a3452b0a1af51a556bdcb6a3d087b44db">boost::xint::integer</a>
 </li>
 <li>operator++()
-: <a class="el" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#ab15c60f8f28c2f520a26ab19e33c280c">boost::xint::integer</a>
 </li>
 <li>operator+=()
-: <a class="el" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a8ba263f6a5e51c15e3c51241d113c35e">boost::xint::integer</a>
 </li>
 <li>operator--()
-: <a class="el" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#aa535f200d1d95306aae3d5f991df4e8f">boost::xint::integer</a>
 </li>
 <li>operator-=()
-: <a class="el" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a92f8f3cb4e080c43d889103e7606b7ba">boost::xint::integer</a>
 </li>
 <li>operator/=()
-: <a class="el" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a9e630e1f2cf12d29ad01de9c44dc8e3c">boost::xint::integer</a>
 </li>
 <li>operator&lt;&lt;()
-: <a class="el" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#abc90075da0adaef0da2d0083e59af414">boost::xint::integer</a>
 </li>
 <li>operator&lt;&lt;=()
-: <a class="el" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a33f0a1167639a60ac8ad8ef0f3d3f585">boost::xint::integer</a>
 </li>
 <li>operator=()
-: <a class="el" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a9ae8cfa93f2e43cf0471266c54b06be2">boost::xint::integer</a>
 </li>
 <li>operator&gt;&gt;()
-: <a class="el" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a22af7cfcb28f97f4c8b78939265b46d6">boost::xint::integer</a>
 </li>
 <li>operator&gt;&gt;=()
-: <a class="el" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a0ca39c4cb36160461fb9848cc9e7f2d4">boost::xint::integer</a>
 </li>
 <li>operator^=()
-: <a class="el" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a40fdf2cd80d53e173aa5129fe02289c3">boost::xint::integer</a>
 </li>
 <li>operator|=()
-: <a class="el" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a1fa48e6c6cefec7ae672156d27e79ec6">boost::xint::integer</a>
 </li>
 <li>overflow_error()
-: <a class="el" href="classxint_1_1overflow__error.html#a126d839e9138532447e0de9e39d1b4c8">xint::overflow_error</a>
+: <a class="el" href="classboost_1_1xint_1_1overflow__error.html#a6f37c836a5c2083a7be660c0bf1aeb00">boost::xint::overflow_error</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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a231dab01a05e0c7f64e9c592537ddb14">boost::xint::detail::data_t</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_r">- r -</a></h3><ul>
 <li>random_generator()
-: <a class="el" href="structxint_1_1detail_1_1random__generator.html#a76ce5051cedd7e6e25dc46ac1fb90098">xint::detail::random_generator&lt; T &gt;</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a551b3fe4b897e4f86c7463586c6292ce">boost::xint::detail::random_generator&lt; T &gt;</a>
 </li>
 <li>realloc()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a2bb2c79d47f2fda3605f34b80cb58b8b">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3bdd8e8ef7c5b8bc888b96725aac9dfe">boost::xint::detail::data_t</a>
 </li>
 <li>result_type
-: <a class="el" href="structxint_1_1detail_1_1base__random__generator.html#a0556d7f290cd236303b3f1031611cb3e">xint::detail::base_random_generator</a>
-, <a class="el" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">xint::strong_random_generator</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html#a9694aa7d11ac533581d530037f23fd0a">boost::xint::detail::base_random_generator</a>
+, <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">boost::xint::strong_random_generator</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#a72785130c7c6490af874f450cf6e0086">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#aaa43f067c7f1a7772276cf9a57ab653c">boost::xint::detail::data_t</a>
 </li>
 <li>shift_right()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a432ace7094bca306dcba254f862e2428">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#ad28012e618ecab56b69ceac7585d1741">boost::xint::detail::data_t</a>
 </li>
 <li>sign()
-: <a class="el" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12">boost::xint::integer</a>
 </li>
 <li>skipLeadingZeros()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">boost::xint::detail::data_t</a>
 </li>
 <li>strong_random_generator()
-: <a class="el" href="classxint_1_1strong__random__generator.html#a8841d21b6614967e0520f55c3093871a">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a03606cc093b70870d2661aedccf12c26">boost::xint::strong_random_generator</a>
 </li>
 <li>subtract()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a138ee1d91bfa37d248c43ef66371e590">boost::xint::detail::data_t</a>
 </li>
 <li>suggested
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#aef1507c481b9f7d7326a7bee422906ae">boost::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#af57a30cd18f06bef869c35b9c98f6115">xint::too_big</a>
+: <a class="el" href="classboost_1_1xint_1_1too__big.html#a91ca4f8a23e008c2ffc13608179226f3">boost::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>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">boost::xint::integer</a>
+, <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">boost::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>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a3e254c8874a7a1f9a17a41505a18df35">boost::xint::integer</a>
 </li>
 <li>~strong_random_generator()
-: <a class="el" href="classxint_1_1strong__random__generator.html#ac75f659c2adb7c822d49fe534b2d76a4">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a38abfddb5372dc090429ba1c4132ad9c">boost::xint::strong_random_generator</a>
 </li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/functions_func.html
==============================================================================
--- sandbox/xint/doc/functions_func.html (original)
+++ sandbox/xint/doc/functions_func.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -59,251 +59,251 @@
 
 <h3><a class="anchor" id="index__">- _ -</a></h3><ul>
 <li>_get_data()
-: <a class="el" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">boost::xint::integer</a>
 </li>
 <li>_get_digit()
-: <a class="el" href="classxint_1_1integer.html#a33fe6f16dfba7b076f04a5ea40d8dccb">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a9b98d94930ac6e0c4a6add69f622e6e2">boost::xint::integer</a>
 </li>
 <li>_get_length()
-: <a class="el" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#ad4a65fa154847321803888988d18d244">boost::xint::integer</a>
 </li>
 <li>_make_unique()
-: <a class="el" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a04331a88bb2a975a7349e0c04cb230de">boost::xint::integer</a>
 </li>
 <li>_set_negative()
-: <a class="el" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#ae19edd0d1ee7ecc2d7115b3d489fed55">boost::xint::integer</a>
 </li>
 <li>_throw_if_nan()
-: <a class="el" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">boost::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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#ac723d73bc8845e6df77f3c439128b939">boost::xint::detail::data_t</a>
 </li>
 <li>alloc()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a05165b7f45dea3e2459739d856d78288">boost::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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#ae5e0fb03bd1a93e834bbbcbb11dcf845">boost::xint::detail::data_t</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_c">- c -</a></h3><ul>
 <li>cannot_represent()
-: <a class="el" href="classxint_1_1cannot__represent.html#ae551af601d2ab445a380a9c48e2a1db9">xint::cannot_represent</a>
+: <a class="el" href="classboost_1_1xint_1_1cannot__represent.html#a940b731d15c77c43abef5d6053fd5d75">boost::xint::cannot_represent</a>
 </li>
 <li>copy()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a66862f94545c953f6604b4347205277b">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8fd5f934c3ad8c1f9d38bb38ac89cfcd">boost::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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a37dee31093efc13f9ad64171fd9c373a">boost::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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#aca622bc945c157c65cf5042b70eabd83">boost::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>
+: <a class="el" href="classboost_1_1xint_1_1divide__by__zero.html#a67f133dc2856d38d2664f3c8d8c73fe4">boost::xint::divide_by_zero</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_e">- e -</a></h3><ul>
 <li>entropy()
-: <a class="el" href="classxint_1_1strong__random__generator.html#a57ff17a9c2b36775acfedd53f5a0b30e">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a1faed1bfa2b68731ecc2cb15f78e035b">boost::xint::strong_random_generator</a>
 </li>
 <li>even()
-: <a class="el" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#afa36410b307d227f66657ea6f2116bdb">boost::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>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#af9206e301a190df90fa2e76a30238c6f">boost::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>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600">boost::xint::integer</a>
 </li>
 <li>invalid_base()
-: <a class="el" href="classxint_1_1invalid__base.html#a16a577d5584652ca358450cbb55b5d55">xint::invalid_base</a>
+: <a class="el" href="classboost_1_1xint_1_1invalid__base.html#a73c7125da5b1425c27b9f20aa3845078">boost::xint::invalid_base</a>
 </li>
 <li>invalid_digit()
-: <a class="el" href="classxint_1_1invalid__digit.html#a832283e75569bd7e9d09f38ebae87a27">xint::invalid_digit</a>
+: <a class="el" href="classboost_1_1xint_1_1invalid__digit.html#a02be633b5225e22839b547c4b0e8d4ca">boost::xint::invalid_digit</a>
 </li>
 <li>invalid_modulus()
-: <a class="el" href="classxint_1_1invalid__modulus.html#a691026e352d38fc5120c12d6d134e854">xint::invalid_modulus</a>
+: <a class="el" href="classboost_1_1xint_1_1invalid__modulus.html#aab32f87b83c6d8deca7d3ce4e887e03b">boost::xint::invalid_modulus</a>
 </li>
 <li>invert()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#aaf6f202db416ad8fe18ec8a6c8c48904">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#ad082d802e78dab68eb7409e09386e974">boost::xint::detail::data_t</a>
 </li>
 <li>is_nan()
-: <a class="el" href="classxint_1_1integer.html#a0bca68386478755dc787f981d9cd5606">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a65fb2696f8506a6db16b8fb422c98ff5">boost::xint::integer</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_m">- m -</a></h3><ul>
 <li>max()
-: <a class="el" href="classxint_1_1strong__random__generator.html#a1327ad0fe9d6f1f1c851456592b178db">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a4fa01769bdeb04ec7c55a7e8cb297922">boost::xint::strong_random_generator</a>
 </li>
 <li>min()
-: <a class="el" href="classxint_1_1strong__random__generator.html#a5ec89070a7a7338c2b7318086efef701">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a6a7fac4a372011d55494e3b5dc7f3471">boost::xint::strong_random_generator</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_n">- n -</a></h3><ul>
 <li>negate()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a1207c8b514f44886ae98f6632b9726a1">boost::xint::detail::data_t</a>
 </li>
 <li>no_strong_random()
-: <a class="el" href="classxint_1_1no__strong__random.html#a1ed9b4ac87613e636ad8f87bacf25544">xint::no_strong_random</a>
+: <a class="el" href="classboost_1_1xint_1_1no__strong__random.html#a4c6cd31c06363212c0f1e21ba6718d58">boost::xint::no_strong_random</a>
 </li>
 <li>not_a_number()
-: <a class="el" href="classxint_1_1not__a__number.html#a4ecc5bcc06a5d660176d51fc63c996cd">xint::not_a_number</a>
+: <a class="el" href="classboost_1_1xint_1_1not__a__number.html#a61a42fa00f7424f0e04e1f859fd40632">boost::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>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a5d17a8184d20e7829273f769550954c1">boost::xint::integer</a>
 </li>
 <li>one()
-: <a class="el" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">boost::xint::integer</a>
 </li>
 <li>operator%=()
-: <a class="el" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a1acfe3b61f26b7168fd103521f6deee9">boost::xint::integer</a>
 </li>
 <li>operator&amp;=()
-: <a class="el" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a717edb41c50edbd4b601c38b1fc6a8b0">boost::xint::integer</a>
 </li>
 <li>operator()()
-: <a class="el" href="structxint_1_1detail_1_1base__random__generator.html#aa7f3b20e2fcccbf9d3a5c76e6c89b4b5">xint::detail::base_random_generator</a>
-, <a class="el" href="structxint_1_1detail_1_1random__generator.html#ade9cefb3f061112ba1d3144aefd24f28">xint::detail::random_generator&lt; T &gt;</a>
-, <a class="el" href="classxint_1_1strong__random__generator.html#a2bbb1944511585f66e5daec4737bd4e7">xint::strong_random_generator</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html#ae6981f9d0ce6b201c150a5c9c6066814">boost::xint::detail::base_random_generator</a>
+, <a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a46fa82c3887acbfc9a0d1f3071aa8c96">boost::xint::detail::random_generator&lt; T &gt;</a>
+, <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#ae2afe16256095db48543b859530990b8">boost::xint::strong_random_generator</a>
 </li>
 <li>operator*=()
-: <a class="el" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a3452b0a1af51a556bdcb6a3d087b44db">boost::xint::integer</a>
 </li>
 <li>operator++()
-: <a class="el" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#ab15c60f8f28c2f520a26ab19e33c280c">boost::xint::integer</a>
 </li>
 <li>operator+=()
-: <a class="el" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a8ba263f6a5e51c15e3c51241d113c35e">boost::xint::integer</a>
 </li>
 <li>operator--()
-: <a class="el" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#aa535f200d1d95306aae3d5f991df4e8f">boost::xint::integer</a>
 </li>
 <li>operator-=()
-: <a class="el" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a92f8f3cb4e080c43d889103e7606b7ba">boost::xint::integer</a>
 </li>
 <li>operator/=()
-: <a class="el" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a9e630e1f2cf12d29ad01de9c44dc8e3c">boost::xint::integer</a>
 </li>
 <li>operator&lt;&lt;()
-: <a class="el" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#abc90075da0adaef0da2d0083e59af414">boost::xint::integer</a>
 </li>
 <li>operator&lt;&lt;=()
-: <a class="el" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a33f0a1167639a60ac8ad8ef0f3d3f585">boost::xint::integer</a>
 </li>
 <li>operator=()
-: <a class="el" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a9ae8cfa93f2e43cf0471266c54b06be2">boost::xint::integer</a>
 </li>
 <li>operator&gt;&gt;()
-: <a class="el" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a22af7cfcb28f97f4c8b78939265b46d6">boost::xint::integer</a>
 </li>
 <li>operator&gt;&gt;=()
-: <a class="el" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a0ca39c4cb36160461fb9848cc9e7f2d4">boost::xint::integer</a>
 </li>
 <li>operator^=()
-: <a class="el" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a40fdf2cd80d53e173aa5129fe02289c3">boost::xint::integer</a>
 </li>
 <li>operator|=()
-: <a class="el" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a1fa48e6c6cefec7ae672156d27e79ec6">boost::xint::integer</a>
 </li>
 <li>overflow_error()
-: <a class="el" href="classxint_1_1overflow__error.html#a126d839e9138532447e0de9e39d1b4c8">xint::overflow_error</a>
+: <a class="el" href="classboost_1_1xint_1_1overflow__error.html#a6f37c836a5c2083a7be660c0bf1aeb00">boost::xint::overflow_error</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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a231dab01a05e0c7f64e9c592537ddb14">boost::xint::detail::data_t</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_r">- r -</a></h3><ul>
 <li>random_generator()
-: <a class="el" href="structxint_1_1detail_1_1random__generator.html#a76ce5051cedd7e6e25dc46ac1fb90098">xint::detail::random_generator&lt; T &gt;</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a551b3fe4b897e4f86c7463586c6292ce">boost::xint::detail::random_generator&lt; T &gt;</a>
 </li>
 <li>realloc()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a2bb2c79d47f2fda3605f34b80cb58b8b">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3bdd8e8ef7c5b8bc888b96725aac9dfe">boost::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#a72785130c7c6490af874f450cf6e0086">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#aaa43f067c7f1a7772276cf9a57ab653c">boost::xint::detail::data_t</a>
 </li>
 <li>shift_right()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a432ace7094bca306dcba254f862e2428">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#ad28012e618ecab56b69ceac7585d1741">boost::xint::detail::data_t</a>
 </li>
 <li>sign()
-: <a class="el" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">xint::integer</a>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12">boost::xint::integer</a>
 </li>
 <li>skipLeadingZeros()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">boost::xint::detail::data_t</a>
 </li>
 <li>strong_random_generator()
-: <a class="el" href="classxint_1_1strong__random__generator.html#a8841d21b6614967e0520f55c3093871a">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a03606cc093b70870d2661aedccf12c26">boost::xint::strong_random_generator</a>
 </li>
 <li>subtract()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a138ee1d91bfa37d248c43ef66371e590">boost::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#af57a30cd18f06bef869c35b9c98f6115">xint::too_big</a>
+: <a class="el" href="classboost_1_1xint_1_1too__big.html#a91ca4f8a23e008c2ffc13608179226f3">boost::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>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">boost::xint::integer</a>
+, <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">boost::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>
+: <a class="el" href="classboost_1_1xint_1_1integer.html#a3e254c8874a7a1f9a17a41505a18df35">boost::xint::integer</a>
 </li>
 <li>~strong_random_generator()
-: <a class="el" href="classxint_1_1strong__random__generator.html#ac75f659c2adb7c822d49fe534b2d76a4">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a38abfddb5372dc090429ba1c4132ad9c">boost::xint::strong_random_generator</a>
 </li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/functions_type.html
==============================================================================
--- sandbox/xint/doc/functions_type.html (original)
+++ sandbox/xint/doc/functions_type.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -37,18 +37,18 @@
 <div class="contents">
 &nbsp;<ul>
 <li>dist_t
-: <a class="el" href="structxint_1_1detail_1_1random__generator.html#aab9830c38c791b5c3ac0ef8328573bfd">xint::detail::random_generator&lt; T &gt;</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html#ae206a1943d1e8d15efdf443f59cf1106">boost::xint::detail::random_generator&lt; T &gt;</a>
 </li>
 <li>gen_t
-: <a class="el" href="structxint_1_1detail_1_1random__generator.html#adbc88a70815fa4f72deb9bddaec86675">xint::detail::random_generator&lt; T &gt;</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a77f59e8237e125403e5304a54bf8e418">boost::xint::detail::random_generator&lt; T &gt;</a>
 </li>
 <li>result_type
-: <a class="el" href="structxint_1_1detail_1_1base__random__generator.html#a0556d7f290cd236303b3f1031611cb3e">xint::detail::base_random_generator</a>
-, <a class="el" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">xint::strong_random_generator</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html#a9694aa7d11ac533581d530037f23fd0a">boost::xint::detail::base_random_generator</a>
+, <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">boost::xint::strong_random_generator</a>
 </li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/functions_vars.html
==============================================================================
--- sandbox/xint/doc/functions_vars.html (original)
+++ sandbox/xint/doc/functions_vars.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -37,56 +37,56 @@
 <div class="contents">
 &nbsp;<ul>
 <li>count
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#ae820a83ad097f0cc70ba3f53ea00ab70">boost::xint::detail::data_t::QuickDigits</a>
 </li>
 <li>digits
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">boost::xint::detail::data_t</a>
 </li>
 <li>gen
-: <a class="el" href="structxint_1_1detail_1_1random__generator.html#a9a90a3050b2ff83d78ef8633deb5d42d">xint::detail::random_generator&lt; T &gt;</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a28fd023763b7e984033a3d7e632e41df">boost::xint::detail::random_generator&lt; T &gt;</a>
 </li>
 <li>genobj
-: <a class="el" href="structxint_1_1detail_1_1random__generator.html#a68bbea81955a1424f474b49040bcb007">xint::detail::random_generator&lt; T &gt;</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a6283923082acfdbeceb294acb0ee1075">boost::xint::detail::random_generator&lt; T &gt;</a>
 </li>
 <li>has_fixed_range
-: <a class="el" href="classxint_1_1strong__random__generator.html#a1a808cca9189eb64f420e4745ca5122d">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a1fec38eaf8f94dbcb866e9ee495a1eef">boost::xint::strong_random_generator</a>
 </li>
 <li>intbits
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#af5323a8fbfdfaa3cae371872ec865fc5">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#adbe737b8debc83a5a1fc0f92e39c6aa7">boost::xint::detail::data_t::QuickDigits</a>
 </li>
 <li>mAllocated
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a02411914c8a9d59e3521b04367352ea5">boost::xint::detail::data_t</a>
 </li>
 <li>max_value
-: <a class="el" href="classxint_1_1strong__random__generator.html#aea47e4fbf8b0fe5914ade7ce2704a3c3">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#ab1ae2657dfc2cbce1511d9991c21a68b">boost::xint::strong_random_generator</a>
 </li>
 <li>mCopies
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">boost::xint::detail::data_t</a>
 </li>
 <li>min_value
-: <a class="el" href="classxint_1_1strong__random__generator.html#a4bea7dba7f086441548dfee576e54fce">xint::strong_random_generator</a>
+: <a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a487dc7bc2b00f9e692957fc7f7b2da25">boost::xint::strong_random_generator</a>
 </li>
 <li>minimum
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#a8f2061e90bb9e89949f10f57accc1bbb">boost::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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">boost::xint::detail::data_t</a>
 </li>
 <li>mLength
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">xint::detail::data_t</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">boost::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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#af91f399a0533e8cdf46ac021616e2500">boost::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>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8867fdad2325f390790c1188e6f71219">boost::xint::detail::data_t</a>
 </li>
 <li>suggested
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#aef1507c481b9f7d7326a7bee422906ae">boost::xint::detail::data_t::QuickDigits</a>
 </li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/gcd_8cpp.html
==============================================================================
--- sandbox/xint/doc/gcd_8cpp.html (original)
+++ sandbox/xint/doc/gcd_8cpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -34,7 +34,8 @@
 <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>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All of the functions in the XInt library are within this namespace. </p>
 <br/></td></tr>
@@ -43,19 +44,19 @@
 <tr><td colspan="2"><div class="groupHeader">Miscellaneous functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp458f92801f3edfaf2e30b1f530c324e2"></a> </p>
 <br/><br/></div></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="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the Greatest Common Denominator of two integers. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the Least Common Multiple of two integers. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab551ac5968fdbcc639318b6f294da2cd">boost::xint::gcd</a> (const integer &amp;num1, const integer &amp;num2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the Greatest Common Denominator of two integers. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0096ae57d50e4fe8b5413ea7a4e60495">boost::xint::lcm</a> (const integer &amp;num1, const integer &amp;num2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the Least Common Multiple of two integers. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Modular math functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpbf63e6a6a1029bb25b7aa51052b38655"></a>A common reason to use a large-integer library is to implement public-key encryption, and the algorithms for such encryption often use modular math. </p>
 <br/><br/></div></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="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular inverse of a number in a modulus, if there is one. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a1e2477157ea768d8c57fac1c31a8f7ca">boost::xint::invmod</a> (const integer &amp;n, const integer &amp;m)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular inverse of a number in a modulus, if there is one. <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Greatest Common Denominator and Least Common Multple. </p>
-<p>Also holds the definition for <a class="el" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66" title="Get the modular inverse of a number in a modulus, if there is one.">xint::invmod</a>, since it uses the GCD algorithm. </p>
+<p>Also holds the definition for xint::invmod, since it uses the GCD algorithm. </p>
 
 <p>Definition in file <a class="el" href="gcd_8cpp_source.html">gcd.cpp</a>.</p>
 <hr/><h2>Variable Documentation</h2>
@@ -70,7 +71,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="gcd_8cpp_source.html#l00055">55</a> of file <a class="el" href="gcd_8cpp_source.html">gcd.cpp</a>.</p>
+<p>Definition at line <a class="el" href="gcd_8cpp_source.html#l00056">56</a> of file <a class="el" href="gcd_8cpp_source.html">gcd.cpp</a>.</p>
 
 </div>
 </div>
@@ -85,7 +86,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="gcd_8cpp_source.html#l00055">55</a> of file <a class="el" href="gcd_8cpp_source.html">gcd.cpp</a>.</p>
+<p>Definition at line <a class="el" href="gcd_8cpp_source.html#l00056">56</a> of file <a class="el" href="gcd_8cpp_source.html">gcd.cpp</a>.</p>
 
 </div>
 </div>
@@ -100,12 +101,12 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="gcd_8cpp_source.html#l00055">55</a> of file <a class="el" href="gcd_8cpp_source.html">gcd.cpp</a>.</p>
+<p>Definition at line <a class="el" href="gcd_8cpp_source.html#l00056">56</a> of file <a class="el" href="gcd_8cpp_source.html">gcd.cpp</a>.</p>
 
 </div>
 </div>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/gcd_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/gcd_8cpp_source.html (original)
+++ sandbox/xint/doc/gcd_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -39,102 +39,104 @@
 <a name="l00013"></a>00013
 <a name="l00020"></a>00020 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
 <a name="l00021"></a>00021
-<a name="l00022"></a>00022 <span class="keyword">namespace </span>xint {
-<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="keyword">struct </span>gcd_core {
-<a name="l00027"></a>00027 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="l00028"></a>00028 <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="l00029"></a>00029 {
-<a name="l00030"></a>00030 integer t1=m, t2=n-<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>(), t3=m;
-<a name="l00031"></a>00031 <span class="keywordflow">do</span> {
-<a name="l00032"></a>00032 <span class="keywordflow">do</span> {
-<a name="l00033"></a>00033 <span class="keywordflow">if</span> (<a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a>.even()) {
-<a name="l00034"></a>00034 <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="l00035"></a>00035 <a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a> &gt;&gt;= 1;
-<a name="l00036"></a>00036 <a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a> &gt;&gt;= 1;
-<a name="l00037"></a>00037 <a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a> &gt;&gt;= 1;
-<a name="l00038"></a>00038 }
-<a name="l00039"></a>00039
-<a name="l00040"></a>00040 <span class="keywordflow">if</span> (t3.even() || <a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a> &lt; t3) {
-<a name="l00041"></a>00041 <span class="comment">// Swap the u&apos;s with the t&apos;s</span>
-<a name="l00042"></a>00042 std::swap(<a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a>, t1);
-<a name="l00043"></a>00043 std::swap(<a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a>, t2);
-<a name="l00044"></a>00044 std::swap(<a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a>, t3);
-<a name="l00045"></a>00045 }
-<a name="l00046"></a>00046 } <span class="keywordflow">while</span> (<a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a>.even());
-<a name="l00047"></a>00047
-<a name="l00048"></a>00048 <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="l00049"></a>00049 <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="l00050"></a>00050 } <span class="keywordflow">while</span> (t3 &gt; 0);
-<a name="l00051"></a>00051
-<a name="l00052"></a>00052 <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="l00053"></a>00053 }
-<a name="l00054"></a>00054
-<a name="l00055"></a><a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">00055</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="l00056"></a>00056 };
-<a name="l00057"></a>00057
-<a name="l00058"></a>00058 } <span class="comment">// namespace</span>
-<a name="l00059"></a>00059
-<a name="l00067"></a>00067 integer <a class="code" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) {
-<a name="l00068"></a>00068 num1.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00069"></a>00069 num2._throw_if_nan();
-<a name="l00070"></a>00070
-<a name="l00071"></a>00071 <span class="keywordtype">int</span> sign1=num1.sign(), sign2=num2.sign();
-<a name="l00072"></a>00072 <span class="keywordflow">if</span> (sign1==0 &amp;&amp; sign2==0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>();
-<a name="l00073"></a>00073 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1==0) <span class="keywordflow">return</span> num2;
-<a name="l00074"></a>00074 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2==0) <span class="keywordflow">return</span> num1;
-<a name="l00075"></a>00075
-<a name="l00076"></a>00076 integer n(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba" title="Returns the absolute value of an integer.">abs</a>(num1)), m(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba" title="Returns the absolute value of an integer.">abs</a>(num2));
-<a name="l00077"></a>00077
-<a name="l00078"></a>00078 <span class="keywordtype">size_t</span> k=0;
-<a name="l00079"></a>00079 <span class="keywordflow">while</span> (n.even() &amp;&amp; m.even()) { ++k; n &gt;&gt;= 1; m &gt;&gt;= 1; }
-<a name="l00080"></a>00080
-<a name="l00081"></a>00081 gcd_core core(n, m);
-<a name="l00082"></a>00082
-<a name="l00083"></a>00083 <span class="keywordflow">if</span> (core.u3.sign() != 0) <span class="keywordflow">return</span> core.u3 &lt;&lt; k;
-<a name="l00084"></a>00084 <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>() &lt;&lt; k;
-<a name="l00085"></a>00085 }
-<a name="l00086"></a>00086
-<a name="l00095"></a>00095 integer <a class="code" href="namespacexint.html#a17c5e4e807cfa425f48d9f5b464bc8dc" title="Calculate the Least Common Multiple of two integers.">lcm</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) {
-<a name="l00096"></a>00096 <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">integer::zero</a>();
-<a name="l00097"></a>00097 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba" title="Returns the absolute value of an integer.">abs</a>(num1 * num2) / <a class="code" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(num1, num2);
-<a name="l00098"></a>00098 }
-<a name="l00099"></a>00099
-<a name="l00113"></a>00113 integer <a class="code" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m) {
-<a name="l00114"></a>00114 <span class="comment">// Calculates the modular inverse of n mod m, or (n^(-1)) mod m</span>
-<a name="l00115"></a>00115 <span class="comment">// Defined as b, where n*b corresponds to 1 (mod m)</span>
-<a name="l00116"></a>00116 <span class="keywordflow">if</span> (m &lt; <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>()) {
-<a name="l00117"></a>00117 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus();
-<a name="l00118"></a>00118 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>();
-<a name="l00119"></a>00119 }
-<a name="l00120"></a>00120
-<a name="l00121"></a>00121 <span class="keywordtype">int</span> sign=n.sign();
-<a name="l00122"></a>00122 <span class="keywordflow">if</span> (sign==0) {
-<a name="l00123"></a>00123 <span class="keywordflow">return</span> integer(not_a_number());
-<a name="l00124"></a>00124 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n.sign() &lt; 0) {
-<a name="l00125"></a>00125 integer _n(n);
-<a name="l00126"></a>00126 _n._set_negative(<span class="keyword">false</span>);
-<a name="l00127"></a>00127
-<a name="l00128"></a>00128 integer nn=<a class="code" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(_n, m);
-<a name="l00129"></a>00129 <span class="keywordflow">if</span> (nn.is_nan()) <span class="keywordflow">return</span> nn;
-<a name="l00130"></a>00130
-<a name="l00131"></a>00131 nn._set_negative(<span class="keyword">true</span>);
-<a name="l00132"></a>00132 <span class="keywordflow">return</span> nn + m;
-<a name="l00133"></a>00133 }
-<a name="l00134"></a>00134
-<a name="l00135"></a>00135 <span class="keywordflow">if</span> (n.even() &amp;&amp; m.even()) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>(); <span class="comment">// GCD(x,y)!=1, no inverse possible.</span>
-<a name="l00136"></a>00136
-<a name="l00137"></a>00137 gcd_core core(n, m);
-<a name="l00138"></a>00138
-<a name="l00139"></a>00139 <span class="keywordflow">if</span> (core.u3 != <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>()) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>(); <span class="comment">// GCD(x,y)!=1, no inverse possible.</span>
-<a name="l00140"></a>00140 <span class="keywordflow">return</span> core.u1;
-<a name="l00141"></a>00141 }
-<a name="l00142"></a>00142
-<a name="l00143"></a>00143 } <span class="comment">// namespace xint</span>
+<a name="l00022"></a>00022 <span class="keyword">namespace </span>boost {
+<a name="l00023"></a>00023 <span class="keyword">namespace </span>xint {
+<a name="l00024"></a>00024
+<a name="l00025"></a>00025 <span class="keyword">namespace </span>{
+<a name="l00026"></a>00026
+<a name="l00027"></a>00027 <span class="keyword">struct </span>gcd_core {
+<a name="l00028"></a>00028 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="l00029"></a>00029 <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="l00030"></a>00030 {
+<a name="l00031"></a>00031 integer t1=m, t2=n-<a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>(), t3=m;
+<a name="l00032"></a>00032 <span class="keywordflow">do</span> {
+<a name="l00033"></a>00033 <span class="keywordflow">do</span> {
+<a name="l00034"></a>00034 <span class="keywordflow">if</span> (<a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a>.even()) {
+<a name="l00035"></a>00035 <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="l00036"></a>00036 <a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a> &gt;&gt;= 1;
+<a name="l00037"></a>00037 <a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a> &gt;&gt;= 1;
+<a name="l00038"></a>00038 <a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a> &gt;&gt;= 1;
+<a name="l00039"></a>00039 }
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 <span class="keywordflow">if</span> (t3.even() || <a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a> &lt; t3) {
+<a name="l00042"></a>00042 <span class="comment">// Swap the u&apos;s with the t&apos;s</span>
+<a name="l00043"></a>00043 std::swap(<a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a>, t1);
+<a name="l00044"></a>00044 std::swap(<a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a>, t2);
+<a name="l00045"></a>00045 std::swap(<a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a>, t3);
+<a name="l00046"></a>00046 }
+<a name="l00047"></a>00047 } <span class="keywordflow">while</span> (<a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a>.even());
+<a name="l00048"></a>00048
+<a name="l00049"></a>00049 <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="l00050"></a>00050 <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="l00051"></a>00051 } <span class="keywordflow">while</span> (t3 &gt; 0);
+<a name="l00052"></a>00052
+<a name="l00053"></a>00053 <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="l00054"></a>00054 }
+<a name="l00055"></a>00055
+<a name="l00056"></a><a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">00056</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="l00057"></a>00057 };
+<a name="l00058"></a>00058
+<a name="l00059"></a>00059 } <span class="comment">// namespace</span>
+<a name="l00060"></a>00060
+<a name="l00068"></a>00068 integer <a class="code" href="namespaceboost_1_1xint.html#ab551ac5968fdbcc639318b6f294da2cd" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) {
+<a name="l00069"></a>00069 num1.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00070"></a>00070 num2._throw_if_nan();
+<a name="l00071"></a>00071
+<a name="l00072"></a>00072 <span class="keywordtype">int</span> sign1=num1.sign(), sign2=num2.sign();
+<a name="l00073"></a>00073 <span class="keywordflow">if</span> (sign1==0 &amp;&amp; sign2==0) <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>();
+<a name="l00074"></a>00074 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1==0) <span class="keywordflow">return</span> num2;
+<a name="l00075"></a>00075 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2==0) <span class="keywordflow">return</span> num1;
+<a name="l00076"></a>00076
+<a name="l00077"></a>00077 integer n(<a class="code" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672" title="Returns the absolute value of an integer.">abs</a>(num1)), m(<a class="code" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672" title="Returns the absolute value of an integer.">abs</a>(num2));
+<a name="l00078"></a>00078
+<a name="l00079"></a>00079 <span class="keywordtype">size_t</span> k=0;
+<a name="l00080"></a>00080 <span class="keywordflow">while</span> (n.even() &amp;&amp; m.even()) { ++k; n &gt;&gt;= 1; m &gt;&gt;= 1; }
+<a name="l00081"></a>00081
+<a name="l00082"></a>00082 gcd_core core(n, m);
+<a name="l00083"></a>00083
+<a name="l00084"></a>00084 <span class="keywordflow">if</span> (core.u3.sign() != 0) <span class="keywordflow">return</span> core.u3 &lt;&lt; k;
+<a name="l00085"></a>00085 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>() &lt;&lt; k;
+<a name="l00086"></a>00086 }
+<a name="l00087"></a>00087
+<a name="l00096"></a>00096 integer <a class="code" href="namespaceboost_1_1xint.html#a0096ae57d50e4fe8b5413ea7a4e60495" title="Calculate the Least Common Multiple of two integers.">lcm</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) {
+<a name="l00097"></a>00097 <span class="keywordflow">if</span> (num1.sign() == 0 || num2.sign() == 0) <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>();
+<a name="l00098"></a>00098 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672" title="Returns the absolute value of an integer.">abs</a>(num1 * num2) / <a class="code" href="namespaceboost_1_1xint.html#ab551ac5968fdbcc639318b6f294da2cd" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(num1, num2);
+<a name="l00099"></a>00099 }
+<a name="l00100"></a>00100
+<a name="l00114"></a>00114 integer <a class="code" href="namespaceboost_1_1xint.html#a1e2477157ea768d8c57fac1c31a8f7ca" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m) {
+<a name="l00115"></a>00115 <span class="comment">// Calculates the modular inverse of n mod m, or (n^(-1)) mod m</span>
+<a name="l00116"></a>00116 <span class="comment">// Defined as b, where n*b corresponds to 1 (mod m)</span>
+<a name="l00117"></a>00117 <span class="keywordflow">if</span> (m &lt; <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>()) {
+<a name="l00118"></a>00118 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus();
+<a name="l00119"></a>00119 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>();
+<a name="l00120"></a>00120 }
+<a name="l00121"></a>00121
+<a name="l00122"></a>00122 <span class="keywordtype">int</span> sign=n.sign();
+<a name="l00123"></a>00123 <span class="keywordflow">if</span> (sign==0) {
+<a name="l00124"></a>00124 <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00125"></a>00125 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n.sign() &lt; 0) {
+<a name="l00126"></a>00126 integer _n(n);
+<a name="l00127"></a>00127 _n._set_negative(<span class="keyword">false</span>);
+<a name="l00128"></a>00128
+<a name="l00129"></a>00129 integer nn=<a class="code" href="namespaceboost_1_1xint.html#a1e2477157ea768d8c57fac1c31a8f7ca" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(_n, m);
+<a name="l00130"></a>00130 <span class="keywordflow">if</span> (nn.is_nan()) <span class="keywordflow">return</span> nn;
+<a name="l00131"></a>00131
+<a name="l00132"></a>00132 nn._set_negative(<span class="keyword">true</span>);
+<a name="l00133"></a>00133 <span class="keywordflow">return</span> nn + m;
+<a name="l00134"></a>00134 }
+<a name="l00135"></a>00135
+<a name="l00136"></a>00136 <span class="keywordflow">if</span> (n.even() &amp;&amp; m.even()) <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>(); <span class="comment">// GCD(x,y)!=1, no inverse possible.</span>
+<a name="l00137"></a>00137
+<a name="l00138"></a>00138 gcd_core core(n, m);
+<a name="l00139"></a>00139
+<a name="l00140"></a>00140 <span class="keywordflow">if</span> (core.u3 != <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>()) <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>(); <span class="comment">// GCD(x,y)!=1, no inverse possible.</span>
+<a name="l00141"></a>00141 <span class="keywordflow">return</span> core.u1;
+<a name="l00142"></a>00142 }
+<a name="l00143"></a>00143
+<a name="l00144"></a>00144 } <span class="comment">// namespace xint</span>
+<a name="l00145"></a>00145 } <span class="comment">// namespace boost</span>
 </pre></div></div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:07 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/globals.html
==============================================================================
--- sandbox/xint/doc/globals.html (original)
+++ sandbox/xint/doc/globals.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -54,7 +54,7 @@
 </li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:52 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/globals_defs.html
==============================================================================
--- sandbox/xint/doc/globals_defs.html (original)
+++ sandbox/xint/doc/globals_defs.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -39,7 +39,7 @@
 </li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:52 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/globals_vars.html
==============================================================================
--- sandbox/xint/doc/globals_vars.html (original)
+++ sandbox/xint/doc/globals_vars.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -51,7 +51,7 @@
 </li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:52 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/hierarchy.html
==============================================================================
--- sandbox/xint/doc/hierarchy.html (original)
+++ sandbox/xint/doc/hierarchy.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -28,27 +28,27 @@
 </div>
 <div class="contents">
 <h1>Class Hierarchy</h1>This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
-<li><a class="el" href="structxint_1_1detail_1_1base__random__generator.html">xint::detail::base_random_generator</a><ul>
-<li><a class="el" href="structxint_1_1detail_1_1random__generator.html">xint::detail::random_generator&lt; T &gt;</a></li>
+<li><a class="el" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html">boost::xint::detail::base_random_generator</a><ul>
+<li><a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html">boost::xint::detail::random_generator&lt; T &gt;</a></li>
 </ul>
 </li>
-<li><a class="el" href="classxint_1_1cannot__represent.html">xint::cannot_represent</a></li>
-<li><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></li>
-<li><a class="el" href="classxint_1_1divide__by__zero.html">xint::divide_by_zero</a></li>
-<li><a class="el" href="classxint_1_1integer.html">xint::integer</a></li>
-<li><a class="el" href="classxint_1_1invalid__base.html">xint::invalid_base</a></li>
-<li><a class="el" href="classxint_1_1invalid__digit.html">xint::invalid_digit</a></li>
-<li><a class="el" href="classxint_1_1invalid__modulus.html">xint::invalid_modulus</a></li>
-<li><a class="el" href="classxint_1_1no__strong__random.html">xint::no_strong_random</a></li>
-<li><a class="el" href="classxint_1_1not__a__number.html">xint::not_a_number</a></li>
-<li><a class="el" href="classxint_1_1overflow__error.html">xint::overflow_error</a></li>
-<li><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></li>
-<li><a class="el" href="classxint_1_1strong__random__generator.html">xint::strong_random_generator</a></li>
-<li><a class="el" href="structxint_1_1detail_1_1token.html">xint::detail::token</a></li>
-<li><a class="el" href="classxint_1_1too__big.html">xint::too_big</a></li>
+<li><a class="el" href="classboost_1_1xint_1_1cannot__represent.html">boost::xint::cannot_represent</a></li>
+<li><a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html">boost::xint::detail::data_t</a></li>
+<li><a class="el" href="classboost_1_1xint_1_1divide__by__zero.html">boost::xint::divide_by_zero</a></li>
+<li><a class="el" href="classboost_1_1xint_1_1integer.html">boost::xint::integer</a></li>
+<li><a class="el" href="classboost_1_1xint_1_1invalid__base.html">boost::xint::invalid_base</a></li>
+<li><a class="el" href="classboost_1_1xint_1_1invalid__digit.html">boost::xint::invalid_digit</a></li>
+<li><a class="el" href="classboost_1_1xint_1_1invalid__modulus.html">boost::xint::invalid_modulus</a></li>
+<li><a class="el" href="classboost_1_1xint_1_1no__strong__random.html">boost::xint::no_strong_random</a></li>
+<li><a class="el" href="classboost_1_1xint_1_1not__a__number.html">boost::xint::not_a_number</a></li>
+<li><a class="el" href="classboost_1_1xint_1_1overflow__error.html">boost::xint::overflow_error</a></li>
+<li><a class="el" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html">boost::xint::detail::data_t::QuickDigits</a></li>
+<li><a class="el" href="classboost_1_1xint_1_1strong__random__generator.html">boost::xint::strong_random_generator</a></li>
+<li><a class="el" href="structboost_1_1xint_1_1detail_1_1token.html">boost::xint::detail::token</a></li>
+<li><a class="el" href="classboost_1_1xint_1_1too__big.html">boost::xint::too_big</a></li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/history.html
==============================================================================
--- sandbox/xint/doc/history.html (original)
+++ sandbox/xint/doc/history.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -35,7 +35,7 @@
 <li>Many improvements, primarily from feedback on the first Boost upload. Second version posted to the Boost File Vault. </li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/history_8dox.html
==============================================================================
--- sandbox/xint/doc/history_8dox.html (original)
+++ sandbox/xint/doc/history_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/history.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/index.html
==============================================================================
--- sandbox/xint/doc/index.html (original)
+++ sandbox/xint/doc/index.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -35,7 +35,7 @@
 </ul>
 <h2><a class="anchor" id="how">
 How do I use it?</a></h2>
-<p>That's the best part. If you've installed or compiled the Boost library already, all you need to do is add <code>#include &lt;<a class="el" href="xint_8hpp.html" title="The main header file for the XInt library.">boost/xint/xint.hpp</a>&gt;</code> at the top of your source code file, and declare your variable as type <code>boost::xint::integer</code>. Then just use it the way you'd use any integer. If you need something more advanced, take a look in <a class="el" href="namespacexint.html">the reference section</a> and you just might find it.</p>
+<p>That's the best part. If you've installed or compiled the Boost library already, all you need to do is add <code>#include &lt;<a class="el" href="xint_8hpp.html" title="The main header file for the XInt library.">boost/xint/xint.hpp</a>&gt;</code> at the top of your source code file, and declare your variable as type <code><a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">boost::xint::integer</a></code>. Then just use it the way you'd use any integer. If you need something more advanced, take a look in <a class="el" href="namespaceboost_1_1xint.html">the reference section</a> and you just might find it.</p>
 <p>More information on how to use it can be found on the pages listed below.</p>
 <p>Detailed Usage Information:</p>
 <ul>
@@ -63,7 +63,7 @@
 <li><a class="el" href="ex_fibonacci.html">Fibonacci Numbers</a> </li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:07 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/index_8dox.html
==============================================================================
--- sandbox/xint/doc/index_8dox.html (original)
+++ sandbox/xint/doc/index_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/index.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/integer_8cpp.html
==============================================================================
--- sandbox/xint/doc/integer_8cpp.html (original)
+++ sandbox/xint/doc/integer_8cpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -27,7 +27,7 @@
 </div>
 <div class="contents">
 <h1>integer.cpp File Reference</h1>
-<p>Contains the definitions for the <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a> member functions.
+<p>Contains the definitions for the xint::integer member functions.
 <a href="#_details">More...</a></p>
 <code>#include &quot;../boost/xint/xint.hpp&quot;</code><br/>
 <code>#include &quot;../boost/xint/xint_data_t.hpp&quot;</code><br/>
@@ -35,18 +35,19 @@
 <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>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All of the functions in the XInt library are within this namespace. </p>
 <br/></td></tr>
 </p>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Contains the definitions for the <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a> member functions. </p>
+<p>Contains the definitions for the xint::integer member functions. </p>
 
 <p>Definition in file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/integer_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/integer_8cpp_source.html (original)
+++ sandbox/xint/doc/integer_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -44,222 +44,224 @@
 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"> #define XINT_DISABLE_COPY_ON_WRITE</span>
 <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
 <a name="l00024"></a>00024 <span class="preprocessor"></span>
-<a name="l00025"></a>00025 <span class="keyword">namespace </span>xint {
-<a name="l00026"></a>00026
-<a name="l00027"></a>00027 <span class="keyword">namespace </span>{
-<a name="l00028"></a>00028 std::auto_ptr&lt;integer&gt; cZero, cOne;
-<a name="l00029"></a>00029 }
-<a name="l00030"></a>00030
-<a name="l00031"></a>00031 <span class="keyword">const</span> std::string <a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce" title="Holds the text representation of the Not-a-Number value.">detail::nan_text</a>(<span class="stringliteral">&quot;#NaN#&quot;</span>);
-<a name="l00032"></a>00032
-<a name="l00034"></a><a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">00034</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="Creates a new integer with an initial value of zero.">integer::integer</a>() {
-<a name="l00035"></a>00035 _init();
-<a name="l00036"></a>00036 }
-<a name="l00037"></a>00037
-<a name="l00049"></a><a class="code" href="classxint_1_1integer.html#aa123fb47accd778f87e2866c9d986bb7">00049</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="Creates a new integer with an initial value of zero.">integer::integer</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; b) {
-<a name="l00050"></a>00050 <span class="keywordflow">if</span> (b.<a class="code" href="classxint_1_1integer.html#a0bca68386478755dc787f981d9cd5606" title="Tests *this for Not-a-Number.">is_nan</a>()) data=0;
-<a name="l00051"></a>00051 <span class="keywordflow">else</span> _init(b);
-<a name="l00052"></a>00052 }
-<a name="l00053"></a>00053
-<a name="l00074"></a><a class="code" href="classxint_1_1integer.html#a6dfc86dfc539cfda1062ef1bc24aa526">00074</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="Creates a new integer with an initial value of zero.">integer::integer</a>(<span class="keyword">const</span> std::string&amp; str, <span class="keywordtype">size_t</span> base) {
-<a name="l00075"></a>00075 _init(<a class="code" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0" title="Converts a string into an integer.">from_string</a>(str, base));
-<a name="l00076"></a>00076 }
-<a name="l00077"></a>00077
-<a name="l00090"></a><a class="code" href="classxint_1_1integer.html#a1211c9298c3281815bc9b709439d031a">00090</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="Creates a new integer with an initial value of zero.">integer::integer</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1not__a__number.html" title="Exception class.">not_a_number</a>&amp; n) {
-<a name="l00091"></a>00091 data=0;
-<a name="l00092"></a>00092 }
-<a name="l00093"></a>00093
-<a name="l00094"></a><a class="code" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">00094</a> <a class="code" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">integer::~integer</a>() {
-<a name="l00095"></a>00095 _detach();
-<a name="l00096"></a>00096 }
-<a name="l00097"></a>00097
-<a name="l00098"></a>00098 <span class="keywordtype">void</span> integer::_init(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> init) {
-<a name="l00099"></a>00099 <span class="keywordflow">try</span> {
-<a name="l00100"></a>00100 data=<span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a>(init);
-<a name="l00101"></a>00101 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
-<a name="l00102"></a>00102 <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a>(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
-<a name="l00103"></a>00103 }
-<a name="l00104"></a>00104 _attach();
-<a name="l00105"></a>00105 }
-<a name="l00106"></a>00106
-<a name="l00107"></a>00107 <span class="keywordtype">void</span> integer::_init(<span class="keyword">const</span> integer &amp;c) {
-<a name="l00108"></a>00108 <span class="preprocessor"> #ifdef XINT_DISABLE_COPY_ON_WRITE</span>
-<a name="l00109"></a>00109 <span class="preprocessor"></span> data=(c.data ? <span class="keyword">new</span> detail::data_t(c.data) : 0);
-<a name="l00110"></a>00110 <span class="preprocessor"> #else</span>
-<a name="l00111"></a>00111 <span class="preprocessor"></span> data=c.data;
-<a name="l00112"></a>00112 <span class="preprocessor"> #endif</span>
-<a name="l00113"></a>00113 <span class="preprocessor"></span> _attach();
-<a name="l00114"></a>00114 }
-<a name="l00115"></a>00115
-<a name="l00116"></a>00116 <span class="keywordtype">void</span> integer::_init(boost::uintmax_t n) {
-<a name="l00117"></a>00117 <span class="keyword">static</span> <span class="keywordtype">int</span> bits=std::numeric_limits&lt;boost::uintmax_t&gt;::digits;
-<a name="l00118"></a>00118 <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="l00119"></a>00119
-<a name="l00120"></a>00120 <span class="keywordflow">try</span> {
-<a name="l00121"></a>00121 data=<span class="keyword">new</span> detail::data_t;
-<a name="l00122"></a>00122 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
-<a name="l00123"></a>00123 <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a>(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
-<a name="l00124"></a>00124 }
-<a name="l00125"></a>00125 _attach();
-<a name="l00126"></a>00126
-<a name="l00127"></a>00127 data-&gt;alloc(maxDigits);
-<a name="l00128"></a>00128 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x=0; n != 0; ++x) {
-<a name="l00129"></a>00129 data-&gt;digits[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="l00130"></a>00130 n &gt;&gt;= <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">detail::bits_per_digit</a>;
-<a name="l00131"></a>00131 }
-<a name="l00132"></a>00132 data-&gt;skipLeadingZeros();
-<a name="l00133"></a>00133 }
-<a name="l00134"></a>00134
-<a name="l00135"></a>00135 <span class="keywordtype">void</span> integer::_attach() {
-<a name="l00136"></a>00136 <span class="keywordflow">if</span> (data) data-&gt;attach();
-<a name="l00137"></a>00137 }
-<a name="l00138"></a>00138
-<a name="l00139"></a>00139 <span class="keywordtype">void</span> integer::_detach() {
-<a name="l00140"></a>00140 <span class="keywordflow">if</span> (data &amp;&amp; data-&gt;detach()) <span class="keyword">delete</span> data;
-<a name="l00141"></a>00141 }
-<a name="l00142"></a>00142
-<a name="l00143"></a><a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">00143</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">integer::_make_unique</a>() {
-<a name="l00144"></a>00144 <span class="keywordflow">try</span> {
-<a name="l00145"></a>00145 <span class="keywordflow">if</span> (data &amp;&amp; data-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a> &gt; 1) {
-<a name="l00146"></a>00146 <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *newstore=<span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a>(data);
-<a name="l00147"></a>00147 _detach();
-<a name="l00148"></a>00148 data=newstore;
-<a name="l00149"></a>00149 _attach();
-<a name="l00150"></a>00150 }
-<a name="l00151"></a>00151 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
-<a name="l00152"></a>00152 <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a>(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
-<a name="l00153"></a>00153 }
-<a name="l00154"></a>00154 }
-<a name="l00155"></a>00155
-<a name="l00156"></a><a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">00156</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="l00157"></a>00157 <span class="keywordflow">if</span> (negative != (<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">sign</a>() &lt; 0)) *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#ab393826381b1abd9f1aca1cdb45f41f6" title="Return the additive inverse of an integer.">negate</a>(*<span class="keyword">this</span>);
-<a name="l00158"></a>00158 }
-<a name="l00159"></a>00159
-<a name="l00164"></a><a class="code" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">00164</a> <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23" title="Tests the lowest bit of *this to determine oddness.">integer::odd</a>()<span class="keyword"> const </span>{
-<a name="l00165"></a>00165 <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00166"></a>00166 <span class="keywordflow">return</span> ((<a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(0) &amp; 0x01)==1);
-<a name="l00167"></a>00167 }
-<a name="l00168"></a>00168
-<a name="l00173"></a><a class="code" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">00173</a> <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2" title="Tests the lowest bit of *this to determine evenness.">integer::even</a>()<span class="keyword"> const </span>{
-<a name="l00174"></a>00174 <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00175"></a>00175 <span class="keywordflow">return</span> ((<a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(0) &amp; 0x01)==0);
-<a name="l00176"></a>00176 }
-<a name="l00177"></a>00177
-<a name="l00183"></a><a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">00183</a> <span class="keywordtype">int</span> <a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">integer::sign</a>()<span class="keyword"> const </span>{
-<a name="l00184"></a>00184 <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00185"></a>00185 <span class="keywordflow">if</span> (data-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>) <span class="keywordflow">return</span> -1;
-<a name="l00186"></a>00186 <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="l00187"></a>00187 <span class="keywordflow">return</span> 1;
-<a name="l00188"></a>00188 }
-<a name="l00189"></a>00189
-<a name="l00196"></a><a class="code" href="classxint_1_1integer.html#a0bca68386478755dc787f981d9cd5606">00196</a> <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#a0bca68386478755dc787f981d9cd5606" title="Tests *this for Not-a-Number.">integer::is_nan</a>()<span class="keyword"> const </span>{
-<a name="l00197"></a>00197 <span class="keywordflow">return</span> (data==0);
-<a name="l00198"></a>00198 }
-<a name="l00199"></a>00199
-<a name="l00205"></a><a class="code" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">00205</a> <span class="keywordtype">size_t</span> <a class="code" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955" title="Tells you roughly how large an integer is.">integer::hex_digits</a>()<span class="keyword"> const </span>{
-<a name="l00206"></a>00206 <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00207"></a>00207 <span class="keywordtype">size_t</span> bits=<a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048" title="Get the log2 value of an integer.">log2</a>(*<span class="keyword">this</span>);
-<a name="l00208"></a>00208 <span class="keywordflow">return</span> (bits+3)/4; <span class="comment">// Four bits per hex digit, rounded up</span>
-<a name="l00209"></a>00209 }
-<a name="l00210"></a>00210
-<a name="l00211"></a><a class="code" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">00211</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="The extended integer class.">integer</a>&amp; addend) {
-<a name="l00212"></a>00212 <span class="keywordflow">if</span> ((<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">sign</a>() &lt; 0) == (addend.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">sign</a>() &lt; 0)
-<a name="l00213"></a>00213 &amp;&amp; data-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> &gt;= addend.data-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>)
-<a name="l00214"></a>00214 {
-<a name="l00215"></a>00215 <span class="comment">// Fast in-place add</span>
-<a name="l00216"></a>00216 <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00217"></a>00217 data-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">add</a>(addend.data);
-<a name="l00218"></a>00218 } <span class="keywordflow">else</span> {
-<a name="l00219"></a>00219 <span class="comment">// This works for all cases</span>
-<a name="l00220"></a>00220 *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163" title="Calculate the sum of two integers.">add</a>(*<span class="keyword">this</span>, addend);
-<a name="l00221"></a>00221 }
-<a name="l00222"></a>00222 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00223"></a>00223 }
-<a name="l00224"></a>00224
-<a name="l00225"></a><a class="code" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">00225</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="The extended integer class.">integer</a>&amp; subtrahend) {
-<a name="l00226"></a>00226 <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">sign</a>() &gt;= 0 &amp;&amp; subtrahend.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">sign</a>() &gt;= 0 &amp;&amp; *<span class="keyword">this</span> &gt;= subtrahend) {
-<a name="l00227"></a>00227 <span class="comment">// Fast in-place subtract</span>
-<a name="l00228"></a>00228 <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00229"></a>00229 data-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">subtract</a>(subtrahend.data);
-<a name="l00230"></a>00230 } <span class="keywordflow">else</span> {
-<a name="l00231"></a>00231 <span class="comment">// This works for all cases</span>
-<a name="l00232"></a>00232 *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80" title="Calculate the difference between two integers.">subtract</a>(*<span class="keyword">this</span>, subtrahend);
-<a name="l00233"></a>00233 }
-<a name="l00234"></a>00234 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00235"></a>00235 }
-<a name="l00236"></a>00236
-<a name="l00237"></a><a class="code" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">00237</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="The extended integer class.">integer</a> &amp;c) {
-<a name="l00238"></a>00238 _detach();
-<a name="l00239"></a>00239 <span class="preprocessor"> #ifdef XINT_DISABLE_COPY_ON_WRITE</span>
-<a name="l00240"></a>00240 <span class="preprocessor"></span> data=(c.data ? <span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a>(c.data) : 0);
-<a name="l00241"></a>00241 <span class="preprocessor"> #else</span>
-<a name="l00242"></a>00242 <span class="preprocessor"></span> data=c.data;
-<a name="l00243"></a>00243 <span class="preprocessor"> #endif</span>
-<a name="l00244"></a>00244 <span class="preprocessor"></span> _attach();
-<a name="l00245"></a>00245 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00246"></a>00246 }
-<a name="l00247"></a>00247
-<a name="l00248"></a><a class="code" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">00248</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="The extended integer class.">integer</a>&amp; b) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d" title="Calculate the product of two integers.">multiply</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00249"></a><a class="code" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">00249</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="The extended integer class.">integer</a>&amp; b) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44" title="Calculate how many dividends would fit into divisor.">divide</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00250"></a><a class="code" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">00250</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="The extended integer class.">integer</a>&amp; b) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#ad5a8cc6e57ee8abdc21be98275657cc8" title="Get the remainder after dividing a number by another.">mod</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00251"></a>00251
-<a name="l00252"></a><a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">00252</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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">one</a>(); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00253"></a><a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">00253</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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">one</a>(); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00254"></a><a class="code" href="classxint_1_1integer.html#a79624fb580bdb2ba19fe13223c801c25">00254</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="The extended integer class.">integer</a> s=*<span class="keyword">this</span>; *<span class="keyword">this</span> += <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">one</a>(); <span class="keywordflow">return</span> s; }
-<a name="l00255"></a><a class="code" href="classxint_1_1integer.html#a40ff1ffeda1df544b8bcd907f76d93cd">00255</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="The extended integer class.">integer</a> s=*<span class="keyword">this</span>; *<span class="keyword">this</span> -= <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">one</a>(); <span class="keywordflow">return</span> s; }
-<a name="l00256"></a>00256
-<a name="l00257"></a><a class="code" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">00257</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="Bit-shift an integer, in either direction.">shift</a>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a6799cc3c4d8c963279be64b209bfd3b6" title="Left-shift an integer by a specified number of bits.">shift_left</a>(*<span class="keyword">this</span>, shift); }
-<a name="l00258"></a><a class="code" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">00258</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="Bit-shift an integer, in either direction.">shift</a>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a49a5a4220cb88b7446545e4b65950473" title="Right-shift an integer by a specified number of bits.">shift_right</a>(*<span class="keyword">this</span>, shift); }
-<a name="l00259"></a><a class="code" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">00259</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="The extended integer class.">integer</a>&amp; n) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1" title="Combine two integers using a bitwise AND operation.">bitwise_and</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00260"></a><a class="code" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">00260</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="The extended integer class.">integer</a>&amp; n) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a" title="Combine two integers using a bitwise OR operation.">bitwise_or</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00261"></a><a class="code" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">00261</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="The extended integer class.">integer</a>&amp; n) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe" title="Combine two integers using a bitwise XOR operation.">bitwise_xor</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00262"></a>00262
-<a name="l00263"></a><a class="code" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">00263</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="Bit-shift an integer, in either direction.">shift</a>) {
-<a name="l00264"></a>00264 <span class="keywordflow">if</span> (shift&gt;0) {
-<a name="l00265"></a>00265 <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00266"></a>00266 data-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a72785130c7c6490af874f450cf6e0086">shift_left</a>(shift);
-<a name="l00267"></a>00267 }
-<a name="l00268"></a>00268 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00269"></a>00269 }
-<a name="l00270"></a>00270
-<a name="l00271"></a><a class="code" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">00271</a> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">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" title="Bit-shift an integer, in either direction.">shift</a>) {
-<a name="l00272"></a>00272 <span class="keywordflow">if</span> (shift&gt;0) {
-<a name="l00273"></a>00273 <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00274"></a>00274 data-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a432ace7094bca306dcba254f862e2428">shift_right</a>(shift);
-<a name="l00275"></a>00275 }
-<a name="l00276"></a>00276 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00277"></a>00277 }
-<a name="l00278"></a>00278
-<a name="l00279"></a><a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">00279</a> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>() {
-<a name="l00280"></a>00280 <span class="keywordflow">if</span> (cZero.get()==0) cZero.reset(<span class="keyword">new</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>(0));
-<a name="l00281"></a>00281 <span class="keywordflow">return</span> *cZero;
-<a name="l00282"></a>00282 }
-<a name="l00283"></a>00283
-<a name="l00284"></a><a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">00284</a> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>() {
-<a name="l00285"></a>00285 <span class="keywordflow">if</span> (cOne.get()==0) cOne.reset(<span class="keyword">new</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>(1));
-<a name="l00286"></a>00286 <span class="keywordflow">return</span> *cOne;
-<a name="l00287"></a>00287 }
-<a name="l00288"></a>00288
-<a name="l00289"></a><a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">00289</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="l00290"></a>00290 <span class="keywordflow">return</span> data-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[index];
-<a name="l00291"></a>00291 }
-<a name="l00292"></a>00292
-<a name="l00293"></a><a class="code" href="classxint_1_1integer.html#a33fe6f16dfba7b076f04a5ea40d8dccb">00293</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="keywordtype">bool</span>)<span class="keyword"> const </span>{
-<a name="l00294"></a>00294 <span class="keywordflow">if</span> (index &gt;= data-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>) <span class="keywordflow">return</span> 0;
-<a name="l00295"></a>00295 <span class="keywordflow">return</span> data-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[index];
-<a name="l00296"></a>00296 }
-<a name="l00297"></a>00297
-<a name="l00298"></a><a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">00298</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="l00299"></a>00299 <span class="keywordflow">return</span> data-&gt;<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
-<a name="l00300"></a>00300 }
-<a name="l00301"></a>00301
-<a name="l00302"></a><a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">00302</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="l00303"></a>00303 <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a0bca68386478755dc787f981d9cd5606" title="Tests *this for Not-a-Number.">is_nan</a>()) <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1not__a__number.html" title="Exception class.">not_a_number</a>();
-<a name="l00304"></a>00304 }
-<a name="l00305"></a>00305
-<a name="l00306"></a>00306 } <span class="comment">// namespace xint</span>
+<a name="l00025"></a>00025 <span class="keyword">namespace </span>boost {
+<a name="l00026"></a>00026 <span class="keyword">namespace </span>xint {
+<a name="l00027"></a>00027
+<a name="l00028"></a>00028 <span class="keyword">namespace </span>{
+<a name="l00029"></a>00029 std::auto_ptr&lt;integer&gt; cZero, cOne;
+<a name="l00030"></a>00030 }
+<a name="l00031"></a>00031
+<a name="l00032"></a>00032 <span class="keyword">const</span> std::string <a class="code" href="namespaceboost_1_1xint_1_1detail.html#ab0df946a2c10228501ef82bf823d0978" title="Holds the text representation of the Not-a-Number value.">detail::nan_text</a>(<span class="stringliteral">&quot;#NaN#&quot;</span>);
+<a name="l00033"></a>00033
+<a name="l00035"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600">00035</a> <a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600" title="Creates a new integer with an initial value of zero.">integer::integer</a>() {
+<a name="l00036"></a>00036 _init();
+<a name="l00037"></a>00037 }
+<a name="l00038"></a>00038
+<a name="l00050"></a><a class="code" href="classboost_1_1xint_1_1integer.html#afc2ddd14b40ab91640d10b134d2b7141">00050</a> <a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600" title="Creates a new integer with an initial value of zero.">integer::integer</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; b) {
+<a name="l00051"></a>00051 <span class="keywordflow">if</span> (b.<a class="code" href="classboost_1_1xint_1_1integer.html#a65fb2696f8506a6db16b8fb422c98ff5" title="Tests *this for Not-a-Number.">is_nan</a>()) data=0;
+<a name="l00052"></a>00052 <span class="keywordflow">else</span> _init(b);
+<a name="l00053"></a>00053 }
+<a name="l00054"></a>00054
+<a name="l00075"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a179df60f5dc32f98b9f564ec20aff5a8">00075</a> <a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600" title="Creates a new integer with an initial value of zero.">integer::integer</a>(<span class="keyword">const</span> std::string&amp; str, <span class="keywordtype">size_t</span> base) {
+<a name="l00076"></a>00076 _init(<a class="code" href="namespaceboost_1_1xint.html#af263105e57d48eff5fe14d4d03ca10e1" title="Converts a string into an integer.">from_string</a>(str, base));
+<a name="l00077"></a>00077 }
+<a name="l00078"></a>00078
+<a name="l00091"></a><a class="code" href="classboost_1_1xint_1_1integer.html#aa8a3cceacd8a23dc6b8a9587a5a4d008">00091</a> <a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600" title="Creates a new integer with an initial value of zero.">integer::integer</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1not__a__number.html" title="Exception class.">not_a_number</a>&amp; n) {
+<a name="l00092"></a>00092 data=0;
+<a name="l00093"></a>00093 }
+<a name="l00094"></a>00094
+<a name="l00095"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a3e254c8874a7a1f9a17a41505a18df35">00095</a> <a class="code" href="classboost_1_1xint_1_1integer.html#a3e254c8874a7a1f9a17a41505a18df35">integer::~integer</a>() {
+<a name="l00096"></a>00096 _detach();
+<a name="l00097"></a>00097 }
+<a name="l00098"></a>00098
+<a name="l00099"></a>00099 <span class="keywordtype">void</span> integer::_init(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> init) {
+<a name="l00100"></a>00100 <span class="keywordflow">try</span> {
+<a name="l00101"></a>00101 data=<span class="keyword">new</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a>(init);
+<a name="l00102"></a>00102 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
+<a name="l00103"></a>00103 <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a>(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
+<a name="l00104"></a>00104 }
+<a name="l00105"></a>00105 _attach();
+<a name="l00106"></a>00106 }
+<a name="l00107"></a>00107
+<a name="l00108"></a>00108 <span class="keywordtype">void</span> integer::_init(<span class="keyword">const</span> integer &amp;c) {
+<a name="l00109"></a>00109 <span class="preprocessor"> #ifdef XINT_DISABLE_COPY_ON_WRITE</span>
+<a name="l00110"></a>00110 <span class="preprocessor"></span> data=(c.data ? <span class="keyword">new</span> detail::data_t(c.data) : 0);
+<a name="l00111"></a>00111 <span class="preprocessor"> #else</span>
+<a name="l00112"></a>00112 <span class="preprocessor"></span> data=c.data;
+<a name="l00113"></a>00113 <span class="preprocessor"> #endif</span>
+<a name="l00114"></a>00114 <span class="preprocessor"></span> _attach();
+<a name="l00115"></a>00115 }
+<a name="l00116"></a>00116
+<a name="l00117"></a>00117 <span class="keywordtype">void</span> integer::_init(boost::uintmax_t n) {
+<a name="l00118"></a>00118 <span class="keyword">static</span> <span class="keywordtype">int</span> bits=std::numeric_limits&lt;boost::uintmax_t&gt;::digits;
+<a name="l00119"></a>00119 <span class="keyword">static</span> <span class="keywordtype">int</span> maxDigits=(bits+<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">detail::bits_per_digit</a>-1)/<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">detail::bits_per_digit</a>;
+<a name="l00120"></a>00120
+<a name="l00121"></a>00121 <span class="keywordflow">try</span> {
+<a name="l00122"></a>00122 data=<span class="keyword">new</span> detail::data_t;
+<a name="l00123"></a>00123 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
+<a name="l00124"></a>00124 <span class="keywordflow">throw</span> xint::overflow_error(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
+<a name="l00125"></a>00125 }
+<a name="l00126"></a>00126 _attach();
+<a name="l00127"></a>00127
+<a name="l00128"></a>00128 data-&gt;alloc(maxDigits);
+<a name="l00129"></a>00129 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x=0; n != 0; ++x) {
+<a name="l00130"></a>00130 data-&gt;digits[x]=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a>(n &amp; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">detail::digit_mask</a>);
+<a name="l00131"></a>00131 n &gt;&gt;= <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">detail::bits_per_digit</a>;
+<a name="l00132"></a>00132 }
+<a name="l00133"></a>00133 data-&gt;skipLeadingZeros();
+<a name="l00134"></a>00134 }
+<a name="l00135"></a>00135
+<a name="l00136"></a>00136 <span class="keywordtype">void</span> integer::_attach() {
+<a name="l00137"></a>00137 <span class="keywordflow">if</span> (data) data-&gt;attach();
+<a name="l00138"></a>00138 }
+<a name="l00139"></a>00139
+<a name="l00140"></a>00140 <span class="keywordtype">void</span> integer::_detach() {
+<a name="l00141"></a>00141 <span class="keywordflow">if</span> (data &amp;&amp; data-&gt;detach()) <span class="keyword">delete</span> data;
+<a name="l00142"></a>00142 }
+<a name="l00143"></a>00143
+<a name="l00144"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a04331a88bb2a975a7349e0c04cb230de">00144</a> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a04331a88bb2a975a7349e0c04cb230de">integer::_make_unique</a>() {
+<a name="l00145"></a>00145 <span class="keywordflow">try</span> {
+<a name="l00146"></a>00146 <span class="keywordflow">if</span> (data &amp;&amp; data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">mCopies</a> &gt; 1) {
+<a name="l00147"></a>00147 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *newstore=<span class="keyword">new</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a>(data);
+<a name="l00148"></a>00148 _detach();
+<a name="l00149"></a>00149 data=newstore;
+<a name="l00150"></a>00150 _attach();
+<a name="l00151"></a>00151 }
+<a name="l00152"></a>00152 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
+<a name="l00153"></a>00153 <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1overflow__error.html" title="Exception class.">xint::overflow_error</a>(<span class="stringliteral">&quot;Out of memory allocating xint::integer&quot;</span>);
+<a name="l00154"></a>00154 }
+<a name="l00155"></a>00155 }
+<a name="l00156"></a>00156
+<a name="l00157"></a><a class="code" href="classboost_1_1xint_1_1integer.html#ae19edd0d1ee7ecc2d7115b3d489fed55">00157</a> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1integer.html#ae19edd0d1ee7ecc2d7115b3d489fed55">integer::_set_negative</a>(<span class="keywordtype">bool</span> negative) {
+<a name="l00158"></a>00158 <span class="keywordflow">if</span> (negative != (<a class="code" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12" title="Tests the sign of *this.">sign</a>() &lt; 0)) *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#a84190f7b286de191e8026e440f104731" title="Return the additive inverse of an integer.">negate</a>(*<span class="keyword">this</span>);
+<a name="l00159"></a>00159 }
+<a name="l00160"></a>00160
+<a name="l00165"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a5d17a8184d20e7829273f769550954c1">00165</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a5d17a8184d20e7829273f769550954c1" title="Tests the lowest bit of *this to determine oddness.">integer::odd</a>()<span class="keyword"> const </span>{
+<a name="l00166"></a>00166 <a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00167"></a>00167 <span class="keywordflow">return</span> ((<a class="code" href="classboost_1_1xint_1_1integer.html#acb5a0571dc9544921e603c00a0c6c93a">_get_digit</a>(0) &amp; 0x01)==1);
+<a name="l00168"></a>00168 }
+<a name="l00169"></a>00169
+<a name="l00174"></a><a class="code" href="classboost_1_1xint_1_1integer.html#afa36410b307d227f66657ea6f2116bdb">00174</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer.html#afa36410b307d227f66657ea6f2116bdb" title="Tests the lowest bit of *this to determine evenness.">integer::even</a>()<span class="keyword"> const </span>{
+<a name="l00175"></a>00175 <a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00176"></a>00176 <span class="keywordflow">return</span> ((<a class="code" href="classboost_1_1xint_1_1integer.html#acb5a0571dc9544921e603c00a0c6c93a">_get_digit</a>(0) &amp; 0x01)==0);
+<a name="l00177"></a>00177 }
+<a name="l00178"></a>00178
+<a name="l00184"></a><a class="code" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12">00184</a> <span class="keywordtype">int</span> <a class="code" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12" title="Tests the sign of *this.">integer::sign</a>()<span class="keyword"> const </span>{
+<a name="l00185"></a>00185 <a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00186"></a>00186 <span class="keywordflow">if</span> (data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">mIsNegative</a>) <span class="keywordflow">return</span> -1;
+<a name="l00187"></a>00187 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer.html#ad4a65fa154847321803888988d18d244">_get_length</a>()==1 &amp;&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#acb5a0571dc9544921e603c00a0c6c93a">_get_digit</a>(0)==0) <span class="keywordflow">return</span> 0;
+<a name="l00188"></a>00188 <span class="keywordflow">return</span> 1;
+<a name="l00189"></a>00189 }
+<a name="l00190"></a>00190
+<a name="l00197"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a65fb2696f8506a6db16b8fb422c98ff5">00197</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a65fb2696f8506a6db16b8fb422c98ff5" title="Tests *this for Not-a-Number.">integer::is_nan</a>()<span class="keyword"> const </span>{
+<a name="l00198"></a>00198 <span class="keywordflow">return</span> (data==0);
+<a name="l00199"></a>00199 }
+<a name="l00200"></a>00200
+<a name="l00206"></a><a class="code" href="classboost_1_1xint_1_1integer.html#af9206e301a190df90fa2e76a30238c6f">00206</a> <span class="keywordtype">size_t</span> <a class="code" href="classboost_1_1xint_1_1integer.html#af9206e301a190df90fa2e76a30238c6f" title="Tells you roughly how large an integer is.">integer::hex_digits</a>()<span class="keyword"> const </span>{
+<a name="l00207"></a>00207 <a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00208"></a>00208 <span class="keywordtype">size_t</span> bits=<a class="code" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd" title="Get the log2 value of an integer.">log2</a>(*<span class="keyword">this</span>);
+<a name="l00209"></a>00209 <span class="keywordflow">return</span> (bits+3)/4; <span class="comment">// Four bits per hex digit, rounded up</span>
+<a name="l00210"></a>00210 }
+<a name="l00211"></a>00211
+<a name="l00212"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a8ba263f6a5e51c15e3c51241d113c35e">00212</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#a8ba263f6a5e51c15e3c51241d113c35e">integer::operator+=</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; addend) {
+<a name="l00213"></a>00213 <span class="keywordflow">if</span> ((<a class="code" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12" title="Tests the sign of *this.">sign</a>() &lt; 0) == (addend.<a class="code" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12" title="Tests the sign of *this.">sign</a>() &lt; 0)
+<a name="l00214"></a>00214 &amp;&amp; data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a> &gt;= addend.data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>)
+<a name="l00215"></a>00215 {
+<a name="l00216"></a>00216 <span class="comment">// Fast in-place add</span>
+<a name="l00217"></a>00217 <a class="code" href="classboost_1_1xint_1_1integer.html#a04331a88bb2a975a7349e0c04cb230de">_make_unique</a>();
+<a name="l00218"></a>00218 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ac723d73bc8845e6df77f3c439128b939">add</a>(addend.data);
+<a name="l00219"></a>00219 } <span class="keywordflow">else</span> {
+<a name="l00220"></a>00220 <span class="comment">// This works for all cases</span>
+<a name="l00221"></a>00221 *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#a5f82fa6b23e9af01292440248b89210d" title="Calculate the sum of two integers.">add</a>(*<span class="keyword">this</span>, addend);
+<a name="l00222"></a>00222 }
+<a name="l00223"></a>00223 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00224"></a>00224 }
+<a name="l00225"></a>00225
+<a name="l00226"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a92f8f3cb4e080c43d889103e7606b7ba">00226</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#a92f8f3cb4e080c43d889103e7606b7ba">integer::operator-=</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; subtrahend) {
+<a name="l00227"></a>00227 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12" title="Tests the sign of *this.">sign</a>() &gt;= 0 &amp;&amp; subtrahend.<a class="code" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12" title="Tests the sign of *this.">sign</a>() &gt;= 0 &amp;&amp; *<span class="keyword">this</span> &gt;= subtrahend) {
+<a name="l00228"></a>00228 <span class="comment">// Fast in-place subtract</span>
+<a name="l00229"></a>00229 <a class="code" href="classboost_1_1xint_1_1integer.html#a04331a88bb2a975a7349e0c04cb230de">_make_unique</a>();
+<a name="l00230"></a>00230 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a138ee1d91bfa37d248c43ef66371e590">subtract</a>(subtrahend.data);
+<a name="l00231"></a>00231 } <span class="keywordflow">else</span> {
+<a name="l00232"></a>00232 <span class="comment">// This works for all cases</span>
+<a name="l00233"></a>00233 *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#a86eb0099596fe66bd46be244323f44e5" title="Calculate the difference between two integers.">subtract</a>(*<span class="keyword">this</span>, subtrahend);
+<a name="l00234"></a>00234 }
+<a name="l00235"></a>00235 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00236"></a>00236 }
+<a name="l00237"></a>00237
+<a name="l00238"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a9ae8cfa93f2e43cf0471266c54b06be2">00238</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#a9ae8cfa93f2e43cf0471266c54b06be2">integer::operator=</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> &amp;c) {
+<a name="l00239"></a>00239 _detach();
+<a name="l00240"></a>00240 <span class="preprocessor"> #ifdef XINT_DISABLE_COPY_ON_WRITE</span>
+<a name="l00241"></a>00241 <span class="preprocessor"></span> data=(c.data ? <span class="keyword">new</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a>(c.data) : 0);
+<a name="l00242"></a>00242 <span class="preprocessor"> #else</span>
+<a name="l00243"></a>00243 <span class="preprocessor"></span> data=c.data;
+<a name="l00244"></a>00244 <span class="preprocessor"> #endif</span>
+<a name="l00245"></a>00245 <span class="preprocessor"></span> _attach();
+<a name="l00246"></a>00246 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00247"></a>00247 }
+<a name="l00248"></a>00248
+<a name="l00249"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a3452b0a1af51a556bdcb6a3d087b44db">00249</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#a3452b0a1af51a556bdcb6a3d087b44db">integer::operator*=</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; b) { *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#a9e0d6ad947fa3e979ed6e26d7e81ab7f" title="Calculate the product of two integers.">multiply</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00250"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a9e630e1f2cf12d29ad01de9c44dc8e3c">00250</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#a9e630e1f2cf12d29ad01de9c44dc8e3c">integer::operator/=</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; b) { *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#a4892543bb8ccfa8acb188a63a3d4723b" title="Calculate how many dividends would fit into divisor.">divide</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00251"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a1acfe3b61f26b7168fd103521f6deee9">00251</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#a1acfe3b61f26b7168fd103521f6deee9">integer::operator%=</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; b) { *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#a9b8c31b64eb9700beea8b95edec31a73" title="Get the remainder after dividing a number by another.">mod</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00252"></a>00252
+<a name="l00253"></a><a class="code" href="classboost_1_1xint_1_1integer.html#ab15c60f8f28c2f520a26ab19e33c280c">00253</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#ab15c60f8f28c2f520a26ab19e33c280c">integer::operator++</a>() { *<span class="keyword">this</span> += <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">one</a>(); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00254"></a><a class="code" href="classboost_1_1xint_1_1integer.html#aa535f200d1d95306aae3d5f991df4e8f">00254</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#aa535f200d1d95306aae3d5f991df4e8f">integer::operator--</a>() { *<span class="keyword">this</span> -= <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">one</a>(); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00255"></a><a class="code" href="classboost_1_1xint_1_1integer.html#acdb4dc0521b76fbb0e667905fddaaada">00255</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="classboost_1_1xint_1_1integer.html#ab15c60f8f28c2f520a26ab19e33c280c">integer::operator++</a>(<span class="keywordtype">int</span>) { <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> s=*<span class="keyword">this</span>; *<span class="keyword">this</span> += <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">one</a>(); <span class="keywordflow">return</span> s; }
+<a name="l00256"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a628a1e9614bcb4d0916dd7869877807d">00256</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="classboost_1_1xint_1_1integer.html#aa535f200d1d95306aae3d5f991df4e8f">integer::operator--</a>(<span class="keywordtype">int</span>) { <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> s=*<span class="keyword">this</span>; *<span class="keyword">this</span> -= <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">one</a>(); <span class="keywordflow">return</span> s; }
+<a name="l00257"></a>00257
+<a name="l00258"></a><a class="code" href="classboost_1_1xint_1_1integer.html#abc90075da0adaef0da2d0083e59af414">00258</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="classboost_1_1xint_1_1integer.html#abc90075da0adaef0da2d0083e59af414">integer::operator&lt;&lt;</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(*<span class="keyword">this</span>, shift); }
+<a name="l00259"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a22af7cfcb28f97f4c8b78939265b46d6">00259</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="classboost_1_1xint_1_1integer.html#a22af7cfcb28f97f4c8b78939265b46d6">integer::operator&gt;&gt;</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(*<span class="keyword">this</span>, shift); }
+<a name="l00260"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a717edb41c50edbd4b601c38b1fc6a8b0">00260</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#a717edb41c50edbd4b601c38b1fc6a8b0">integer::operator&amp;=</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n) { *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2" title="Combine two integers using a bitwise AND operation.">bitwise_and</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00261"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a1fa48e6c6cefec7ae672156d27e79ec6">00261</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#a1fa48e6c6cefec7ae672156d27e79ec6">integer::operator|=</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n) { *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec" title="Combine two integers using a bitwise OR operation.">bitwise_or</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00262"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a40fdf2cd80d53e173aa5129fe02289c3">00262</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#a40fdf2cd80d53e173aa5129fe02289c3">integer::operator^=</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n) { *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1" title="Combine two integers using a bitwise XOR operation.">bitwise_xor</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00263"></a>00263
+<a name="l00264"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a33f0a1167639a60ac8ad8ef0f3d3f585">00264</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#a33f0a1167639a60ac8ad8ef0f3d3f585">integer::operator&lt;&lt;=</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>) {
+<a name="l00265"></a>00265 <span class="keywordflow">if</span> (shift&gt;0) {
+<a name="l00266"></a>00266 <a class="code" href="classboost_1_1xint_1_1integer.html#a04331a88bb2a975a7349e0c04cb230de">_make_unique</a>();
+<a name="l00267"></a>00267 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aaa43f067c7f1a7772276cf9a57ab653c">shift_left</a>(shift);
+<a name="l00268"></a>00268 }
+<a name="l00269"></a>00269 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00270"></a>00270 }
+<a name="l00271"></a>00271
+<a name="l00272"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a0ca39c4cb36160461fb9848cc9e7f2d4">00272</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#a0ca39c4cb36160461fb9848cc9e7f2d4">integer::operator&gt;&gt;=</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>) {
+<a name="l00273"></a>00273 <span class="keywordflow">if</span> (shift&gt;0) {
+<a name="l00274"></a>00274 <a class="code" href="classboost_1_1xint_1_1integer.html#a04331a88bb2a975a7349e0c04cb230de">_make_unique</a>();
+<a name="l00275"></a>00275 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ad28012e618ecab56b69ceac7585d1741">shift_right</a>(shift);
+<a name="l00276"></a>00276 }
+<a name="l00277"></a>00277 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00278"></a>00278 }
+<a name="l00279"></a>00279
+<a name="l00280"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">00280</a> <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>() {
+<a name="l00281"></a>00281 <span class="keywordflow">if</span> (cZero.get()==0) cZero.reset(<span class="keyword">new</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>(0));
+<a name="l00282"></a>00282 <span class="keywordflow">return</span> *cZero;
+<a name="l00283"></a>00283 }
+<a name="l00284"></a>00284
+<a name="l00285"></a><a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">00285</a> <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>() {
+<a name="l00286"></a>00286 <span class="keywordflow">if</span> (cOne.get()==0) cOne.reset(<span class="keyword">new</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>(1));
+<a name="l00287"></a>00287 <span class="keywordflow">return</span> *cOne;
+<a name="l00288"></a>00288 }
+<a name="l00289"></a>00289
+<a name="l00290"></a><a class="code" href="classboost_1_1xint_1_1integer.html#acb5a0571dc9544921e603c00a0c6c93a">00290</a> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> <a class="code" href="classboost_1_1xint_1_1integer.html#acb5a0571dc9544921e603c00a0c6c93a">integer::_get_digit</a>(<span class="keywordtype">size_t</span> index)<span class="keyword"> const </span>{
+<a name="l00291"></a>00291 <span class="keywordflow">return</span> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[index];
+<a name="l00292"></a>00292 }
+<a name="l00293"></a>00293
+<a name="l00294"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a9b98d94930ac6e0c4a6add69f622e6e2">00294</a> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> <a class="code" href="classboost_1_1xint_1_1integer.html#acb5a0571dc9544921e603c00a0c6c93a">integer::_get_digit</a>(<span class="keywordtype">size_t</span> index, <span class="keywordtype">bool</span>)<span class="keyword"> const </span>{
+<a name="l00295"></a>00295 <span class="keywordflow">if</span> (index &gt;= data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>) <span class="keywordflow">return</span> 0;
+<a name="l00296"></a>00296 <span class="keywordflow">return</span> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>[index];
+<a name="l00297"></a>00297 }
+<a name="l00298"></a>00298
+<a name="l00299"></a><a class="code" href="classboost_1_1xint_1_1integer.html#ad4a65fa154847321803888988d18d244">00299</a> <span class="keywordtype">size_t</span> <a class="code" href="classboost_1_1xint_1_1integer.html#ad4a65fa154847321803888988d18d244">integer::_get_length</a>()<span class="keyword"> const </span>{
+<a name="l00300"></a>00300 <span class="keywordflow">return</span> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">mLength</a>;
+<a name="l00301"></a>00301 }
+<a name="l00302"></a>00302
+<a name="l00303"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">00303</a> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">integer::_throw_if_nan</a>()<span class="keyword"> const </span>{
+<a name="l00304"></a>00304 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer.html#a65fb2696f8506a6db16b8fb422c98ff5" title="Tests *this for Not-a-Number.">is_nan</a>()) <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1not__a__number.html" title="Exception class.">not_a_number</a>();
+<a name="l00305"></a>00305 }
+<a name="l00306"></a>00306
+<a name="l00307"></a>00307 } <span class="comment">// namespace xint</span>
+<a name="l00308"></a>00308 } <span class="comment">// namespace boost</span>
 </pre></div></div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:07 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/misc_8cpp.html
==============================================================================
--- sandbox/xint/doc/misc_8cpp.html (original)
+++ sandbox/xint/doc/misc_8cpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -34,7 +34,8 @@
 <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>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All of the functions in the XInt library are within this namespace. </p>
 <br/></td></tr>
@@ -43,19 +44,19 @@
 <tr><td colspan="2"><div class="groupHeader">Miscellaneous functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp458f92801f3edfaf2e30b1f530c324e2"></a> </p>
 <br/><br/></div></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="mdescLeft">&nbsp;</td><td class="mdescRight">Tells whether the library was compiled with <a class="el" href="securemode.html">Secure Mode </a> enabled. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Tells whether the library was compiled with the <a class="el" href="threadsafe.html">Thread Safe Operation option </a> enabled. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Get the log<sub>2</sub> value of an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0492c49fda91b5f498074d3f812906dd">boost::xint::opt_secure_mode</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tells whether the library was compiled with <a class="el" href="securemode.html">Secure Mode </a> enabled. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac80750e62d5ffa2484332aae4b23d379">boost::xint::opt_thread_safe</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tells whether the library was compiled with the <a class="el" href="threadsafe.html">Thread Safe Operation option </a> enabled. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd">boost::xint::log2</a> (const integer &amp;n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the log<sub>2</sub> value of an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>. <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Functions that don't fall into any other category. </p>
 
 <p>Definition in file <a class="el" href="misc_8cpp_source.html">misc.cpp</a>.</p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/misc_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/misc_8cpp_source.html (original)
+++ sandbox/xint/doc/misc_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -39,40 +39,42 @@
 <a name="l00013"></a>00013
 <a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
 <a name="l00019"></a>00019
-<a name="l00020"></a>00020 <span class="keyword">namespace </span>xint {
-<a name="l00021"></a>00021
-<a name="l00027"></a>00027 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd" title="Tells whether the library was compiled with Secure Mode enabled.">opt_secure_mode</a>() {
-<a name="l00028"></a>00028 <span class="preprocessor"> #ifdef XINT_SECURE</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="l00041"></a>00041 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ad55aa4d44083238d9ec313511f5b1dfa" title="Tells whether the library was compiled with the Thread Safe Operation option enabled...">opt_thread_safe</a>() {
-<a name="l00042"></a>00042 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
-<a name="l00043"></a>00043 <span class="preprocessor"></span> <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00044"></a>00044 <span class="preprocessor"> #else</span>
-<a name="l00045"></a>00045 <span class="preprocessor"></span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00046"></a>00046 <span class="preprocessor"> #endif</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span>}
-<a name="l00048"></a>00048
-<a name="l00062"></a>00062 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048" title="Get the log2 value of an integer.">log2</a>(<span class="keyword">const</span> integer&amp; n) {
-<a name="l00063"></a>00063 n._throw_if_nan();
-<a name="l00064"></a>00064
-<a name="l00065"></a>00065 <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="l00066"></a>00066 <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="l00067"></a>00067 <span class="keywordflow">while</span> (mask!=0) {
-<a name="l00068"></a>00068 <span class="keywordflow">if</span> ((mask &amp; d)!=0) <span class="keywordflow">break</span>;
-<a name="l00069"></a>00069 mask&gt;&gt;=1;
-<a name="l00070"></a>00070 --r;
-<a name="l00071"></a>00071 }
-<a name="l00072"></a>00072 <span class="keywordflow">return</span> r;
-<a name="l00073"></a>00073 }
-<a name="l00074"></a>00074
-<a name="l00075"></a>00075 } <span class="comment">// namespace xint</span>
+<a name="l00020"></a>00020 <span class="keyword">namespace </span>boost {
+<a name="l00021"></a>00021 <span class="keyword">namespace </span>xint {
+<a name="l00022"></a>00022
+<a name="l00028"></a>00028 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a0492c49fda91b5f498074d3f812906dd" title="Tells whether the library was compiled with Secure Mode enabled.">opt_secure_mode</a>() {
+<a name="l00029"></a>00029 <span class="preprocessor"> #ifdef XINT_SECURE</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span> <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00031"></a>00031 <span class="preprocessor"> #else</span>
+<a name="l00032"></a>00032 <span class="preprocessor"></span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00033"></a>00033 <span class="preprocessor"> #endif</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>}
+<a name="l00035"></a>00035
+<a name="l00042"></a>00042 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac80750e62d5ffa2484332aae4b23d379" title="Tells whether the library was compiled with the Thread Safe Operation option enabled...">opt_thread_safe</a>() {
+<a name="l00043"></a>00043 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
+<a name="l00044"></a>00044 <span class="preprocessor"></span> <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00045"></a>00045 <span class="preprocessor"> #else</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00047"></a>00047 <span class="preprocessor"> #endif</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span>}
+<a name="l00049"></a>00049
+<a name="l00063"></a>00063 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd" title="Get the log2 value of an integer.">log2</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00064"></a>00064 n._throw_if_nan();
+<a name="l00065"></a>00065
+<a name="l00066"></a>00066 <span class="keywordtype">size_t</span> r=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">detail::bits_per_digit</a> * n._get_length();
+<a name="l00067"></a>00067 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> mask=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#ab7d9f30b8cad63e2e82998aa2e8d0fcd">detail::digit_hibit</a>, d=n._get_digit(n._get_length()-1);
+<a name="l00068"></a>00068 <span class="keywordflow">while</span> (mask!=0) {
+<a name="l00069"></a>00069 <span class="keywordflow">if</span> ((mask &amp; d)!=0) <span class="keywordflow">break</span>;
+<a name="l00070"></a>00070 mask&gt;&gt;=1;
+<a name="l00071"></a>00071 --r;
+<a name="l00072"></a>00072 }
+<a name="l00073"></a>00073 <span class="keywordflow">return</span> r;
+<a name="l00074"></a>00074 }
+<a name="l00075"></a>00075
+<a name="l00076"></a>00076 } <span class="comment">// namespace xint</span>
+<a name="l00077"></a>00077 } <span class="comment">// namespace boost</span>
 </pre></div></div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:07 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/modular_8cpp.html
==============================================================================
--- sandbox/xint/doc/modular_8cpp.html (original)
+++ sandbox/xint/doc/modular_8cpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -35,7 +35,8 @@
 <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>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All of the functions in the XInt library are within this namespace. </p>
 <br/></td></tr>
@@ -44,22 +45,22 @@
 <tr><td colspan="2"><div class="groupHeader">Modular math functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpbf63e6a6a1029bb25b7aa51052b38655"></a>A common reason to use a large-integer library is to implement public-key encryption, and the algorithms for such encryption often use modular math. </p>
 <br/><br/></div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad5a8cc6e57ee8abdc21be98275657cc8">xint::mod</a> (const integer &amp;n, const integer &amp;m)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the remainder after dividing a number by another. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#adbbde6cc4b65e9a3df8c52adad9c540f">xint::mulmod</a> (const integer &amp;n, const integer &amp;by, const integer &amp;m)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular product of two integers. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aa5564979e78556afdc68dbbd744a0bcb">xint::sqrmod</a> (const integer &amp;n, const integer &amp;m)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular product of squaring an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac54e9be3a8b131f882f88e57b0ef1c9c">xint::powmod</a> (const integer &amp;n, const integer &amp;e, const integer &amp;m, bool noMontgomery)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the result of <code>n<sup>e</sup></code> % <code>m</code>, keeping the intermediate results (relatively) small. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a9b8c31b64eb9700beea8b95edec31a73">boost::xint::mod</a> (const integer &amp;n, const integer &amp;m)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the remainder after dividing a number by another. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac9af74aa79d9cc7f51c57cc7707824ba">boost::xint::mulmod</a> (const integer &amp;n, const integer &amp;by, const integer &amp;m)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular product of two integers. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#adb9a9cb117e7346a3b56c369cd438b0e">boost::xint::sqrmod</a> (const integer &amp;n, const integer &amp;m)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular product of squaring an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a35e7556e9f2d8fb944dbf732ed3f96cd">boost::xint::powmod</a> (const integer &amp;n, const integer &amp;e, const integer &amp;m, bool noMontgomery)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the result of <code>n<sup>e</sup></code> % <code>m</code>, keeping the intermediate results (relatively) small. <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Contains the definitions for the basic modular math functions. </p>
-<p>The <a class="el" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66" title="Get the modular inverse of a number in a modulus, if there is one.">xint::invmod</a> function, which logically would be here, is actually in <a class="el" href="gcd_8cpp.html" title="Greatest Common Denominator and Least Common Multple.">gcd.cpp</a> to share the gcd_core function. </p>
+<p>The xint::invmod function, which logically would be here, is actually in <a class="el" href="gcd_8cpp.html" title="Greatest Common Denominator and Least Common Multple.">gcd.cpp</a> to share the gcd_core function. </p>
 
 <p>Definition in file <a class="el" href="modular_8cpp_source.html">modular.cpp</a>.</p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/modular_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/modular_8cpp_source.html (original)
+++ sandbox/xint/doc/modular_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -40,66 +40,68 @@
 <a name="l00021"></a>00021 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
 <a name="l00022"></a>00022 <span class="preprocessor">#include &quot;../boost/xint/xint_monty.hpp&quot;</span>
 <a name="l00023"></a>00023
-<a name="l00024"></a>00024 <span class="keyword">namespace </span>xint {
-<a name="l00025"></a>00025
-<a name="l00033"></a>00033 integer <a class="code" href="namespacexint.html#ad5a8cc6e57ee8abdc21be98275657cc8" title="Get the remainder after dividing a number by another.">mod</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m) {
-<a name="l00034"></a>00034 integer r=<a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d" title="Calculate how many dividends would fit into divisor, with the remainder.">divide_r</a>(n, m).second;
-<a name="l00035"></a>00035 <span class="keywordflow">if</span> (r.sign() &lt; 0) r+=<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba" title="Returns the absolute value of an integer.">abs</a>(m);
-<a name="l00036"></a>00036 <span class="keywordflow">return</span> r;
-<a name="l00037"></a>00037 }
-<a name="l00038"></a>00038
-<a name="l00051"></a>00051 integer <a class="code" href="namespacexint.html#adbbde6cc4b65e9a3df8c52adad9c540f" title="Get the modular product of two integers.">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; m) {
-<a name="l00052"></a>00052 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#ad5a8cc6e57ee8abdc21be98275657cc8" title="Get the remainder after dividing a number by another.">mod</a>(n * by, m);
-<a name="l00053"></a>00053 }
-<a name="l00054"></a>00054
-<a name="l00067"></a>00067 integer <a class="code" href="namespacexint.html#aa5564979e78556afdc68dbbd744a0bcb" title="Get the modular product of squaring an integer.">sqrmod</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m) {
-<a name="l00068"></a>00068 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#ad5a8cc6e57ee8abdc21be98275657cc8" title="Get the remainder after dividing a number by another.">mod</a>(<a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b" title="Calculate the value of n2.">sqr</a>(n), m);
-<a name="l00069"></a>00069 }
-<a name="l00070"></a>00070
-<a name="l00092"></a>00092 integer <a class="code" href="namespacexint.html#ac54e9be3a8b131f882f88e57b0ef1c9c" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; e, <span class="keyword">const</span> integer&amp; m, <span class="keywordtype">bool</span>
-<a name="l00093"></a>00093 noMontgomery)
-<a name="l00094"></a>00094 {
-<a name="l00095"></a>00095 <span class="keywordflow">if</span> (m &lt; <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>()) {
-<a name="l00096"></a>00096 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus();
-<a name="l00097"></a>00097 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
-<a name="l00098"></a>00098 }
-<a name="l00099"></a>00099 <span class="keywordflow">if</span> (e.sign()==0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>();
-<a name="l00100"></a>00100
-<a name="l00101"></a>00101 <span class="keywordtype">bool</span> neg=(n.sign() &lt; 0 &amp;&amp; e.odd());
-<a name="l00102"></a>00102
-<a name="l00103"></a>00103 integer answer(<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>());
-<a name="l00104"></a>00104
-<a name="l00105"></a>00105 <span class="comment">// Montgomery&apos;s method is often noticeably faster, but only works if the</span>
-<a name="l00106"></a>00106 <span class="comment">// m is odd.</span>
-<a name="l00107"></a>00107 <span class="keywordflow">if</span> (m.odd() &amp;&amp; !noMontgomery) {
-<a name="l00108"></a>00108 answer=<a class="code" href="namespacexint.html#a7d7e8604c467bc007820c60e1bc21626" title="Returns the Montgomery equivalent of powmod(a, b, n). Used internally.">montgomeryPowerMod</a>(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba" title="Returns the absolute value of an integer.">abs</a>(n) % m, <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba" title="Returns the absolute value of an integer.">abs</a>(e), m);
-<a name="l00109"></a>00109 } <span class="keywordflow">else</span> {
-<a name="l00110"></a>00110 integer p(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba" title="Returns the absolute value of an integer.">abs</a>(n));
-<a name="l00111"></a>00111
-<a name="l00112"></a>00112 <span class="keywordtype">size_t</span> length=e._get_length(), lastBitCount=0;
-<a name="l00113"></a>00113 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> ee(e._get_digit(length-1));
-<a name="l00114"></a>00114 <span class="keywordflow">while</span> (ee != 0) { ee &gt;&gt;= 1; ++lastBitCount; }
-<a name="l00115"></a>00115
-<a name="l00116"></a>00116 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> eIndex=0; eIndex &lt; length; ++eIndex) {
-<a name="l00117"></a>00117 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> ee(e._get_digit(eIndex));
-<a name="l00118"></a>00118
-<a name="l00119"></a>00119 <span class="keywordtype">int</span> bitCount(<span class="keywordtype">int</span>(eIndex == length-1 ? lastBitCount :
-<a name="l00120"></a>00120 <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">detail::bits_per_digit</a>));
-<a name="l00121"></a>00121 <span class="keywordflow">while</span> (bitCount-- &gt; 0) {
-<a name="l00122"></a>00122 <span class="keywordflow">if</span> (ee &amp; 0x01) answer=<a class="code" href="namespacexint.html#adbbde6cc4b65e9a3df8c52adad9c540f" title="Get the modular product of two integers.">mulmod</a>(answer, p, m);
-<a name="l00123"></a>00123 p=<a class="code" href="namespacexint.html#aa5564979e78556afdc68dbbd744a0bcb" title="Get the modular product of squaring an integer.">sqrmod</a>(p, m);
-<a name="l00124"></a>00124 ee &gt;&gt;= 1;
-<a name="l00125"></a>00125 }
-<a name="l00126"></a>00126 }
-<a name="l00127"></a>00127 }
-<a name="l00128"></a>00128
-<a name="l00129"></a>00129 answer._set_negative(neg);
-<a name="l00130"></a>00130 <span class="keywordflow">return</span> answer;
-<a name="l00131"></a>00131 }
-<a name="l00132"></a>00132
-<a name="l00133"></a>00133 } <span class="comment">// namespace xint</span>
+<a name="l00024"></a>00024 <span class="keyword">namespace </span>boost {
+<a name="l00025"></a>00025 <span class="keyword">namespace </span>xint {
+<a name="l00026"></a>00026
+<a name="l00034"></a>00034 integer <a class="code" href="namespaceboost_1_1xint.html#a9b8c31b64eb9700beea8b95edec31a73" title="Get the remainder after dividing a number by another.">mod</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m) {
+<a name="l00035"></a>00035 integer r=<a class="code" href="namespaceboost_1_1xint.html#a0fff3b235a18c0b3243a1ccc01a68f23" title="Calculate how many dividends would fit into divisor, with the remainder.">divide_r</a>(n, m).second;
+<a name="l00036"></a>00036 <span class="keywordflow">if</span> (r.sign() &lt; 0) r+=<a class="code" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672" title="Returns the absolute value of an integer.">abs</a>(m);
+<a name="l00037"></a>00037 <span class="keywordflow">return</span> r;
+<a name="l00038"></a>00038 }
+<a name="l00039"></a>00039
+<a name="l00052"></a>00052 integer <a class="code" href="namespaceboost_1_1xint.html#ac9af74aa79d9cc7f51c57cc7707824ba" title="Get the modular product of two integers.">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; m) {
+<a name="l00053"></a>00053 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a9b8c31b64eb9700beea8b95edec31a73" title="Get the remainder after dividing a number by another.">mod</a>(n * by, m);
+<a name="l00054"></a>00054 }
+<a name="l00055"></a>00055
+<a name="l00068"></a>00068 integer <a class="code" href="namespaceboost_1_1xint.html#adb9a9cb117e7346a3b56c369cd438b0e" title="Get the modular product of squaring an integer.">sqrmod</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m) {
+<a name="l00069"></a>00069 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a9b8c31b64eb9700beea8b95edec31a73" title="Get the remainder after dividing a number by another.">mod</a>(<a class="code" href="namespaceboost_1_1xint.html#afbba1eeb86e4e7610a75afbb89d594e3" title="Calculate the value of n2.">sqr</a>(n), m);
+<a name="l00070"></a>00070 }
+<a name="l00071"></a>00071
+<a name="l00093"></a>00093 integer <a class="code" href="namespaceboost_1_1xint.html#a35e7556e9f2d8fb944dbf732ed3f96cd" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; e, <span class="keyword">const</span> integer&amp; m, <span class="keywordtype">bool</span>
+<a name="l00094"></a>00094 noMontgomery)
+<a name="l00095"></a>00095 {
+<a name="l00096"></a>00096 <span class="keywordflow">if</span> (m &lt; <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>()) {
+<a name="l00097"></a>00097 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus();
+<a name="l00098"></a>00098 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00099"></a>00099 }
+<a name="l00100"></a>00100 <span class="keywordflow">if</span> (e.sign()==0) <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>();
+<a name="l00101"></a>00101
+<a name="l00102"></a>00102 <span class="keywordtype">bool</span> neg=(n.sign() &lt; 0 &amp;&amp; e.odd());
+<a name="l00103"></a>00103
+<a name="l00104"></a>00104 integer answer(<a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>());
+<a name="l00105"></a>00105
+<a name="l00106"></a>00106 <span class="comment">// Montgomery&apos;s method is often noticeably faster, but only works if the</span>
+<a name="l00107"></a>00107 <span class="comment">// m is odd.</span>
+<a name="l00108"></a>00108 <span class="keywordflow">if</span> (m.odd() &amp;&amp; !noMontgomery) {
+<a name="l00109"></a>00109 answer=<a class="code" href="namespaceboost_1_1xint.html#a9e0c8f5da23ce668a7b428256f6b8ed4" title="Returns the Montgomery equivalent of powmod(a, b, n). Used internally.">montgomeryPowerMod</a>(<a class="code" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672" title="Returns the absolute value of an integer.">abs</a>(n) % m, <a class="code" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672" title="Returns the absolute value of an integer.">abs</a>(e), m);
+<a name="l00110"></a>00110 } <span class="keywordflow">else</span> {
+<a name="l00111"></a>00111 integer p(<a class="code" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672" title="Returns the absolute value of an integer.">abs</a>(n));
+<a name="l00112"></a>00112
+<a name="l00113"></a>00113 <span class="keywordtype">size_t</span> length=e._get_length(), lastBitCount=0;
+<a name="l00114"></a>00114 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> ee(e._get_digit(length-1));
+<a name="l00115"></a>00115 <span class="keywordflow">while</span> (ee != 0) { ee &gt;&gt;= 1; ++lastBitCount; }
+<a name="l00116"></a>00116
+<a name="l00117"></a>00117 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> eIndex=0; eIndex &lt; length; ++eIndex) {
+<a name="l00118"></a>00118 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> ee(e._get_digit(eIndex));
+<a name="l00119"></a>00119
+<a name="l00120"></a>00120 <span class="keywordtype">int</span> bitCount(<span class="keywordtype">int</span>(eIndex == length-1 ? lastBitCount :
+<a name="l00121"></a>00121 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">detail::bits_per_digit</a>));
+<a name="l00122"></a>00122 <span class="keywordflow">while</span> (bitCount-- &gt; 0) {
+<a name="l00123"></a>00123 <span class="keywordflow">if</span> (ee &amp; 0x01) answer=<a class="code" href="namespaceboost_1_1xint.html#ac9af74aa79d9cc7f51c57cc7707824ba" title="Get the modular product of two integers.">mulmod</a>(answer, p, m);
+<a name="l00124"></a>00124 p=<a class="code" href="namespaceboost_1_1xint.html#adb9a9cb117e7346a3b56c369cd438b0e" title="Get the modular product of squaring an integer.">sqrmod</a>(p, m);
+<a name="l00125"></a>00125 ee &gt;&gt;= 1;
+<a name="l00126"></a>00126 }
+<a name="l00127"></a>00127 }
+<a name="l00128"></a>00128 }
+<a name="l00129"></a>00129
+<a name="l00130"></a>00130 answer._set_negative(neg);
+<a name="l00131"></a>00131 <span class="keywordflow">return</span> answer;
+<a name="l00132"></a>00132 }
+<a name="l00133"></a>00133
+<a name="l00134"></a>00134 } <span class="comment">// namespace xint</span>
+<a name="l00135"></a>00135 } <span class="comment">// namespace boost</span>
 </pre></div></div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/monty_8cpp.html
==============================================================================
--- sandbox/xint/doc/monty_8cpp.html (original)
+++ sandbox/xint/doc/monty_8cpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -37,7 +37,8 @@
 <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>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All of the functions in the XInt library are within this namespace. </p>
 <br/></td></tr>
@@ -48,22 +49,22 @@
 <tr><td colspan="2"><div class="groupHeader">Montgomery Reduction functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpef45384829a28a8031424a8c453ceaa0"></a> </p>
 <br/><br/></div></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="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the low digit of the inverse of a number. Used internally. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the most efficient R value for a number and the library's internal representation. Used internally. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the Montgomery form of a number. Used for testing. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> from the Montgomery form of a number. Used for testing. <br/></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="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the Montgomery equivalent of <code>mulmod(a, b, n)</code>. Used internally. <br/></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>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the Montgomery equivalent of <code>powmod(a, b, n)</code>. Used internally. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">digit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a50ceb8725ce5a326ef1e43a4d593efac">boost::xint::inverse0</a> (const integer &amp;n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the low digit of the inverse of a number. Used internally. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a5a7360e7330dcc35838ba324c523b395">boost::xint::montgomeryR</a> (const integer &amp;n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the most efficient R value for a number and the library's internal representation. Used internally. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a512ff2447d52a228c1c9f99fea8fd860">boost::xint::toMontgomeryForm</a> (const integer &amp;n, const integer &amp;m)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the Montgomery form of a number. Used for testing. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a07914d9486e835d2dcea3268937296c4">boost::xint::fromMontgomeryForm</a> (const integer &amp;n, const integer &amp;m)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> from the Montgomery form of a number. Used for testing. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab62e3e69cbc7781a86fc9a0192ef5d37">boost::xint::montgomeryMultiplyMod</a> (const integer &amp;a, const integer &amp;b, const integer &amp;n, digit_t nPrime0)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the Montgomery equivalent of <code>mulmod(a, b, n)</code>. Used internally. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a9e0c8f5da23ce668a7b428256f6b8ed4">boost::xint::montgomeryPowerMod</a> (const integer &amp;a, const integer &amp;e, const integer &amp;n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the Montgomery equivalent of <code>powmod(a, b, n)</code>. Used internally. <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Internally used functions. </p>
-<p>This file contains the definitions for functions based on the Montgomery Reduction, used internally for an extra-fast <a class="el" href="namespacexint.html#ac54e9be3a8b131f882f88e57b0ef1c9c" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">xint::powmod</a>. </p>
+<p>This file contains the definitions for functions based on the Montgomery Reduction, used internally for an extra-fast xint::powmod. </p>
 
 <p>Definition in file <a class="el" href="monty_8cpp_source.html">monty.cpp</a>.</p>
 <hr/><h2>Define Documentation</h2>
@@ -83,7 +84,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="monty_8cpp_source.html#l00129">129</a> of file <a class="el" href="monty_8cpp_source.html">monty.cpp</a>.</p>
+<p>Definition at line <a class="el" href="monty_8cpp_source.html#l00130">130</a> of file <a class="el" href="monty_8cpp_source.html">monty.cpp</a>.</p>
 
 </div>
 </div>
@@ -99,12 +100,12 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="monty_8cpp_source.html#l00166">166</a> of file <a class="el" href="monty_8cpp_source.html">monty.cpp</a>.</p>
+<p>Definition at line <a class="el" href="monty_8cpp_source.html#l00167">167</a> of file <a class="el" href="monty_8cpp_source.html">monty.cpp</a>.</p>
 
 </div>
 </div>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/monty_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/monty_8cpp_source.html (original)
+++ sandbox/xint/doc/monty_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -44,256 +44,258 @@
 <a name="l00025"></a>00025
 <a name="l00026"></a>00026 <span class="preprocessor">#include &lt;vector&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="l00033"></a>00033 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> <a class="code" href="namespacexint.html#afd561fd7c7631267fbc7e5c75c2bde71" title="Returns the low digit of the inverse of a number. Used internally.">inverse0</a>(<span class="keyword">const</span> integer&amp; n) {
-<a name="l00034"></a>00034 <span class="comment">// Using the Dussé and Kalisk simplification</span>
-<a name="l00035"></a>00035 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> x = 2, y = 1;
-<a name="l00036"></a>00036 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> n0 = n._get_digit(0);
-<a name="l00037"></a>00037 <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="l00038"></a>00038 <span class="keywordflow">if</span> (x &lt; ((n0 * y) &amp; ((x &lt;&lt; 1) - 1)))
-<a name="l00039"></a>00039 y += x;
-<a name="l00040"></a>00040 <span class="keywordflow">return</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(x - y);
-<a name="l00041"></a>00041 }
-<a name="l00042"></a>00042
-<a name="l00046"></a>00046 integer <a class="code" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b" title="Returns the most efficient R value for a number and the library&amp;#39;s internal representation...">montgomeryR</a>(<span class="keyword">const</span> integer&amp; n) {
-<a name="l00047"></a>00047 <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">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="l00048"></a>00048 }
-<a name="l00049"></a>00049
-<a name="l00051"></a>00051 integer <a class="code" href="namespacexint.html#ab8e85cd5425fcec419c07155e2a91e13" title="Returns the Montgomery form of a number. Used for testing.">toMontgomeryForm</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m) {
-<a name="l00052"></a>00052 <span class="keywordflow">return</span> (n * <a class="code" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b" title="Returns the most efficient R value for a number and the library&amp;#39;s internal representation...">montgomeryR</a>(m) % m);
-<a name="l00053"></a>00053 }
-<a name="l00054"></a>00054
-<a name="l00056"></a>00056 integer <a class="code" href="namespacexint.html#a93ed16c5350b34ca22108e48b51918a5" title="Returns the integer from the Montgomery form of a number. Used for testing.">fromMontgomeryForm</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m) {
-<a name="l00057"></a>00057 integer inv=<a class="code" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(<a class="code" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b" title="Returns the most efficient R value for a number and the library&amp;#39;s internal representation...">montgomeryR</a>(m), m);
-<a name="l00058"></a>00058 <span class="keywordflow">if</span> (inv.is_nan()) {
-<a name="l00059"></a>00059 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus(<span class="stringliteral">&quot;modulus has no inverse&quot;</span>);
-<a name="l00060"></a>00060 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
-<a name="l00061"></a>00061 }
-<a name="l00062"></a>00062 <span class="keywordflow">return</span> (n * inv % m);
-<a name="l00063"></a>00063 }
-<a name="l00064"></a>00064
-<a name="l00065"></a>00065 <span class="comment">//integer montgomeryReduction(const integer&amp; m, const integer&amp; mPrime, const</span>
-<a name="l00066"></a>00066 <span class="comment">// integer&amp; T)</span>
-<a name="l00067"></a>00067 <span class="comment">//{</span>
-<a name="l00068"></a>00068 <span class="comment">// // Unstated parameter b is digit_overflowbit, a power of 2</span>
-<a name="l00069"></a>00069 <span class="comment">// // Unstated parameter n is m.data-&gt;mLength</span>
-<a name="l00070"></a>00070 <span class="comment">// // Unstated parameter R is b^n</span>
-<a name="l00071"></a>00071 <span class="comment">// // gcd(m, b)==1, or in other words, m must be an odd number</span>
-<a name="l00072"></a>00072 <span class="comment">// // m&apos;=-m^(-1) mod b (precalculated)</span>
-<a name="l00073"></a>00073 <span class="comment">// // T is any arbitrary number greater than zero and &lt;= m*R</span>
-<a name="l00074"></a>00074 <span class="comment">//</span>
-<a name="l00075"></a>00075 <span class="comment">// int n=m._get_data()-&gt;mLength;</span>
-<a name="l00076"></a>00076 <span class="comment">// doubledigit_t mprime = mPrime._get_data()-&gt;digits[0];</span>
-<a name="l00077"></a>00077 <span class="comment">//</span>
-<a name="l00078"></a>00078 <span class="comment">// integer A(T);</span>
-<a name="l00079"></a>00079 <span class="comment">// for (int i=0; i &lt; n; ++i) {</span>
-<a name="l00080"></a>00080 <span class="comment">// integer ui((A._get_data()-&gt;digits[i] * mprime) &amp; digit_mask);</span>
-<a name="l00081"></a>00081 <span class="comment">// ui &lt;&lt;= (bits_per_digit * i); // Fast-multiply by b^i</span>
-<a name="l00082"></a>00082 <span class="comment">// A+=(ui*m);</span>
-<a name="l00083"></a>00083 <span class="comment">// }</span>
-<a name="l00084"></a>00084 <span class="comment">// A &gt;&gt;= (bits_per_digit * n); // Fast-divide by b^n</span>
-<a name="l00085"></a>00085 <span class="comment">// if (A &gt;= m) A -= m;</span>
-<a name="l00086"></a>00086 <span class="comment">// return A;</span>
-<a name="l00087"></a>00087 <span class="comment">//}</span>
-<a name="l00088"></a>00088
-<a name="l00092"></a>00092 integer <a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c" title="Returns the Montgomery equivalent of mulmod(a, b, n). Used internally.">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;
-<a name="l00093"></a>00093 n, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> nPrime0)
-<a name="l00094"></a>00094 {
-<a name="l00095"></a>00095 <span class="comment">// Using the Dussé and Kalisk simplification</span>
-<a name="l00096"></a>00096 <span class="comment">// Unstated parameter B is a power of two representing the number of values</span>
-<a name="l00097"></a>00097 <span class="comment">// that a single digit can hold, i.e. digit_overflowbit</span>
-<a name="l00098"></a>00098 <span class="comment">// Unstated parameter L is the number of digits in the modulus, i.e.</span>
-<a name="l00099"></a>00099 <span class="comment">// n._get_length()</span>
-<a name="l00100"></a>00100 <span class="comment">// Unstated parameter r is B^L</span>
-<a name="l00101"></a>00101 <span class="comment">// nPrime0 is nPrime mod B, or digit zero of nPrime</span>
-<a name="l00102"></a>00102
-<a name="l00103"></a>00103 <span class="keyword">const</span> integer B(<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>);
-<a name="l00104"></a>00104 <span class="keyword">const</span> <span class="keywordtype">size_t</span> L(n._get_length()), L1(L-1);
-<a name="l00105"></a>00105
-<a name="l00106"></a>00106 integer t=a*b;
-<a name="l00107"></a>00107 <span class="keywordtype">size_t</span> i=0;
-<a name="l00108"></a>00108
-<a name="l00109"></a>00109 <span class="keywordflow">do</span> {
-<a name="l00110"></a>00110 <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="l00111"></a>00111 t += (n * mi) &lt;&lt; (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * i);
-<a name="l00112"></a>00112 } <span class="keywordflow">while</span> (++i &lt;= L1);
-<a name="l00113"></a>00113
-<a name="l00114"></a>00114 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="l00115"></a>00115 <span class="keywordflow">return</span> (t &gt;= n ? t - n : t);
-<a name="l00116"></a>00116 }
-<a name="l00117"></a>00117
-<a name="l00118"></a>00118 <span class="keyword">namespace </span>{
-<a name="l00119"></a>00119
-<a name="l00120"></a>00120 <span class="comment">// cMaxK sets the balance between memory/precalculations required and the number</span>
-<a name="l00121"></a>00121 <span class="comment">// of calculations required for an exponentiation. Increasing it can only reduce</span>
-<a name="l00122"></a>00122 <span class="comment">// the calculations by a small amount, whereas it increases the memory</span>
-<a name="l00123"></a>00123 <span class="comment">// requirements and number of precalculations by an exponential amount. 8</span>
-<a name="l00124"></a>00124 <span class="comment">// provides a good balance.</span>
-<a name="l00125"></a>00125 <span class="keyword">const</span> <span class="keywordtype">size_t</span> cMaxK=8;
-<a name="l00126"></a>00126 <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="l00127"></a>00127 <span class="keyword">typedef</span> std::vector&lt;kbitdigit_t&gt; vkbitdigit_t;
-<a name="l00128"></a>00128 <span class="keyword">typedef</span> std::vector&lt;integer&gt; vxint_t;
-<a name="l00129"></a><a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">00129</a> <span class="preprocessor">#define ddPowerOfTwo(p) (doubledigit_t(1) &lt;&lt; p)</span>
-<a name="l00130"></a>00130 <span class="preprocessor"></span>
-<a name="l00131"></a>00131 <span class="comment">// The splitIntoKBitDigits function assumes that cMaxK &lt;= bits_per_digit+1,</span>
-<a name="l00132"></a>00132 <span class="comment">// it won&apos;t work properly if it isn&apos;t.</span>
-<a name="l00133"></a>00133 BOOST_STATIC_ASSERT(cMaxK &lt;= <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>+1);
-<a name="l00134"></a>00134
-<a name="l00135"></a>00135 <span class="keyword">class </span>TUTable {
-<a name="l00136"></a>00136 <span class="keyword">public</span>:
-<a name="l00137"></a>00137 <span class="keyword">typedef</span> std::pair&lt;int, int&gt; value_t;
-<a name="l00138"></a>00138
-<a name="l00139"></a>00139 <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#a934de4c9ba95abb023be91f96559097d">mTable</a>[x]; }
-<a name="l00140"></a>00140
-<a name="l00141"></a>00141 <span class="keyword">static</span> <span class="keyword">const</span> TUTable&amp; <span class="keyword">get</span>() {
-<a name="l00142"></a>00142 <span class="comment">// Construct a singleton instance on demand</span>
-<a name="l00143"></a>00143 <span class="keywordflow">if</span> (mPtr.get()==0) mPtr.reset(<span class="keyword">new</span> TUTable);
-<a name="l00144"></a>00144 <span class="keywordflow">return</span> *mPtr;
-<a name="l00145"></a>00145 }
-<a name="l00146"></a>00146
-<a name="l00147"></a>00147 <span class="keyword">private</span>:
-<a name="l00148"></a>00148 TUTable(): <a class="code" href="monty_8cpp.html#a934de4c9ba95abb023be91f96559097d">mTable</a>(new value_t[<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(cMaxK)]) {
-<a name="l00149"></a>00149 value_t *p=&amp;<a class="code" href="monty_8cpp.html#a934de4c9ba95abb023be91f96559097d">mTable</a>[0], *pe=p+<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(cMaxK);
-<a name="l00150"></a>00150 *p++=std::make_pair(0, 0);
-<a name="l00151"></a>00151 <span class="keywordtype">int</span> i=1;
-<a name="l00152"></a>00152 <span class="keywordflow">while</span> (p!=pe) *p++=calculateValues(i++);
-<a name="l00153"></a>00153 }
-<a name="l00154"></a>00154
-<a name="l00155"></a>00155 std::pair&lt;int, int&gt; calculateValues(<span class="keywordtype">int</span> x) {
-<a name="l00156"></a>00156 <span class="keywordtype">int</span> r=0;
-<a name="l00157"></a>00157 <span class="keywordflow">while</span> (1) {
-<a name="l00158"></a>00158 <span class="keywordflow">if</span> (x &amp; 0x01) <span class="keywordflow">return</span> std::make_pair(r, x);
-<a name="l00159"></a>00159 ++r;
-<a name="l00160"></a>00160 x &gt;&gt;= 1;
-<a name="l00161"></a>00161 }
-<a name="l00162"></a>00162 }
-<a name="l00163"></a>00163
-<a name="l00164"></a>00164 <span class="keyword">static</span> std::auto_ptr&lt;TUTable&gt; mPtr;
-<a name="l00165"></a>00165
-<a name="l00166"></a><a class="code" href="monty_8cpp.html#a934de4c9ba95abb023be91f96559097d">00166</a> boost::scoped_array&lt;value_t&gt; <a class="code" href="monty_8cpp.html#a934de4c9ba95abb023be91f96559097d">mTable</a>;
-<a name="l00167"></a>00167 };
-<a name="l00168"></a>00168
-<a name="l00169"></a>00169 std::auto_ptr&lt;TUTable&gt; TUTable::mPtr;
-<a name="l00170"></a>00170
-<a name="l00171"></a>00171 <span class="keywordtype">int</span> mostEfficientK(<span class="keyword">const</span> integer&amp; e) {
-<a name="l00172"></a>00172 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> k=cMaxK, kTarget=<a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048" title="Get the log2 value of an integer.">log2</a>(e)-1;
-<a name="l00173"></a>00173 <span class="keywordflow">while</span> (k &gt; 1 &amp;&amp; ((k - 1) * (k &lt;&lt; ((k - 1) &lt;&lt; 1))
-<a name="l00174"></a>00174 / (<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(k) - k - 1)) &gt;= kTarget)
-<a name="l00175"></a>00175 --k;
-<a name="l00176"></a>00176 <span class="keywordflow">return</span> int(k);
-<a name="l00177"></a>00177 }
-<a name="l00178"></a>00178
-<a name="l00179"></a>00179 vxint_t precalculateOddPowersOfAa(<span class="keyword">const</span> integer&amp; a, <span class="keyword">const</span> integer&amp;
-<a name="l00180"></a>00180 r, <span class="keyword">const</span> integer&amp; n, <span class="keywordtype">size_t</span> k)
-<a name="l00181"></a>00181 {
-<a name="l00182"></a>00182 integer aa=a*r%n, aSquared=a*a%n;
-<a name="l00183"></a>00183
-<a name="l00184"></a>00184 vxint_t rval;
-<a name="l00185"></a>00185 rval.reserve(<span class="keywordtype">size_t</span>(<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(k)));
-<a name="l00186"></a>00186 rval.push_back(<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>()); <span class="comment">// Anything to the zeroth power is one</span>
-<a name="l00187"></a>00187 rval.push_back(aa); <span class="comment">// Anything to the first power is itself</span>
-<a name="l00188"></a>00188
-<a name="l00189"></a>00189 <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="l00190"></a>00190 aa=aa*aSquared%n;
-<a name="l00191"></a>00191 rval.push_back(<a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>()); <span class="comment">// Even powers not needed or calculated</span>
-<a name="l00192"></a>00192 rval.push_back(aa); <span class="comment">// Odd power</span>
-<a name="l00193"></a>00193 }
-<a name="l00194"></a>00194
-<a name="l00195"></a>00195 <span class="keywordflow">return</span> rval;
-<a name="l00196"></a>00196 }
-<a name="l00197"></a>00197
-<a name="l00198"></a>00198 vkbitdigit_t splitIntoKBitDigits(<span class="keyword">const</span> integer&amp; e, <span class="keywordtype">size_t</span> k) {
-<a name="l00199"></a>00199 <span class="keywordtype">size_t</span> eBits=<a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048" title="Get the log2 value of an integer.">log2</a>(e), eDigits=(eBits+k-1)/k, i=0, bitsInHopper=0;
-<a name="l00200"></a>00200
-<a name="l00201"></a>00201 vkbitdigit_t rval;
-<a name="l00202"></a>00202 rval.reserve(eDigits);
-<a name="l00203"></a>00203
-<a name="l00204"></a>00204 <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="l00205"></a>00205 <span class="keywordflow">while</span> (eDigits-- &gt; 0) {
-<a name="l00206"></a>00206 <span class="keywordflow">if</span> (bitsInHopper &lt; k &amp;&amp; i &lt; e._get_length()) {
-<a name="l00207"></a>00207 <span class="comment">// Add more bits to the hopper</span>
-<a name="l00208"></a>00208 hopper = hopper | (<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(e._get_digit(i++)) &lt;&lt; bitsInHopper);
-<a name="l00209"></a>00209 bitsInHopper += <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>;
-<a name="l00210"></a>00210 }
-<a name="l00211"></a>00211
-<a name="l00212"></a>00212 <span class="comment">// Grab k bits off the bottom</span>
-<a name="l00213"></a>00213 <span class="keywordflow">if</span> (bitsInHopper &gt; 0) {
-<a name="l00214"></a>00214 rval.push_back(kbitdigit_t(hopper &amp; mask));
-<a name="l00215"></a>00215 hopper &gt;&gt;= k;
-<a name="l00216"></a>00216 bitsInHopper-=k;
-<a name="l00217"></a>00217 } <span class="keywordflow">else</span> {
-<a name="l00218"></a>00218 rval.push_back(0);
-<a name="l00219"></a>00219 }
-<a name="l00220"></a>00220 }
-<a name="l00221"></a>00221
-<a name="l00222"></a>00222 <span class="keywordflow">return</span> rval;
-<a name="l00223"></a>00223 }
-<a name="l00224"></a>00224
-<a name="l00225"></a>00225 } <span class="comment">// namespace</span>
-<a name="l00226"></a>00226
-<a name="l00230"></a>00230 integer <a class="code" href="namespacexint.html#a7d7e8604c467bc007820c60e1bc21626" title="Returns the Montgomery equivalent of powmod(a, b, n). Used internally.">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="l00231"></a>00231 {
-<a name="l00232"></a>00232 <span class="comment">// 0 &lt;= a &lt; n, n is odd</span>
-<a name="l00233"></a>00233 <span class="comment">// Returns a^e mod n</span>
-<a name="l00234"></a>00234
-<a name="l00235"></a>00235 <span class="keyword">const</span> TUTable &amp;tuTable(TUTable::get());
-<a name="l00236"></a>00236
-<a name="l00237"></a>00237 <span class="keywordflow">if</span> (e.sign()==0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>();
-<a name="l00238"></a>00238 <span class="keywordflow">if</span> (n.even()) {
-<a name="l00239"></a>00239 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus(<span class="stringliteral">&quot;montgomeryPowerMod &quot;</span>
-<a name="l00240"></a>00240 <span class="stringliteral">&quot;requires an odd modulus&quot;</span>);
-<a name="l00241"></a>00241 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
-<a name="l00242"></a>00242 }
-<a name="l00243"></a>00243
-<a name="l00244"></a>00244 <span class="comment">// Precalculate some values</span>
-<a name="l00245"></a>00245 <span class="keyword">const</span> <span class="keywordtype">size_t</span> k(mostEfficientK(e));
-<a name="l00246"></a>00246 <span class="keyword">const</span> integer r(<a class="code" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b" title="Returns the most efficient R value for a number and the library&amp;#39;s internal representation...">montgomeryR</a>(n));
-<a name="l00247"></a>00247 <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" title="Returns the low digit of the inverse of a number. Used internally.">inverse0</a>(n));
-<a name="l00248"></a>00248 <span class="keyword">const</span> vxint_t oddPowersOfAa(precalculateOddPowersOfAa(a, r, n, k));
-<a name="l00249"></a>00249
-<a name="l00250"></a>00250 <span class="comment">// Slice the exponent (e) up into k-bit digits</span>
-<a name="l00251"></a>00251 vkbitdigit_t eDigits(splitIntoKBitDigits(e, k));
-<a name="l00252"></a>00252
-<a name="l00253"></a>00253 integer pp;
-<a name="l00254"></a>00254
-<a name="l00255"></a>00255 kbitdigit_t i=eDigits.back();
-<a name="l00256"></a>00256 eDigits.pop_back();
-<a name="l00257"></a>00257 <span class="keywordflow">if</span> (i == 0) {
-<a name="l00258"></a>00258 pp=r%n;
-<a name="l00259"></a>00259 } <span class="keywordflow">else</span> {
-<a name="l00260"></a>00260 std::pair&lt;int, int&gt; tu=tuTable[i];
-<a name="l00261"></a>00261 pp=oddPowersOfAa[tu.second];
-<a name="l00262"></a>00262 <span class="keywordflow">while</span> (tu.first-- &gt; 0) pp=<a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c" title="Returns the Montgomery equivalent of mulmod(a, b, n). Used internally.">montgomeryMultiplyMod</a>(pp, pp, n, nPrime0);
-<a name="l00263"></a>00263 }
-<a name="l00264"></a>00264
-<a name="l00265"></a>00265 <span class="keywordflow">while</span> (!eDigits.empty()) {
-<a name="l00266"></a>00266 i=eDigits.back();
-<a name="l00267"></a>00267 eDigits.pop_back();
-<a name="l00268"></a>00268
-<a name="l00269"></a>00269 <span class="keywordflow">if</span> (i == 0) {
-<a name="l00270"></a>00270 <span class="keywordtype">int</span> t=int(k);
-<a name="l00271"></a>00271 <span class="keywordflow">while</span> (t-- &gt; 0) pp=<a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c" title="Returns the Montgomery equivalent of mulmod(a, b, n). Used internally.">montgomeryMultiplyMod</a>(pp, pp, n, nPrime0);
-<a name="l00272"></a>00272 } <span class="keywordflow">else</span> {
-<a name="l00273"></a>00273 std::pair&lt;int, int&gt; tu=tuTable[i];
-<a name="l00274"></a>00274
-<a name="l00275"></a>00275 <span class="keywordtype">size_t</span> s=k-tu.first;
-<a name="l00276"></a>00276 <span class="keywordflow">while</span> (s-- &gt; 0) pp=<a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c" title="Returns the Montgomery equivalent of mulmod(a, b, n). Used internally.">montgomeryMultiplyMod</a>(pp, pp, n, nPrime0);
-<a name="l00277"></a>00277
-<a name="l00278"></a>00278 pp=<a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c" title="Returns the Montgomery equivalent of mulmod(a, b, n). Used internally.">montgomeryMultiplyMod</a>(pp, oddPowersOfAa[tu.second], n, nPrime0);
-<a name="l00279"></a>00279
-<a name="l00280"></a>00280 <span class="keywordflow">while</span> (tu.first-- &gt; 0) pp=<a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c" title="Returns the Montgomery equivalent of mulmod(a, b, n). Used internally.">montgomeryMultiplyMod</a>(pp, pp, n, nPrime0);
-<a name="l00281"></a>00281 }
-<a name="l00282"></a>00282 }
-<a name="l00283"></a>00283
-<a name="l00284"></a>00284 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c" title="Returns the Montgomery equivalent of mulmod(a, b, n). Used internally.">montgomeryMultiplyMod</a>(pp, <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>(), n, nPrime0);
-<a name="l00285"></a>00285 }
-<a name="l00286"></a>00286
-<a name="l00287"></a>00287 } <span class="comment">// namespace xint</span>
+<a name="l00028"></a>00028 <span class="keyword">namespace </span>boost {
+<a name="l00029"></a>00029 <span class="keyword">namespace </span>xint {
+<a name="l00030"></a>00030
+<a name="l00031"></a>00031 <span class="keyword">using namespace </span>detail;
+<a name="l00032"></a>00032
+<a name="l00034"></a>00034 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> <a class="code" href="namespaceboost_1_1xint.html#a50ceb8725ce5a326ef1e43a4d593efac" title="Returns the low digit of the inverse of a number. Used internally.">inverse0</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00035"></a>00035 <span class="comment">// Using the Dussé and Kalisk simplification</span>
+<a name="l00036"></a>00036 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> x = 2, y = 1;
+<a name="l00037"></a>00037 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> n0 = n._get_digit(0);
+<a name="l00038"></a>00038 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 2; i &lt;= <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>; ++i, x &lt;&lt;= 1)
+<a name="l00039"></a>00039 <span class="keywordflow">if</span> (x &lt; ((n0 * y) &amp; ((x &lt;&lt; 1) - 1)))
+<a name="l00040"></a>00040 y += x;
+<a name="l00041"></a>00041 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(x - y);
+<a name="l00042"></a>00042 }
+<a name="l00043"></a>00043
+<a name="l00047"></a>00047 integer <a class="code" href="namespaceboost_1_1xint.html#a5a7360e7330dcc35838ba324c523b395" title="Returns the most efficient R value for a number and the library&amp;#39;s internal representation...">montgomeryR</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00048"></a>00048 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>() &lt;&lt; (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> * n._get_data()-&gt;mLength);
+<a name="l00049"></a>00049 }
+<a name="l00050"></a>00050
+<a name="l00052"></a>00052 integer <a class="code" href="namespaceboost_1_1xint.html#a512ff2447d52a228c1c9f99fea8fd860" title="Returns the Montgomery form of a number. Used for testing.">toMontgomeryForm</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m) {
+<a name="l00053"></a>00053 <span class="keywordflow">return</span> (n * <a class="code" href="namespaceboost_1_1xint.html#a5a7360e7330dcc35838ba324c523b395" title="Returns the most efficient R value for a number and the library&amp;#39;s internal representation...">montgomeryR</a>(m) % m);
+<a name="l00054"></a>00054 }
+<a name="l00055"></a>00055
+<a name="l00057"></a>00057 integer <a class="code" href="namespaceboost_1_1xint.html#a07914d9486e835d2dcea3268937296c4" title="Returns the integer from the Montgomery form of a number. Used for testing.">fromMontgomeryForm</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; m) {
+<a name="l00058"></a>00058 integer inv=<a class="code" href="namespaceboost_1_1xint.html#a1e2477157ea768d8c57fac1c31a8f7ca" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(<a class="code" href="namespaceboost_1_1xint.html#a5a7360e7330dcc35838ba324c523b395" title="Returns the most efficient R value for a number and the library&amp;#39;s internal representation...">montgomeryR</a>(m), m);
+<a name="l00059"></a>00059 <span class="keywordflow">if</span> (inv.is_nan()) {
+<a name="l00060"></a>00060 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus(<span class="stringliteral">&quot;modulus has no inverse&quot;</span>);
+<a name="l00061"></a>00061 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00062"></a>00062 }
+<a name="l00063"></a>00063 <span class="keywordflow">return</span> (n * inv % m);
+<a name="l00064"></a>00064 }
+<a name="l00065"></a>00065
+<a name="l00066"></a>00066 <span class="comment">//integer montgomeryReduction(const integer&amp; m, const integer&amp; mPrime, const</span>
+<a name="l00067"></a>00067 <span class="comment">// integer&amp; T)</span>
+<a name="l00068"></a>00068 <span class="comment">//{</span>
+<a name="l00069"></a>00069 <span class="comment">// // Unstated parameter b is digit_overflowbit, a power of 2</span>
+<a name="l00070"></a>00070 <span class="comment">// // Unstated parameter n is m.data-&gt;mLength</span>
+<a name="l00071"></a>00071 <span class="comment">// // Unstated parameter R is b^n</span>
+<a name="l00072"></a>00072 <span class="comment">// // gcd(m, b)==1, or in other words, m must be an odd number</span>
+<a name="l00073"></a>00073 <span class="comment">// // m&apos;=-m^(-1) mod b (precalculated)</span>
+<a name="l00074"></a>00074 <span class="comment">// // T is any arbitrary number greater than zero and &lt;= m*R</span>
+<a name="l00075"></a>00075 <span class="comment">//</span>
+<a name="l00076"></a>00076 <span class="comment">// int n=m._get_data()-&gt;mLength;</span>
+<a name="l00077"></a>00077 <span class="comment">// doubledigit_t mprime = mPrime._get_data()-&gt;digits[0];</span>
+<a name="l00078"></a>00078 <span class="comment">//</span>
+<a name="l00079"></a>00079 <span class="comment">// integer A(T);</span>
+<a name="l00080"></a>00080 <span class="comment">// for (int i=0; i &lt; n; ++i) {</span>
+<a name="l00081"></a>00081 <span class="comment">// integer ui((A._get_data()-&gt;digits[i] * mprime) &amp; digit_mask);</span>
+<a name="l00082"></a>00082 <span class="comment">// ui &lt;&lt;= (bits_per_digit * i); // Fast-multiply by b^i</span>
+<a name="l00083"></a>00083 <span class="comment">// A+=(ui*m);</span>
+<a name="l00084"></a>00084 <span class="comment">// }</span>
+<a name="l00085"></a>00085 <span class="comment">// A &gt;&gt;= (bits_per_digit * n); // Fast-divide by b^n</span>
+<a name="l00086"></a>00086 <span class="comment">// if (A &gt;= m) A -= m;</span>
+<a name="l00087"></a>00087 <span class="comment">// return A;</span>
+<a name="l00088"></a>00088 <span class="comment">//}</span>
+<a name="l00089"></a>00089
+<a name="l00093"></a>00093 integer <a class="code" href="namespaceboost_1_1xint.html#ab62e3e69cbc7781a86fc9a0192ef5d37" title="Returns the Montgomery equivalent of mulmod(a, b, n). Used internally.">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;
+<a name="l00094"></a>00094 n, <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> nPrime0)
+<a name="l00095"></a>00095 {
+<a name="l00096"></a>00096 <span class="comment">// Using the Dussé and Kalisk simplification</span>
+<a name="l00097"></a>00097 <span class="comment">// Unstated parameter B is a power of two representing the number of values</span>
+<a name="l00098"></a>00098 <span class="comment">// that a single digit can hold, i.e. digit_overflowbit</span>
+<a name="l00099"></a>00099 <span class="comment">// Unstated parameter L is the number of digits in the modulus, i.e.</span>
+<a name="l00100"></a>00100 <span class="comment">// n._get_length()</span>
+<a name="l00101"></a>00101 <span class="comment">// Unstated parameter r is B^L</span>
+<a name="l00102"></a>00102 <span class="comment">// nPrime0 is nPrime mod B, or digit zero of nPrime</span>
+<a name="l00103"></a>00103
+<a name="l00104"></a>00104 <span class="keyword">const</span> integer B(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>);
+<a name="l00105"></a>00105 <span class="keyword">const</span> <span class="keywordtype">size_t</span> L(n._get_length()), L1(L-1);
+<a name="l00106"></a>00106
+<a name="l00107"></a>00107 integer t=a*b;
+<a name="l00108"></a>00108 <span class="keywordtype">size_t</span> i=0;
+<a name="l00109"></a>00109
+<a name="l00110"></a>00110 <span class="keywordflow">do</span> {
+<a name="l00111"></a>00111 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> mi=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(t._get_digit(i))*nPrime0);
+<a name="l00112"></a>00112 t += (n * mi) &lt;&lt; (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> * i);
+<a name="l00113"></a>00113 } <span class="keywordflow">while</span> (++i &lt;= L1);
+<a name="l00114"></a>00114
+<a name="l00115"></a>00115 t &gt;&gt;= (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> * L); <span class="comment">// Fast divide by r</span>
+<a name="l00116"></a>00116 <span class="keywordflow">return</span> (t &gt;= n ? t - n : t);
+<a name="l00117"></a>00117 }
+<a name="l00118"></a>00118
+<a name="l00119"></a>00119 <span class="keyword">namespace </span>{
+<a name="l00120"></a>00120
+<a name="l00121"></a>00121 <span class="comment">// cMaxK sets the balance between memory/precalculations required and the number</span>
+<a name="l00122"></a>00122 <span class="comment">// of calculations required for an exponentiation. Increasing it can only reduce</span>
+<a name="l00123"></a>00123 <span class="comment">// the calculations by a small amount, whereas it increases the memory</span>
+<a name="l00124"></a>00124 <span class="comment">// requirements and number of precalculations by an exponential amount. 8</span>
+<a name="l00125"></a>00125 <span class="comment">// provides a good balance.</span>
+<a name="l00126"></a>00126 <span class="keyword">const</span> <span class="keywordtype">size_t</span> cMaxK=8;
+<a name="l00127"></a>00127 <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="l00128"></a>00128 <span class="keyword">typedef</span> std::vector&lt;kbitdigit_t&gt; vkbitdigit_t;
+<a name="l00129"></a>00129 <span class="keyword">typedef</span> std::vector&lt;integer&gt; vxint_t;
+<a name="l00130"></a><a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">00130</a> <span class="preprocessor">#define ddPowerOfTwo(p) (doubledigit_t(1) &lt;&lt; p)</span>
+<a name="l00131"></a>00131 <span class="preprocessor"></span>
+<a name="l00132"></a>00132 <span class="comment">// The splitIntoKBitDigits function assumes that cMaxK &lt;= bits_per_digit+1,</span>
+<a name="l00133"></a>00133 <span class="comment">// it won&apos;t work properly if it isn&apos;t.</span>
+<a name="l00134"></a>00134 BOOST_STATIC_ASSERT(cMaxK &lt;= <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>+1);
+<a name="l00135"></a>00135
+<a name="l00136"></a>00136 <span class="keyword">class </span>TUTable {
+<a name="l00137"></a>00137 <span class="keyword">public</span>:
+<a name="l00138"></a>00138 <span class="keyword">typedef</span> std::pair&lt;int, int&gt; value_t;
+<a name="l00139"></a>00139
+<a name="l00140"></a>00140 <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#a934de4c9ba95abb023be91f96559097d">mTable</a>[x]; }
+<a name="l00141"></a>00141
+<a name="l00142"></a>00142 <span class="keyword">static</span> <span class="keyword">const</span> TUTable&amp; <span class="keyword">get</span>() {
+<a name="l00143"></a>00143 <span class="comment">// Construct a singleton instance on demand</span>
+<a name="l00144"></a>00144 <span class="keywordflow">if</span> (mPtr.get()==0) mPtr.reset(<span class="keyword">new</span> TUTable);
+<a name="l00145"></a>00145 <span class="keywordflow">return</span> *mPtr;
+<a name="l00146"></a>00146 }
+<a name="l00147"></a>00147
+<a name="l00148"></a>00148 <span class="keyword">private</span>:
+<a name="l00149"></a>00149 TUTable(): <a class="code" href="monty_8cpp.html#a934de4c9ba95abb023be91f96559097d">mTable</a>(new value_t[<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(cMaxK)]) {
+<a name="l00150"></a>00150 value_t *p=&amp;<a class="code" href="monty_8cpp.html#a934de4c9ba95abb023be91f96559097d">mTable</a>[0], *pe=p+<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(cMaxK);
+<a name="l00151"></a>00151 *p++=std::make_pair(0, 0);
+<a name="l00152"></a>00152 <span class="keywordtype">int</span> i=1;
+<a name="l00153"></a>00153 <span class="keywordflow">while</span> (p!=pe) *p++=calculateValues(i++);
+<a name="l00154"></a>00154 }
+<a name="l00155"></a>00155
+<a name="l00156"></a>00156 std::pair&lt;int, int&gt; calculateValues(<span class="keywordtype">int</span> x) {
+<a name="l00157"></a>00157 <span class="keywordtype">int</span> r=0;
+<a name="l00158"></a>00158 <span class="keywordflow">while</span> (1) {
+<a name="l00159"></a>00159 <span class="keywordflow">if</span> (x &amp; 0x01) <span class="keywordflow">return</span> std::make_pair(r, x);
+<a name="l00160"></a>00160 ++r;
+<a name="l00161"></a>00161 x &gt;&gt;= 1;
+<a name="l00162"></a>00162 }
+<a name="l00163"></a>00163 }
+<a name="l00164"></a>00164
+<a name="l00165"></a>00165 <span class="keyword">static</span> std::auto_ptr&lt;TUTable&gt; mPtr;
+<a name="l00166"></a>00166
+<a name="l00167"></a><a class="code" href="monty_8cpp.html#a934de4c9ba95abb023be91f96559097d">00167</a> boost::scoped_array&lt;value_t&gt; <a class="code" href="monty_8cpp.html#a934de4c9ba95abb023be91f96559097d">mTable</a>;
+<a name="l00168"></a>00168 };
+<a name="l00169"></a>00169
+<a name="l00170"></a>00170 std::auto_ptr&lt;TUTable&gt; TUTable::mPtr;
+<a name="l00171"></a>00171
+<a name="l00172"></a>00172 <span class="keywordtype">int</span> mostEfficientK(<span class="keyword">const</span> integer&amp; e) {
+<a name="l00173"></a>00173 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> k=cMaxK, kTarget=<a class="code" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd" title="Get the log2 value of an integer.">log2</a>(e)-1;
+<a name="l00174"></a>00174 <span class="keywordflow">while</span> (k &gt; 1 &amp;&amp; ((k - 1) * (k &lt;&lt; ((k - 1) &lt;&lt; 1))
+<a name="l00175"></a>00175 / (<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(k) - k - 1)) &gt;= kTarget)
+<a name="l00176"></a>00176 --k;
+<a name="l00177"></a>00177 <span class="keywordflow">return</span> int(k);
+<a name="l00178"></a>00178 }
+<a name="l00179"></a>00179
+<a name="l00180"></a>00180 vxint_t precalculateOddPowersOfAa(<span class="keyword">const</span> integer&amp; a, <span class="keyword">const</span> integer&amp;
+<a name="l00181"></a>00181 r, <span class="keyword">const</span> integer&amp; n, <span class="keywordtype">size_t</span> k)
+<a name="l00182"></a>00182 {
+<a name="l00183"></a>00183 integer aa=a*r%n, aSquared=a*a%n;
+<a name="l00184"></a>00184
+<a name="l00185"></a>00185 vxint_t rval;
+<a name="l00186"></a>00186 rval.reserve(<span class="keywordtype">size_t</span>(<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(k)));
+<a name="l00187"></a>00187 rval.push_back(<a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>()); <span class="comment">// Anything to the zeroth power is one</span>
+<a name="l00188"></a>00188 rval.push_back(aa); <span class="comment">// Anything to the first power is itself</span>
+<a name="l00189"></a>00189
+<a name="l00190"></a>00190 <span class="keywordflow">for</span> (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> i=3, ie=(<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(k)); i&lt;ie; i+=2) {
+<a name="l00191"></a>00191 aa=aa*aSquared%n;
+<a name="l00192"></a>00192 rval.push_back(<a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>()); <span class="comment">// Even powers not needed or calculated</span>
+<a name="l00193"></a>00193 rval.push_back(aa); <span class="comment">// Odd power</span>
+<a name="l00194"></a>00194 }
+<a name="l00195"></a>00195
+<a name="l00196"></a>00196 <span class="keywordflow">return</span> rval;
+<a name="l00197"></a>00197 }
+<a name="l00198"></a>00198
+<a name="l00199"></a>00199 vkbitdigit_t splitIntoKBitDigits(<span class="keyword">const</span> integer&amp; e, <span class="keywordtype">size_t</span> k) {
+<a name="l00200"></a>00200 <span class="keywordtype">size_t</span> eBits=<a class="code" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd" title="Get the log2 value of an integer.">log2</a>(e), eDigits=(eBits+k-1)/k, i=0, bitsInHopper=0;
+<a name="l00201"></a>00201
+<a name="l00202"></a>00202 vkbitdigit_t rval;
+<a name="l00203"></a>00203 rval.reserve(eDigits);
+<a name="l00204"></a>00204
+<a name="l00205"></a>00205 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> hopper=0, mask=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(1)&lt;&lt;k)-1;
+<a name="l00206"></a>00206 <span class="keywordflow">while</span> (eDigits-- &gt; 0) {
+<a name="l00207"></a>00207 <span class="keywordflow">if</span> (bitsInHopper &lt; k &amp;&amp; i &lt; e._get_length()) {
+<a name="l00208"></a>00208 <span class="comment">// Add more bits to the hopper</span>
+<a name="l00209"></a>00209 hopper = hopper | (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(e._get_digit(i++)) &lt;&lt; bitsInHopper);
+<a name="l00210"></a>00210 bitsInHopper += <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
+<a name="l00211"></a>00211 }
+<a name="l00212"></a>00212
+<a name="l00213"></a>00213 <span class="comment">// Grab k bits off the bottom</span>
+<a name="l00214"></a>00214 <span class="keywordflow">if</span> (bitsInHopper &gt; 0) {
+<a name="l00215"></a>00215 rval.push_back(kbitdigit_t(hopper &amp; mask));
+<a name="l00216"></a>00216 hopper &gt;&gt;= k;
+<a name="l00217"></a>00217 bitsInHopper-=k;
+<a name="l00218"></a>00218 } <span class="keywordflow">else</span> {
+<a name="l00219"></a>00219 rval.push_back(0);
+<a name="l00220"></a>00220 }
+<a name="l00221"></a>00221 }
+<a name="l00222"></a>00222
+<a name="l00223"></a>00223 <span class="keywordflow">return</span> rval;
+<a name="l00224"></a>00224 }
+<a name="l00225"></a>00225
+<a name="l00226"></a>00226 } <span class="comment">// namespace</span>
+<a name="l00227"></a>00227
+<a name="l00231"></a>00231 integer <a class="code" href="namespaceboost_1_1xint.html#a9e0c8f5da23ce668a7b428256f6b8ed4" title="Returns the Montgomery equivalent of powmod(a, b, n). Used internally.">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="l00232"></a>00232 {
+<a name="l00233"></a>00233 <span class="comment">// 0 &lt;= a &lt; n, n is odd</span>
+<a name="l00234"></a>00234 <span class="comment">// Returns a^e mod n</span>
+<a name="l00235"></a>00235
+<a name="l00236"></a>00236 <span class="keyword">const</span> TUTable &amp;tuTable(TUTable::get());
+<a name="l00237"></a>00237
+<a name="l00238"></a>00238 <span class="keywordflow">if</span> (e.sign()==0) <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>();
+<a name="l00239"></a>00239 <span class="keywordflow">if</span> (n.even()) {
+<a name="l00240"></a>00240 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus(<span class="stringliteral">&quot;montgomeryPowerMod &quot;</span>
+<a name="l00241"></a>00241 <span class="stringliteral">&quot;requires an odd modulus&quot;</span>);
+<a name="l00242"></a>00242 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00243"></a>00243 }
+<a name="l00244"></a>00244
+<a name="l00245"></a>00245 <span class="comment">// Precalculate some values</span>
+<a name="l00246"></a>00246 <span class="keyword">const</span> <span class="keywordtype">size_t</span> k(mostEfficientK(e));
+<a name="l00247"></a>00247 <span class="keyword">const</span> integer r(<a class="code" href="namespaceboost_1_1xint.html#a5a7360e7330dcc35838ba324c523b395" title="Returns the most efficient R value for a number and the library&amp;#39;s internal representation...">montgomeryR</a>(n));
+<a name="l00248"></a>00248 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> nPrime0(<a class="code" href="namespaceboost_1_1xint.html#a50ceb8725ce5a326ef1e43a4d593efac" title="Returns the low digit of the inverse of a number. Used internally.">inverse0</a>(n));
+<a name="l00249"></a>00249 <span class="keyword">const</span> vxint_t oddPowersOfAa(precalculateOddPowersOfAa(a, r, n, k));
+<a name="l00250"></a>00250
+<a name="l00251"></a>00251 <span class="comment">// Slice the exponent (e) up into k-bit digits</span>
+<a name="l00252"></a>00252 vkbitdigit_t eDigits(splitIntoKBitDigits(e, k));
+<a name="l00253"></a>00253
+<a name="l00254"></a>00254 integer pp;
+<a name="l00255"></a>00255
+<a name="l00256"></a>00256 kbitdigit_t i=eDigits.back();
+<a name="l00257"></a>00257 eDigits.pop_back();
+<a name="l00258"></a>00258 <span class="keywordflow">if</span> (i == 0) {
+<a name="l00259"></a>00259 pp=r%n;
+<a name="l00260"></a>00260 } <span class="keywordflow">else</span> {
+<a name="l00261"></a>00261 std::pair&lt;int, int&gt; tu=tuTable[i];
+<a name="l00262"></a>00262 pp=oddPowersOfAa[tu.second];
+<a name="l00263"></a>00263 <span class="keywordflow">while</span> (tu.first-- &gt; 0) pp=<a class="code" href="namespaceboost_1_1xint.html#ab62e3e69cbc7781a86fc9a0192ef5d37" title="Returns the Montgomery equivalent of mulmod(a, b, n). Used internally.">montgomeryMultiplyMod</a>(pp, pp, n, nPrime0);
+<a name="l00264"></a>00264 }
+<a name="l00265"></a>00265
+<a name="l00266"></a>00266 <span class="keywordflow">while</span> (!eDigits.empty()) {
+<a name="l00267"></a>00267 i=eDigits.back();
+<a name="l00268"></a>00268 eDigits.pop_back();
+<a name="l00269"></a>00269
+<a name="l00270"></a>00270 <span class="keywordflow">if</span> (i == 0) {
+<a name="l00271"></a>00271 <span class="keywordtype">int</span> t=int(k);
+<a name="l00272"></a>00272 <span class="keywordflow">while</span> (t-- &gt; 0) pp=<a class="code" href="namespaceboost_1_1xint.html#ab62e3e69cbc7781a86fc9a0192ef5d37" title="Returns the Montgomery equivalent of mulmod(a, b, n). Used internally.">montgomeryMultiplyMod</a>(pp, pp, n, nPrime0);
+<a name="l00273"></a>00273 } <span class="keywordflow">else</span> {
+<a name="l00274"></a>00274 std::pair&lt;int, int&gt; tu=tuTable[i];
+<a name="l00275"></a>00275
+<a name="l00276"></a>00276 <span class="keywordtype">size_t</span> s=k-tu.first;
+<a name="l00277"></a>00277 <span class="keywordflow">while</span> (s-- &gt; 0) pp=<a class="code" href="namespaceboost_1_1xint.html#ab62e3e69cbc7781a86fc9a0192ef5d37" title="Returns the Montgomery equivalent of mulmod(a, b, n). Used internally.">montgomeryMultiplyMod</a>(pp, pp, n, nPrime0);
+<a name="l00278"></a>00278
+<a name="l00279"></a>00279 pp=<a class="code" href="namespaceboost_1_1xint.html#ab62e3e69cbc7781a86fc9a0192ef5d37" title="Returns the Montgomery equivalent of mulmod(a, b, n). Used internally.">montgomeryMultiplyMod</a>(pp, oddPowersOfAa[tu.second], n, nPrime0);
+<a name="l00280"></a>00280
+<a name="l00281"></a>00281 <span class="keywordflow">while</span> (tu.first-- &gt; 0) pp=<a class="code" href="namespaceboost_1_1xint.html#ab62e3e69cbc7781a86fc9a0192ef5d37" title="Returns the Montgomery equivalent of mulmod(a, b, n). Used internally.">montgomeryMultiplyMod</a>(pp, pp, n, nPrime0);
+<a name="l00282"></a>00282 }
+<a name="l00283"></a>00283 }
+<a name="l00284"></a>00284
+<a name="l00285"></a>00285 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab62e3e69cbc7781a86fc9a0192ef5d37" title="Returns the Montgomery equivalent of mulmod(a, b, n). Used internally.">montgomeryMultiplyMod</a>(pp, <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>(), n, nPrime0);
+<a name="l00286"></a>00286 }
+<a name="l00287"></a>00287
+<a name="l00288"></a>00288 } <span class="comment">// namespace xint</span>
+<a name="l00289"></a>00289 } <span class="comment">// namespace boost</span>
 </pre></div></div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/namespacemembers.html
==============================================================================
--- sandbox/xint/doc/namespacemembers.html (original)
+++ sandbox/xint/doc/namespacemembers.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -59,343 +59,343 @@
 
 <h3><a class="anchor" id="index_a">- a -</a></h3><ul>
 <li>abs()
-: <a class="el" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672">boost::xint</a>
 </li>
 <li>add()
-: <a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a5f82fa6b23e9af01292440248b89210d">boost::xint</a>
 </li>
 <li>allow_exceptions()
-: <a class="el" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a6353146e15d8912324f5fa820674a75f">boost::xint</a>
 </li>
 <li>autobase
-: <a class="el" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">boost::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>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">boost::xint::detail</a>
 </li>
 <li>bitwise_and()
-: <a class="el" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2">boost::xint</a>
 </li>
 <li>bitwise_or()
-: <a class="el" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec">boost::xint</a>
 </li>
 <li>bitwise_xor()
-: <a class="el" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1">boost::xint</a>
 </li>
 <li>block_exceptions()
-: <a class="el" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a23aac788de86c99b403a691954e016ad">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">boost::xint</a>
 </li>
 <li>clearbit()
-: <a class="el" href="namespacexint.html#a8982e3e3ab7c1c763416eadc479d9724">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a96d452df71ac6799a7041647b4b106df">boost::xint</a>
 </li>
 <li>compare()
-: <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b">boost::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>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#ab7d9f30b8cad63e2e82998aa2e8d0fcd">boost::xint::detail</a>
 </li>
 <li>digit_mask
-: <a class="el" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">boost::xint::detail</a>
 </li>
 <li>digit_overflowbit
-: <a class="el" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">boost::xint::detail</a>
 </li>
 <li>digit_t
-: <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">boost::xint::detail</a>
 </li>
 <li>divide()
-: <a class="el" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a4892543bb8ccfa8acb188a63a3d4723b">boost::xint</a>
 </li>
 <li>divide_r()
-: <a class="el" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0fff3b235a18c0b3243a1ccc01a68f23">boost::xint</a>
 </li>
 <li>doubledigit_hibit
-: <a class="el" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a33ea157e34285642e6924bbffffc4367">boost::xint::detail</a>
 </li>
 <li>doubledigit_t
-: <a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#a942e346f6e6d069dc19c28e7e56634ab">boost::xint</a>
 </li>
 <li>from_binary()
-: <a class="el" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a58aa7dc532f0d8a1557c9ec8f512602e">boost::xint</a>
 </li>
 <li>from_string()
-: <a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#af263105e57d48eff5fe14d4d03ca10e1">boost::xint</a>
 </li>
 <li>fromMontgomeryForm()
-: <a class="el" href="namespacexint.html#a93ed16c5350b34ca22108e48b51918a5">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a07914d9486e835d2dcea3268937296c4">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#ab551ac5968fdbcc639318b6f294da2cd">boost::xint</a>
 </li>
 <li>get_random()
-: <a class="el" href="namespacexint_1_1detail.html#a1dfc1e90886c4897a4b112f491b89b62">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a6486d7febde540f90921e9925d077534">boost::xint::detail</a>
 </li>
 <li>getbit()
-: <a class="el" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac00836bdc530b3eaf0a9b9f2e208273b">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_h">- h -</a></h3><ul>
 <li>highestbit()
-: <a class="el" href="namespacexint.html#ae08828243165ef3f397461507368a6e5">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aec002c076eff13d0382c5d2cd6de1d60">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#a50ceb8725ce5a326ef1e43a4d593efac">boost::xint</a>
 </li>
 <li>invmod()
-: <a class="el" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a1e2477157ea768d8c57fac1c31a8f7ca">boost::xint</a>
 </li>
 <li>is_prime()
-: <a class="el" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a58aa3df545d1da848922c13de2a87fc9">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#a0096ae57d50e4fe8b5413ea7a4e60495">boost::xint</a>
 </li>
 <li>log2()
-: <a class="el" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd">boost::xint</a>
 </li>
 <li>lowestbit()
-: <a class="el" href="namespacexint.html#ae04d70f50c4ce73d27ab32b1bf3520f2">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a783e728f8221cd424d6f7f5d5f67ec40">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_m">- m -</a></h3><ul>
 <li>mod()
-: <a class="el" href="namespacexint.html#ad5a8cc6e57ee8abdc21be98275657cc8">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9b8c31b64eb9700beea8b95edec31a73">boost::xint</a>
 </li>
 <li>montgomeryMultiplyMod()
-: <a class="el" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab62e3e69cbc7781a86fc9a0192ef5d37">boost::xint</a>
 </li>
 <li>montgomeryPowerMod()
-: <a class="el" href="namespacexint.html#a7d7e8604c467bc007820c60e1bc21626">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9e0c8f5da23ce668a7b428256f6b8ed4">boost::xint</a>
 </li>
 <li>montgomeryR()
-: <a class="el" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a5a7360e7330dcc35838ba324c523b395">boost::xint</a>
 </li>
 <li>mulmod()
-: <a class="el" href="namespacexint.html#adbbde6cc4b65e9a3df8c52adad9c540f">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac9af74aa79d9cc7f51c57cc7707824ba">boost::xint</a>
 </li>
 <li>multiply()
-: <a class="el" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9e0d6ad947fa3e979ed6e26d7e81ab7f">boost::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>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#ab0df946a2c10228501ef82bf823d0978">boost::xint::detail</a>
 </li>
 <li>negate()
-: <a class="el" href="namespacexint.html#ab393826381b1abd9f1aca1cdb45f41f6">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a84190f7b286de191e8026e440f104731">boost::xint</a>
 </li>
 <li>no_callback
-: <a class="el" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_o">- o -</a></h3><ul>
 <li>operator!()
-: <a class="el" href="namespacexint.html#a675c4fe6ddda6db915450d054ed640ba">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac2d1ae62e7e6d741531d6e232b851935">boost::xint</a>
 </li>
 <li>operator!=()
-: <a class="el" href="namespacexint.html#aefda934d0ffacd0f44fcbbdfee19a139">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#abf694043a7a1d64f35e90a275208ff2a">boost::xint</a>
 </li>
 <li>operator%()
-: <a class="el" href="namespacexint.html#ae0505757986a9c7133552552471aae24">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a115e84b56b4e5e00d0b2b5c8a407ef97">boost::xint</a>
 </li>
 <li>operator&amp;()
-: <a class="el" href="namespacexint.html#a742550f1c62ac8c2bde8e1ceab2a466c">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab054d123a003a31c06bac92a1f325805">boost::xint</a>
 </li>
 <li>operator*()
-: <a class="el" href="namespacexint.html#aea36ad9037f109576d4f95ec72b5c825">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ae3770c0e356d50b5f3e2be573e6100cd">boost::xint</a>
 </li>
 <li>operator+()
-: <a class="el" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#af0e2812ac56a264cd9a86243306ec0fb">boost::xint</a>
 </li>
 <li>operator-()
-: <a class="el" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a92ee4f1138215a36f4374a356fa5a359">boost::xint</a>
 </li>
 <li>operator/()
-: <a class="el" href="namespacexint.html#a701217f7824c3e935fca25147da23807">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9a2859e7b5e532eaa0cc51aba4f958c2">boost::xint</a>
 </li>
 <li>operator&lt;()
-: <a class="el" href="namespacexint.html#a4f4a4771bf443e6724abbd18173ecc86">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0497944d7fa977eca5e5f6a140db07c3">boost::xint</a>
 </li>
 <li>operator&lt;&lt;()
-: <a class="el" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ade3e222abd81f9935cd0c003f345ed57">boost::xint</a>
 </li>
 <li>operator&lt;=()
-: <a class="el" href="namespacexint.html#ab9d5f34c4d4bed1c86380d4f72edcd9b">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0af77b5d4ce9b3b997794b28ae0d4a8b">boost::xint</a>
 </li>
 <li>operator==()
-: <a class="el" href="namespacexint.html#ad32051708c2a2baafa0340e19e90217b">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ae95207d18c8f5159d57807726676f6d6">boost::xint</a>
 </li>
 <li>operator&gt;()
-: <a class="el" href="namespacexint.html#a1229d1f1efbdf3ffeac8b2964ca66093">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aa378abd0c3687df031cd2fc314a27940">boost::xint</a>
 </li>
 <li>operator&gt;=()
-: <a class="el" href="namespacexint.html#a766324a6f216f3b49a3e9aa885e9531c">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a7666d6d0603654e5c43a807e8907177c">boost::xint</a>
 </li>
 <li>operator&gt;&gt;()
-: <a class="el" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a6828d3d928f3a859f82a04b70634e4b3">boost::xint</a>
 </li>
 <li>operator^()
-: <a class="el" href="namespacexint.html#a81722cd257bc950ba7c56a202492544f">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9524e5e34757cb10a146012bc4192643">boost::xint</a>
 </li>
 <li>operator|()
-: <a class="el" href="namespacexint.html#afa8f2a0ac996ad45efc73b2aa056cae2">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a4896e1fc3c8d0adb4911cf5b78304f49">boost::xint</a>
 </li>
 <li>opt_secure_mode()
-: <a class="el" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0492c49fda91b5f498074d3f812906dd">boost::xint</a>
 </li>
 <li>opt_thread_safe()
-: <a class="el" href="namespacexint.html#ad55aa4d44083238d9ec313511f5b1dfa">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac80750e62d5ffa2484332aae4b23d379">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_p">- p -</a></h3><ul>
 <li>pow()
-: <a class="el" href="namespacexint.html#a186b14f991b32a818abd553b56a13a62">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aa7d7b30f587c98ad31b8d421b8813c61">boost::xint</a>
 </li>
 <li>pow2()
-: <a class="el" href="namespacexint.html#a6b723c30c28eb57f611442e0b512f551">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#af710e4b39cfa66096c202f17d12cc7b7">boost::xint</a>
 </li>
 <li>powmod()
-: <a class="el" href="namespacexint.html#ac54e9be3a8b131f882f88e57b0ef1c9c">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a35e7556e9f2d8fb944dbf732ed3f96cd">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_r">- r -</a></h3><ul>
 <li>random_by_size()
-: <a class="el" href="namespacexint.html#a5da6e81cb78913cc61c9f14857700b5e">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac8d879e19a6608b21184236e00806be5">boost::xint</a>
 </li>
 <li>random_prime()
-: <a class="el" href="namespacexint.html#afc8ba5f62561b4d2b42e32dde1a10ef3">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aaf58d56e1a47ac55e0aa97a55e6fb2c9">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_s">- s -</a></h3><ul>
 <li>set_random_generator()
-: <a class="el" href="namespacexint_1_1detail.html#a5f8bba03a6f615a82ebcf94ad7cd4353">xint::detail</a>
-, <a class="el" href="namespacexint.html#a9c50302b216b64d17d9c1d6350e88036">xint</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a17e1b4fcb11ff18fd2641dc43ee905b8">boost::xint::detail</a>
+, <a class="el" href="namespaceboost_1_1xint.html#a201d33fafe577133130cd16dec3422b6">boost::xint</a>
 </li>
 <li>setbit()
-: <a class="el" href="namespacexint.html#adf2652627e78682c17e120816987984a">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a6278915cf51b0d448a9db40031226182">boost::xint</a>
 </li>
 <li>shift()
-: <a class="el" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014">boost::xint</a>
 </li>
 <li>shift_left()
-: <a class="el" href="namespacexint.html#a6799cc3c4d8c963279be64b209bfd3b6">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96">boost::xint</a>
 </li>
 <li>shift_right()
-: <a class="el" href="namespacexint.html#a49a5a4220cb88b7446545e4b65950473">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2">boost::xint</a>
 </li>
 <li>sqr()
-: <a class="el" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#afbba1eeb86e4e7610a75afbb89d594e3">boost::xint</a>
 </li>
 <li>sqrmod()
-: <a class="el" href="namespacexint.html#aa5564979e78556afdc68dbbd744a0bcb">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#adb9a9cb117e7346a3b56c369cd438b0e">boost::xint</a>
 </li>
 <li>sqrt()
-: <a class="el" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#afdf79cc57e434b9c7f4cb3b6bd68dbd6">boost::xint</a>
 </li>
 <li>subtract()
-: <a class="el" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a86eb0099596fe66bd46be244323f44e5">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#a8b1647a9b23f45407df6d402852d06ae">boost::xint</a>
 </li>
 <li>testBitManipulations()
-: <a class="el" href="namespacexint.html#a509778d505a3c8a0b335817150eaead2">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9d062367dfe2a79e4471c97d1ee101b2">boost::xint</a>
 </li>
 <li>testConvert()
-: <a class="el" href="namespacexint.html#ae4ef5f20964fa995df7828f27bd7adbe">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aca8ead732f9dac3f23f53095eacd762e">boost::xint</a>
 </li>
 <li>testDivideMod()
-: <a class="el" href="namespacexint.html#a4ed78ff75865ae44a00d3709dd88c3a1">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aabf845d8d592d3576d7223fc29362b3a">boost::xint</a>
 </li>
 <li>testMontyMultiply()
-: <a class="el" href="namespacexint.html#ac40068d64f8c4d9002a0687935888c42">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a6073c3037b644655bc752120b144e804">boost::xint</a>
 </li>
 <li>testMontyPowerMod()
-: <a class="el" href="namespacexint.html#a9cce0401174b9ae173671b0800c5f457">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a099082cd8bbd0e994870ad89859e18c1">boost::xint</a>
 </li>
 <li>testMultiply()
-: <a class="el" href="namespacexint.html#affe2e221777d4263a420d014fa9640d0">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a87d760db18932efaafb906c0ebbdb50f">boost::xint</a>
 </li>
 <li>testStreams()
-: <a class="el" href="namespacexint.html#ae3305f62ca9be58fbc11dbd4c703f38b">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ace6d9f008e78329286fc9003896667cd">boost::xint</a>
 </li>
 <li>to()
-: <a class="el" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ae90546b0cb6cf2f27fc5ce65bb43a21e">boost::xint</a>
 </li>
 <li>to_binary()
-: <a class="el" href="namespacexint.html#ab8f33201a251e3e118dc82f214e22aeb">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a19124d8eeee95cc7ff1e348c36250eea">boost::xint</a>
 </li>
 <li>to_string()
-: <a class="el" href="namespacexint.html#a016c9573ff48411847edf86c406946a0">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac0454fdc47e70a493c7bf5d92dda33d4">boost::xint</a>
 </li>
 <li>token
-: <a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a8554e5ef0fa7ba2da83c8f01a9bb1128">boost::xint</a>
 </li>
 <li>toMontgomeryForm()
-: <a class="el" href="namespacexint.html#ab8e85cd5425fcec419c07155e2a91e13">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a512ff2447d52a228c1c9f99fea8fd860">boost::xint</a>
 </li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:52 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/namespacemembers_func.html
==============================================================================
--- sandbox/xint/doc/namespacemembers_func.html (original)
+++ sandbox/xint/doc/namespacemembers_func.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -59,307 +59,307 @@
 
 <h3><a class="anchor" id="index_a">- a -</a></h3><ul>
 <li>abs()
-: <a class="el" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672">boost::xint</a>
 </li>
 <li>add()
-: <a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a5f82fa6b23e9af01292440248b89210d">boost::xint</a>
 </li>
 <li>allow_exceptions()
-: <a class="el" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a6353146e15d8912324f5fa820674a75f">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2">boost::xint</a>
 </li>
 <li>bitwise_or()
-: <a class="el" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec">boost::xint</a>
 </li>
 <li>bitwise_xor()
-: <a class="el" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1">boost::xint</a>
 </li>
 <li>block_exceptions()
-: <a class="el" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a23aac788de86c99b403a691954e016ad">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#a96d452df71ac6799a7041647b4b106df">boost::xint</a>
 </li>
 <li>compare()
-: <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#a4892543bb8ccfa8acb188a63a3d4723b">boost::xint</a>
 </li>
 <li>divide_r()
-: <a class="el" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0fff3b235a18c0b3243a1ccc01a68f23">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#a942e346f6e6d069dc19c28e7e56634ab">boost::xint</a>
 </li>
 <li>from_binary()
-: <a class="el" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a58aa7dc532f0d8a1557c9ec8f512602e">boost::xint</a>
 </li>
 <li>from_string()
-: <a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#af263105e57d48eff5fe14d4d03ca10e1">boost::xint</a>
 </li>
 <li>fromMontgomeryForm()
-: <a class="el" href="namespacexint.html#a93ed16c5350b34ca22108e48b51918a5">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a07914d9486e835d2dcea3268937296c4">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#ab551ac5968fdbcc639318b6f294da2cd">boost::xint</a>
 </li>
 <li>get_random()
-: <a class="el" href="namespacexint_1_1detail.html#a1dfc1e90886c4897a4b112f491b89b62">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a6486d7febde540f90921e9925d077534">boost::xint::detail</a>
 </li>
 <li>getbit()
-: <a class="el" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac00836bdc530b3eaf0a9b9f2e208273b">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_h">- h -</a></h3><ul>
 <li>highestbit()
-: <a class="el" href="namespacexint.html#ae08828243165ef3f397461507368a6e5">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aec002c076eff13d0382c5d2cd6de1d60">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#a50ceb8725ce5a326ef1e43a4d593efac">boost::xint</a>
 </li>
 <li>invmod()
-: <a class="el" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a1e2477157ea768d8c57fac1c31a8f7ca">boost::xint</a>
 </li>
 <li>is_prime()
-: <a class="el" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a58aa3df545d1da848922c13de2a87fc9">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#a0096ae57d50e4fe8b5413ea7a4e60495">boost::xint</a>
 </li>
 <li>log2()
-: <a class="el" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd">boost::xint</a>
 </li>
 <li>lowestbit()
-: <a class="el" href="namespacexint.html#ae04d70f50c4ce73d27ab32b1bf3520f2">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a783e728f8221cd424d6f7f5d5f67ec40">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_m">- m -</a></h3><ul>
 <li>mod()
-: <a class="el" href="namespacexint.html#ad5a8cc6e57ee8abdc21be98275657cc8">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9b8c31b64eb9700beea8b95edec31a73">boost::xint</a>
 </li>
 <li>montgomeryMultiplyMod()
-: <a class="el" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab62e3e69cbc7781a86fc9a0192ef5d37">boost::xint</a>
 </li>
 <li>montgomeryPowerMod()
-: <a class="el" href="namespacexint.html#a7d7e8604c467bc007820c60e1bc21626">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9e0c8f5da23ce668a7b428256f6b8ed4">boost::xint</a>
 </li>
 <li>montgomeryR()
-: <a class="el" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a5a7360e7330dcc35838ba324c523b395">boost::xint</a>
 </li>
 <li>mulmod()
-: <a class="el" href="namespacexint.html#adbbde6cc4b65e9a3df8c52adad9c540f">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac9af74aa79d9cc7f51c57cc7707824ba">boost::xint</a>
 </li>
 <li>multiply()
-: <a class="el" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9e0d6ad947fa3e979ed6e26d7e81ab7f">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_n">- n -</a></h3><ul>
 <li>negate()
-: <a class="el" href="namespacexint.html#ab393826381b1abd9f1aca1cdb45f41f6">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a84190f7b286de191e8026e440f104731">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_o">- o -</a></h3><ul>
 <li>operator!()
-: <a class="el" href="namespacexint.html#a675c4fe6ddda6db915450d054ed640ba">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac2d1ae62e7e6d741531d6e232b851935">boost::xint</a>
 </li>
 <li>operator!=()
-: <a class="el" href="namespacexint.html#aefda934d0ffacd0f44fcbbdfee19a139">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#abf694043a7a1d64f35e90a275208ff2a">boost::xint</a>
 </li>
 <li>operator%()
-: <a class="el" href="namespacexint.html#ae0505757986a9c7133552552471aae24">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a115e84b56b4e5e00d0b2b5c8a407ef97">boost::xint</a>
 </li>
 <li>operator&amp;()
-: <a class="el" href="namespacexint.html#a742550f1c62ac8c2bde8e1ceab2a466c">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab054d123a003a31c06bac92a1f325805">boost::xint</a>
 </li>
 <li>operator*()
-: <a class="el" href="namespacexint.html#aea36ad9037f109576d4f95ec72b5c825">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ae3770c0e356d50b5f3e2be573e6100cd">boost::xint</a>
 </li>
 <li>operator+()
-: <a class="el" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#af0e2812ac56a264cd9a86243306ec0fb">boost::xint</a>
 </li>
 <li>operator-()
-: <a class="el" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a92ee4f1138215a36f4374a356fa5a359">boost::xint</a>
 </li>
 <li>operator/()
-: <a class="el" href="namespacexint.html#a701217f7824c3e935fca25147da23807">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9a2859e7b5e532eaa0cc51aba4f958c2">boost::xint</a>
 </li>
 <li>operator&lt;()
-: <a class="el" href="namespacexint.html#a4f4a4771bf443e6724abbd18173ecc86">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0497944d7fa977eca5e5f6a140db07c3">boost::xint</a>
 </li>
 <li>operator&lt;&lt;()
-: <a class="el" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ade3e222abd81f9935cd0c003f345ed57">boost::xint</a>
 </li>
 <li>operator&lt;=()
-: <a class="el" href="namespacexint.html#ab9d5f34c4d4bed1c86380d4f72edcd9b">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0af77b5d4ce9b3b997794b28ae0d4a8b">boost::xint</a>
 </li>
 <li>operator==()
-: <a class="el" href="namespacexint.html#ad32051708c2a2baafa0340e19e90217b">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ae95207d18c8f5159d57807726676f6d6">boost::xint</a>
 </li>
 <li>operator&gt;()
-: <a class="el" href="namespacexint.html#a1229d1f1efbdf3ffeac8b2964ca66093">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aa378abd0c3687df031cd2fc314a27940">boost::xint</a>
 </li>
 <li>operator&gt;=()
-: <a class="el" href="namespacexint.html#a766324a6f216f3b49a3e9aa885e9531c">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a7666d6d0603654e5c43a807e8907177c">boost::xint</a>
 </li>
 <li>operator&gt;&gt;()
-: <a class="el" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a6828d3d928f3a859f82a04b70634e4b3">boost::xint</a>
 </li>
 <li>operator^()
-: <a class="el" href="namespacexint.html#a81722cd257bc950ba7c56a202492544f">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9524e5e34757cb10a146012bc4192643">boost::xint</a>
 </li>
 <li>operator|()
-: <a class="el" href="namespacexint.html#afa8f2a0ac996ad45efc73b2aa056cae2">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a4896e1fc3c8d0adb4911cf5b78304f49">boost::xint</a>
 </li>
 <li>opt_secure_mode()
-: <a class="el" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0492c49fda91b5f498074d3f812906dd">boost::xint</a>
 </li>
 <li>opt_thread_safe()
-: <a class="el" href="namespacexint.html#ad55aa4d44083238d9ec313511f5b1dfa">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac80750e62d5ffa2484332aae4b23d379">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_p">- p -</a></h3><ul>
 <li>pow()
-: <a class="el" href="namespacexint.html#a186b14f991b32a818abd553b56a13a62">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aa7d7b30f587c98ad31b8d421b8813c61">boost::xint</a>
 </li>
 <li>pow2()
-: <a class="el" href="namespacexint.html#a6b723c30c28eb57f611442e0b512f551">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#af710e4b39cfa66096c202f17d12cc7b7">boost::xint</a>
 </li>
 <li>powmod()
-: <a class="el" href="namespacexint.html#ac54e9be3a8b131f882f88e57b0ef1c9c">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a35e7556e9f2d8fb944dbf732ed3f96cd">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_r">- r -</a></h3><ul>
 <li>random_by_size()
-: <a class="el" href="namespacexint.html#a5da6e81cb78913cc61c9f14857700b5e">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac8d879e19a6608b21184236e00806be5">boost::xint</a>
 </li>
 <li>random_prime()
-: <a class="el" href="namespacexint.html#afc8ba5f62561b4d2b42e32dde1a10ef3">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aaf58d56e1a47ac55e0aa97a55e6fb2c9">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_s">- s -</a></h3><ul>
 <li>set_random_generator()
-: <a class="el" href="namespacexint_1_1detail.html#a5f8bba03a6f615a82ebcf94ad7cd4353">xint::detail</a>
-, <a class="el" href="namespacexint.html#a9c50302b216b64d17d9c1d6350e88036">xint</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a17e1b4fcb11ff18fd2641dc43ee905b8">boost::xint::detail</a>
+, <a class="el" href="namespaceboost_1_1xint.html#a201d33fafe577133130cd16dec3422b6">boost::xint</a>
 </li>
 <li>setbit()
-: <a class="el" href="namespacexint.html#adf2652627e78682c17e120816987984a">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a6278915cf51b0d448a9db40031226182">boost::xint</a>
 </li>
 <li>shift()
-: <a class="el" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014">boost::xint</a>
 </li>
 <li>shift_left()
-: <a class="el" href="namespacexint.html#a6799cc3c4d8c963279be64b209bfd3b6">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96">boost::xint</a>
 </li>
 <li>shift_right()
-: <a class="el" href="namespacexint.html#a49a5a4220cb88b7446545e4b65950473">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2">boost::xint</a>
 </li>
 <li>sqr()
-: <a class="el" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#afbba1eeb86e4e7610a75afbb89d594e3">boost::xint</a>
 </li>
 <li>sqrmod()
-: <a class="el" href="namespacexint.html#aa5564979e78556afdc68dbbd744a0bcb">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#adb9a9cb117e7346a3b56c369cd438b0e">boost::xint</a>
 </li>
 <li>sqrt()
-: <a class="el" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#afdf79cc57e434b9c7f4cb3b6bd68dbd6">boost::xint</a>
 </li>
 <li>subtract()
-: <a class="el" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a86eb0099596fe66bd46be244323f44e5">boost::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>
+: <a class="el" href="namespaceboost_1_1xint.html#a8b1647a9b23f45407df6d402852d06ae">boost::xint</a>
 </li>
 <li>testBitManipulations()
-: <a class="el" href="namespacexint.html#a509778d505a3c8a0b335817150eaead2">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9d062367dfe2a79e4471c97d1ee101b2">boost::xint</a>
 </li>
 <li>testConvert()
-: <a class="el" href="namespacexint.html#ae4ef5f20964fa995df7828f27bd7adbe">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aca8ead732f9dac3f23f53095eacd762e">boost::xint</a>
 </li>
 <li>testDivideMod()
-: <a class="el" href="namespacexint.html#a4ed78ff75865ae44a00d3709dd88c3a1">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aabf845d8d592d3576d7223fc29362b3a">boost::xint</a>
 </li>
 <li>testMontyMultiply()
-: <a class="el" href="namespacexint.html#ac40068d64f8c4d9002a0687935888c42">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a6073c3037b644655bc752120b144e804">boost::xint</a>
 </li>
 <li>testMontyPowerMod()
-: <a class="el" href="namespacexint.html#a9cce0401174b9ae173671b0800c5f457">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a099082cd8bbd0e994870ad89859e18c1">boost::xint</a>
 </li>
 <li>testMultiply()
-: <a class="el" href="namespacexint.html#affe2e221777d4263a420d014fa9640d0">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a87d760db18932efaafb906c0ebbdb50f">boost::xint</a>
 </li>
 <li>testStreams()
-: <a class="el" href="namespacexint.html#ae3305f62ca9be58fbc11dbd4c703f38b">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ace6d9f008e78329286fc9003896667cd">boost::xint</a>
 </li>
 <li>to()
-: <a class="el" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ae90546b0cb6cf2f27fc5ce65bb43a21e">boost::xint</a>
 </li>
 <li>to_binary()
-: <a class="el" href="namespacexint.html#ab8f33201a251e3e118dc82f214e22aeb">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a19124d8eeee95cc7ff1e348c36250eea">boost::xint</a>
 </li>
 <li>to_string()
-: <a class="el" href="namespacexint.html#a016c9573ff48411847edf86c406946a0">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac0454fdc47e70a493c7bf5d92dda33d4">boost::xint</a>
 </li>
 <li>toMontgomeryForm()
-: <a class="el" href="namespacexint.html#ab8e85cd5425fcec419c07155e2a91e13">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a512ff2447d52a228c1c9f99fea8fd860">boost::xint</a>
 </li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:52 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/namespacemembers_type.html
==============================================================================
--- sandbox/xint/doc/namespacemembers_type.html (original)
+++ sandbox/xint/doc/namespacemembers_type.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -36,20 +36,20 @@
 <div class="contents">
 &nbsp;<ul>
 <li>callback_t
-: <a class="el" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">boost::xint</a>
 </li>
 <li>digit_t
-: <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">boost::xint::detail</a>
 </li>
 <li>doubledigit_t
-: <a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">boost::xint::detail</a>
 </li>
 <li>token
-: <a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a8554e5ef0fa7ba2da83c8f01a9bb1128">boost::xint</a>
 </li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:52 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/namespacemembers_vars.html
==============================================================================
--- sandbox/xint/doc/namespacemembers_vars.html (original)
+++ sandbox/xint/doc/namespacemembers_vars.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -36,32 +36,32 @@
 <div class="contents">
 &nbsp;<ul>
 <li>autobase
-: <a class="el" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">boost::xint</a>
 </li>
 <li>bits_per_digit
-: <a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">boost::xint::detail</a>
 </li>
 <li>digit_hibit
-: <a class="el" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#ab7d9f30b8cad63e2e82998aa2e8d0fcd">boost::xint::detail</a>
 </li>
 <li>digit_mask
-: <a class="el" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">boost::xint::detail</a>
 </li>
 <li>digit_overflowbit
-: <a class="el" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">boost::xint::detail</a>
 </li>
 <li>doubledigit_hibit
-: <a class="el" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a33ea157e34285642e6924bbffffc4367">boost::xint::detail</a>
 </li>
 <li>nan_text
-: <a class="el" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">xint::detail</a>
+: <a class="el" href="namespaceboost_1_1xint_1_1detail.html#ab0df946a2c10228501ef82bf823d0978">boost::xint::detail</a>
 </li>
 <li>no_callback
-: <a class="el" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">boost::xint</a>
 </li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:52 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/namespaces.html
==============================================================================
--- sandbox/xint/doc/namespaces.html (original)
+++ sandbox/xint/doc/namespaces.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -27,11 +27,12 @@
 </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">All of the functions in the XInt library are within this namespace </td></tr>
- <tr><td class="indexkey"><a class="el" href="namespacexint_1_1detail.html">xint::detail</a></td><td class="indexvalue">The items within this namespace are meant for internal use only </td></tr>
+ <tr><td class="indexkey"><a class="el" href="namespaceboost.html">boost</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td><td class="indexvalue">All of the functions in the XInt library are within this namespace </td></tr>
+ <tr><td class="indexkey"><a class="el" href="namespaceboost_1_1xint_1_1detail.html">boost::xint::detail</a></td><td class="indexvalue">The items within this namespace are meant for internal use only </td></tr>
 </table>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/nan.html
==============================================================================
--- sandbox/xint/doc/nan.html (original)
+++ sandbox/xint/doc/nan.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -24,7 +24,7 @@
 <div class="contents">
 
 
-<h1><a class="anchor" id="nan">The Not-a-Number Value </a></h1><p>Sometimes it's useful for a variable to have a value that doesn't represent any proper value, to indicate that it hasn't been specified or that there was an error in a calculation. For that purpose, the <code><a class="el" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a></code> class provides Not-a-Number.</p>
+<h1><a class="anchor" id="nan">The Not-a-Number Value </a></h1><p>Sometimes it's useful for a variable to have a value that doesn't represent any proper value, to indicate that it hasn't been specified or that there was an error in a calculation. For that purpose, the <code>xint::integer</code> class provides Not-a-Number.</p>
 <p>To create a Not-a-Number, use the integer constructor that exists solely for that purpose. No other library function will return a Not-a-Number except under the following circumstances:</p>
 <ul>
 <li>If a function that returns a non-reference integer tries to throw a blockable exception, but exceptions are blocked.</li>
@@ -36,9 +36,9 @@
 <li>Convert it to a string, or write it to a stream. The result will be the string <code>"#NaN#"</code>.</li>
 <li>Make a copy of it.</li>
 </ul>
-<p>If you attempt to do anything else with it, you will get the non-blockable <code><a class="el" href="classxint_1_1not__a__number.html" title="Exception class.">xint::not_a_number</a></code> exception. </p>
+<p>If you attempt to do anything else with it, you will get the non-blockable <code>xint::not_a_number</code> exception. </p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/nan_8dox.html
==============================================================================
--- sandbox/xint/doc/nan_8dox.html (original)
+++ sandbox/xint/doc/nan_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/nan.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 </table>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/operators_8cpp.html
==============================================================================
--- sandbox/xint/doc/operators_8cpp.html (original)
+++ sandbox/xint/doc/operators_8cpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -34,7 +34,8 @@
 <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>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All of the functions in the XInt library are within this namespace. </p>
 <br/></td></tr>
@@ -43,23 +44,23 @@
 <tr><td colspan="2"><div class="groupHeader">Operators</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpb3c5827f54218753bb2c3338236446c2"></a> These act exactly the same as for the built-in integer types. </p>
 <br/><br/></div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const integer &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">xint::operator+</a> (const integer &amp;a)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">xint::operator-</a> (const integer &amp;a)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a211ff80bb081c08674272cfcae736a93">xint::operator+</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#a1e09422b575c6d29ea5c0d627b79c28e">xint::operator-</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#aea36ad9037f109576d4f95ec72b5c825">xint::operator*</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#a701217f7824c3e935fca25147da23807">xint::operator/</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#ae0505757986a9c7133552552471aae24">xint::operator%</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#a742550f1c62ac8c2bde8e1ceab2a466c">xint::operator&amp;</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#afa8f2a0ac996ad45efc73b2aa056cae2">xint::operator|</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#a81722cd257bc950ba7c56a202492544f">xint::operator^</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const integer &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#af0e2812ac56a264cd9a86243306ec0fb">boost::xint::operator+</a> (const integer &amp;a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a92ee4f1138215a36f4374a356fa5a359">boost::xint::operator-</a> (const integer &amp;a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0f6171689ef68ff6672e43a1e24ea494">boost::xint::operator+</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="namespaceboost_1_1xint.html#ac16aa971521ae015a62ec015f1fe56d0">boost::xint::operator-</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="namespaceboost_1_1xint.html#ae3770c0e356d50b5f3e2be573e6100cd">boost::xint::operator*</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="namespaceboost_1_1xint.html#a9a2859e7b5e532eaa0cc51aba4f958c2">boost::xint::operator/</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="namespaceboost_1_1xint.html#a115e84b56b4e5e00d0b2b5c8a407ef97">boost::xint::operator%</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="namespaceboost_1_1xint.html#ab054d123a003a31c06bac92a1f325805">boost::xint::operator&amp;</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="namespaceboost_1_1xint.html#a4896e1fc3c8d0adb4911cf5b78304f49">boost::xint::operator|</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="namespaceboost_1_1xint.html#a9524e5e34757cb10a146012bc4192643">boost::xint::operator^</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Contains the definitions for the basic math operators. </p>
 
 <p>Definition in file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/operators_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/operators_8cpp_source.html (original)
+++ sandbox/xint/doc/operators_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -39,22 +39,24 @@
 <a name="l00013"></a>00013
 <a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</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">const</span> integer&amp; <a class="code" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">operator+</a>(<span class="keyword">const</span> integer&amp; a) { <span class="keywordflow">return</span> a; }
-<a name="l00023"></a>00023 integer <a class="code" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">operator-</a>(<span class="keyword">const</span> integer&amp; a) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#ab393826381b1abd9f1aca1cdb45f41f6" title="Return the additive inverse of an integer.">negate</a>(a); }
-<a name="l00024"></a>00024 integer <a class="code" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">operator+</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163" title="Calculate the sum of two integers.">add</a>(num1, num2); }
-<a name="l00025"></a>00025 integer <a class="code" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">operator-</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80" title="Calculate the difference between two integers.">subtract</a>(num1, num2); }
-<a name="l00026"></a>00026 integer <a class="code" href="namespacexint.html#aea36ad9037f109576d4f95ec72b5c825">operator*</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d" title="Calculate the product of two integers.">multiply</a>(num1, num2); }
-<a name="l00027"></a>00027 integer <a class="code" href="namespacexint.html#a701217f7824c3e935fca25147da23807">operator/</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44" title="Calculate how many dividends would fit into divisor.">divide</a>(num1, num2); }
-<a name="l00028"></a>00028 integer <a class="code" href="namespacexint.html#ae0505757986a9c7133552552471aae24">operator%</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#ad5a8cc6e57ee8abdc21be98275657cc8" title="Get the remainder after dividing a number by another.">mod</a>(num1, num2); }
-<a name="l00029"></a>00029 integer <a class="code" href="namespacexint.html#a742550f1c62ac8c2bde8e1ceab2a466c">operator&amp;</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1" title="Combine two integers using a bitwise AND operation.">bitwise_and</a>(n1, n2); }
-<a name="l00030"></a>00030 integer <a class="code" href="namespacexint.html#afa8f2a0ac996ad45efc73b2aa056cae2">operator|</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a" title="Combine two integers using a bitwise OR operation.">bitwise_or</a>(n1, n2); }
-<a name="l00031"></a>00031 integer <a class="code" href="namespacexint.html#a81722cd257bc950ba7c56a202492544f">operator^</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe" title="Combine two integers using a bitwise XOR operation.">bitwise_xor</a>(n1, n2); }
-<a name="l00032"></a>00032
-<a name="l00033"></a>00033 } <span class="comment">// namespace xint</span>
+<a name="l00020"></a>00020 <span class="keyword">namespace </span>boost {
+<a name="l00021"></a>00021 <span class="keyword">namespace </span>xint {
+<a name="l00022"></a>00022
+<a name="l00023"></a>00023 <span class="keyword">const</span> integer&amp; <a class="code" href="namespaceboost_1_1xint.html#af0e2812ac56a264cd9a86243306ec0fb">operator+</a>(<span class="keyword">const</span> integer&amp; a) { <span class="keywordflow">return</span> a; }
+<a name="l00024"></a>00024 integer <a class="code" href="namespaceboost_1_1xint.html#a92ee4f1138215a36f4374a356fa5a359">operator-</a>(<span class="keyword">const</span> integer&amp; a) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a84190f7b286de191e8026e440f104731" title="Return the additive inverse of an integer.">negate</a>(a); }
+<a name="l00025"></a>00025 integer <a class="code" href="namespaceboost_1_1xint.html#af0e2812ac56a264cd9a86243306ec0fb">operator+</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a5f82fa6b23e9af01292440248b89210d" title="Calculate the sum of two integers.">add</a>(num1, num2); }
+<a name="l00026"></a>00026 integer <a class="code" href="namespaceboost_1_1xint.html#a92ee4f1138215a36f4374a356fa5a359">operator-</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a86eb0099596fe66bd46be244323f44e5" title="Calculate the difference between two integers.">subtract</a>(num1, num2); }
+<a name="l00027"></a>00027 integer <a class="code" href="namespaceboost_1_1xint.html#ae3770c0e356d50b5f3e2be573e6100cd">operator*</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a9e0d6ad947fa3e979ed6e26d7e81ab7f" title="Calculate the product of two integers.">multiply</a>(num1, num2); }
+<a name="l00028"></a>00028 integer <a class="code" href="namespaceboost_1_1xint.html#a9a2859e7b5e532eaa0cc51aba4f958c2">operator/</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a4892543bb8ccfa8acb188a63a3d4723b" title="Calculate how many dividends would fit into divisor.">divide</a>(num1, num2); }
+<a name="l00029"></a>00029 integer <a class="code" href="namespaceboost_1_1xint.html#a115e84b56b4e5e00d0b2b5c8a407ef97">operator%</a>(<span class="keyword">const</span> integer&amp; num1, <span class="keyword">const</span> integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a9b8c31b64eb9700beea8b95edec31a73" title="Get the remainder after dividing a number by another.">mod</a>(num1, num2); }
+<a name="l00030"></a>00030 integer <a class="code" href="namespaceboost_1_1xint.html#ab054d123a003a31c06bac92a1f325805">operator&amp;</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2" title="Combine two integers using a bitwise AND operation.">bitwise_and</a>(n1, n2); }
+<a name="l00031"></a>00031 integer <a class="code" href="namespaceboost_1_1xint.html#a4896e1fc3c8d0adb4911cf5b78304f49">operator|</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec" title="Combine two integers using a bitwise OR operation.">bitwise_or</a>(n1, n2); }
+<a name="l00032"></a>00032 integer <a class="code" href="namespaceboost_1_1xint.html#a9524e5e34757cb10a146012bc4192643">operator^</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1" title="Combine two integers using a bitwise XOR operation.">bitwise_xor</a>(n1, n2); }
+<a name="l00033"></a>00033
+<a name="l00034"></a>00034 } <span class="comment">// namespace xint</span>
+<a name="l00035"></a>00035 } <span class="comment">// namespace boost</span>
 </pre></div></div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/pages.html
==============================================================================
--- sandbox/xint/doc/pages.html (original)
+++ sandbox/xint/doc/pages.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -25,7 +25,7 @@
 </li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:07 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/powers_8cpp.html
==============================================================================
--- sandbox/xint/doc/powers_8cpp.html (original)
+++ sandbox/xint/doc/powers_8cpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -36,7 +36,8 @@
 <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>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All of the functions in the XInt library are within this namespace. </p>
 <br/></td></tr>
@@ -45,21 +46,21 @@
 <tr><td colspan="2"><div class="groupHeader">Powers and roots</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp928a8cb047602f789d7433e262ed4560"></a> </p>
 <br/><br/></div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a6b723c30c28eb57f611442e0b512f551">xint::pow2</a> (size_t e)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of 2<sup>e</sup>. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">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="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of n<sup>2</sup>. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a186b14f991b32a818abd553b56a13a62">xint::pow</a> (const integer &amp;n, const integer &amp;e)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of n<sup>e</sup>. <br/></td></tr>
-<tr><td class="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="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of <code>n!</code> <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#af710e4b39cfa66096c202f17d12cc7b7">boost::xint::pow2</a> (size_t e)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of 2<sup>e</sup>. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#afbba1eeb86e4e7610a75afbb89d594e3">boost::xint::sqr</a> (const integer &amp;n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of n<sup>2</sup>. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aa7d7b30f587c98ad31b8d421b8813c61">boost::xint::pow</a> (const integer &amp;n, const integer &amp;e)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of n<sup>e</sup>. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a942e346f6e6d069dc19c28e7e56634ab">boost::xint::factorial</a> (size_t n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of <code>n!</code> <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Contains the definitions for functions related to powers of a number. </p>
 
 <p>Definition in file <a class="el" href="powers_8cpp_source.html">powers.cpp</a>.</p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/powers_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/powers_8cpp_source.html (original)
+++ sandbox/xint/doc/powers_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -42,112 +42,114 @@
 <a name="l00020"></a>00020
 <a name="l00021"></a>00021 <span class="preprocessor">#include &lt;vector&gt;</span>
 <a name="l00022"></a>00022
-<a name="l00023"></a>00023 <span class="keyword">namespace </span>xint {
-<a name="l00024"></a>00024
-<a name="l00025"></a>00025 <span class="keyword">using namespace </span>detail;
-<a name="l00026"></a>00026
-<a name="l00027"></a>00027 <span class="keyword">namespace </span>{
-<a name="l00028"></a>00028
-<a name="l00029"></a>00029 <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="l00030"></a>00030 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> t=(n1&gt;&gt;1)+(n2&gt;&gt;1);
-<a name="l00031"></a>00031 <span class="keywordflow">if</span> ((n1&amp;1) &amp;&amp; (n2&amp;1)) ++t;
-<a name="l00032"></a>00032 n1+=n2;
-<a name="l00033"></a>00033 <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="l00034"></a>00034 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00035"></a>00035 }
-<a name="l00036"></a>00036
-<a name="l00037"></a>00037 } <span class="comment">// namespace</span>
-<a name="l00038"></a>00038
-<a name="l00048"></a>00048 integer <a class="code" href="namespacexint.html#a6b723c30c28eb57f611442e0b512f551" title="Calculate the value of 2e.">pow2</a>(<span class="keywordtype">size_t</span> e) {
-<a name="l00049"></a>00049 integer r;
-<a name="l00050"></a>00050 <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a" title="Sets a specific bit in an integer to one.">setbit</a>(r, e);
-<a name="l00051"></a>00051 <span class="keywordflow">return</span> r;
-<a name="l00052"></a>00052 }
-<a name="l00053"></a>00053
-<a name="l00064"></a>00064 integer <a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b" title="Calculate the value of n2.">sqr</a>(<span class="keyword">const</span> integer&amp; n) {
-<a name="l00065"></a>00065 n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00066"></a>00066
-<a name="l00067"></a>00067 <span class="keyword">const</span> data_t *ndata=n._get_data();
-<a name="l00068"></a>00068 std::vector&lt;doubledigit_t&gt; a(ndata-&gt;mLength*2+1, 0);
-<a name="l00069"></a>00069 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> *adigit=&amp;a[0];
-<a name="l00070"></a>00070
-<a name="l00071"></a>00071 <span class="keywordtype">size_t</span> i, j;
-<a name="l00072"></a>00072 integer addend;
-<a name="l00073"></a>00073 data_t *addenddata=addend._get_data();
-<a name="l00074"></a>00074 addenddata-&gt;alloc(ndata-&gt;mLength*2+1);
-<a name="l00075"></a>00075
-<a name="l00076"></a>00076 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *ndigitip=ndata-&gt;digits;
-<a name="l00077"></a>00077 <span class="keywordflow">for</span> (i=0; i&lt;ndata-&gt;mLength; ++i, ++ndigitip) {
-<a name="l00078"></a>00078 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> ndigiti=*ndigitip;
-<a name="l00079"></a>00079 <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="l00080"></a>00080 <span class="keywordflow">if</span> (addOverflow(adigit[2*i], t)) ++addenddata-&gt;digits[2*i+2];
-<a name="l00081"></a>00081
-<a name="l00082"></a>00082 for (j=i+1; j&lt;ndata-&gt;mLength; ++j) {
-<a name="l00083"></a>00083 <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="l00084"></a>00084 <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="l00085"></a>00085 t&lt;&lt;=1;
-<a name="l00086"></a>00086 <span class="keywordflow">if</span> (addOverflow(adigit[i+j], t)) ++addenddata-&gt;digits[i+j+2];
-<a name="l00087"></a>00087 }
-<a name="l00088"></a>00088 }
-<a name="l00089"></a>00089
-<a name="l00090"></a>00090 integer answer;
-<a name="l00091"></a>00091 data_t *answerdata=answer._get_data();
-<a name="l00092"></a>00092 answerdata-&gt;alloc(ndata-&gt;mLength*2+1);
-<a name="l00093"></a>00093
-<a name="l00094"></a>00094 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> carry=0;
-<a name="l00095"></a>00095 <span class="keywordflow">for</span> (i=0, j=ndata-&gt;mLength*2+1; i&lt;j; ++i) {
-<a name="l00096"></a>00096 <span class="keywordflow">if</span> (addOverflow(carry, adigit[i])) ++addenddata-&gt;digits[i+2];
-<a name="l00097"></a>00097 answerdata-&gt;digits[i]=<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(carry);
-<a name="l00098"></a>00098 carry&gt;&gt;=<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>;
-<a name="l00099"></a>00099 }
-<a name="l00100"></a>00100
-<a name="l00101"></a>00101 answerdata-&gt;skipLeadingZeros();
-<a name="l00102"></a>00102 addenddata-&gt;skipLeadingZeros();
-<a name="l00103"></a>00103 answer+=addend;
-<a name="l00104"></a>00104
-<a name="l00105"></a>00105 <span class="keywordflow">return</span> answer;
-<a name="l00106"></a>00106 }
-<a name="l00107"></a>00107
-<a name="l00114"></a>00114 integer <a class="code" href="namespacexint.html#a186b14f991b32a818abd553b56a13a62" title="Calculate the value of ne.">pow</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; e) {
-<a name="l00115"></a>00115 <span class="keywordtype">bool</span> neg=(n.sign() &lt; 0 &amp;&amp; e.odd());
-<a name="l00116"></a>00116
-<a name="l00117"></a>00117 <span class="keywordtype">size_t</span> length=e.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>(), lastBitCount=0;
-<a name="l00118"></a>00118 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> ee(e._get_digit(length-1));
-<a name="l00119"></a>00119 <span class="keywordflow">while</span> (ee != 0) { ee &gt;&gt;= 1; ++lastBitCount; }
-<a name="l00120"></a>00120
-<a name="l00121"></a>00121 integer p(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba" title="Returns the absolute value of an integer.">abs</a>(n)), answer=<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>();
-<a name="l00122"></a>00122 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> eIndex=0; eIndex &lt; length; ++eIndex) {
-<a name="l00123"></a>00123 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> eee(e._get_digit(eIndex));
-<a name="l00124"></a>00124
-<a name="l00125"></a>00125 <span class="keywordtype">int</span> bitCount(<span class="keywordtype">int</span>(eIndex == length-1 ? lastBitCount : <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>));
-<a name="l00126"></a>00126 <span class="keywordflow">while</span> (bitCount-- &gt; 0) {
-<a name="l00127"></a>00127 <span class="keywordflow">if</span> (eee &amp; 0x01) answer*=p;
-<a name="l00128"></a>00128 p=<a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b" title="Calculate the value of n2.">sqr</a>(p);
-<a name="l00129"></a>00129 eee &gt;&gt;= 1;
-<a name="l00130"></a>00130 }
-<a name="l00131"></a>00131 }
-<a name="l00132"></a>00132
-<a name="l00133"></a>00133 answer._set_negative(neg);
-<a name="l00134"></a>00134 <span class="keywordflow">return</span> answer;
-<a name="l00135"></a>00135 }
-<a name="l00136"></a>00136
-<a name="l00148"></a>00148 integer <a class="code" href="namespacexint.html#aba188df925c87a0f33a79328e31e1a50" title="Calculate the value of n! ">factorial</a>(<span class="keywordtype">size_t</span> n) {
-<a name="l00149"></a>00149 integer r(<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>());
-<a name="l00150"></a>00150 <span class="keywordflow">if</span> (n == (std::numeric_limits&lt;size_t&gt;::max)()) {
-<a name="l00151"></a>00151 <span class="comment">// It&apos;s highly unlikely that the system will be able to calculate this,</span>
-<a name="l00152"></a>00152 <span class="comment">// or that anyone might want to, but someday it will be possible. This</span>
-<a name="l00153"></a>00153 <span class="comment">// code keeps the function from going into an infinite loop if/when that</span>
-<a name="l00154"></a>00154 <span class="comment">// happens.</span>
-<a name="l00155"></a>00155 r=(std::numeric_limits&lt;size_t&gt;::max)();
-<a name="l00156"></a>00156 --n;
-<a name="l00157"></a>00157 }
-<a name="l00158"></a>00158 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=2; i&lt;=n; ++i) r*=i;
-<a name="l00159"></a>00159 <span class="keywordflow">return</span> r;
-<a name="l00160"></a>00160 }
-<a name="l00161"></a>00161
-<a name="l00162"></a>00162 } <span class="comment">// namespace xint</span>
+<a name="l00023"></a>00023 <span class="keyword">namespace </span>boost {
+<a name="l00024"></a>00024 <span class="keyword">namespace </span>xint {
+<a name="l00025"></a>00025
+<a name="l00026"></a>00026 <span class="keyword">using namespace </span>detail;
+<a name="l00027"></a>00027
+<a name="l00028"></a>00028 <span class="keyword">namespace </span>{
+<a name="l00029"></a>00029
+<a name="l00030"></a>00030 <span class="keywordtype">bool</span> addOverflow(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> &amp;n1, <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> n2) {
+<a name="l00031"></a>00031 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> t=(n1&gt;&gt;1)+(n2&gt;&gt;1);
+<a name="l00032"></a>00032 <span class="keywordflow">if</span> ((n1&amp;1) &amp;&amp; (n2&amp;1)) ++t;
+<a name="l00033"></a>00033 n1+=n2;
+<a name="l00034"></a>00034 <span class="keywordflow">if</span> (t &amp; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a33ea157e34285642e6924bbffffc4367">doubledigit_hibit</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00035"></a>00035 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00036"></a>00036 }
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038 } <span class="comment">// namespace</span>
+<a name="l00039"></a>00039
+<a name="l00049"></a>00049 integer <a class="code" href="namespaceboost_1_1xint.html#af710e4b39cfa66096c202f17d12cc7b7" title="Calculate the value of 2e.">pow2</a>(<span class="keywordtype">size_t</span> e) {
+<a name="l00050"></a>00050 integer r;
+<a name="l00051"></a>00051 <a class="code" href="namespaceboost_1_1xint.html#a6278915cf51b0d448a9db40031226182" title="Sets a specific bit in an integer to one.">setbit</a>(r, e);
+<a name="l00052"></a>00052 <span class="keywordflow">return</span> r;
+<a name="l00053"></a>00053 }
+<a name="l00054"></a>00054
+<a name="l00065"></a>00065 integer <a class="code" href="namespaceboost_1_1xint.html#afbba1eeb86e4e7610a75afbb89d594e3" title="Calculate the value of n2.">sqr</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00066"></a>00066 n.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00067"></a>00067
+<a name="l00068"></a>00068 <span class="keyword">const</span> data_t *ndata=n._get_data();
+<a name="l00069"></a>00069 std::vector&lt;doubledigit_t&gt; a(ndata-&gt;mLength*2+1, 0);
+<a name="l00070"></a>00070 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> *adigit=&amp;a[0];
+<a name="l00071"></a>00071
+<a name="l00072"></a>00072 <span class="keywordtype">size_t</span> i, j;
+<a name="l00073"></a>00073 integer addend;
+<a name="l00074"></a>00074 data_t *addenddata=addend._get_data();
+<a name="l00075"></a>00075 addenddata-&gt;alloc(ndata-&gt;mLength*2+1);
+<a name="l00076"></a>00076
+<a name="l00077"></a>00077 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *ndigitip=ndata-&gt;digits;
+<a name="l00078"></a>00078 <span class="keywordflow">for</span> (i=0; i&lt;ndata-&gt;mLength; ++i, ++ndigitip) {
+<a name="l00079"></a>00079 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> ndigiti=*ndigitip;
+<a name="l00080"></a>00080 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> t=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(ndigiti) * ndigiti);
+<a name="l00081"></a>00081 <span class="keywordflow">if</span> (addOverflow(adigit[2*i], t)) ++addenddata-&gt;digits[2*i+2];
+<a name="l00082"></a>00082
+<a name="l00083"></a>00083 for (j=i+1; j&lt;ndata-&gt;mLength; ++j) {
+<a name="l00084"></a>00084 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> t=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(ndata-&gt;digits[j]) * ndigiti);
+<a name="l00085"></a>00085 <span class="keywordflow">if</span> (t &amp; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a33ea157e34285642e6924bbffffc4367">doubledigit_hibit</a>) ++addenddata-&gt;digits[i+j+2];
+<a name="l00086"></a>00086 t&lt;&lt;=1;
+<a name="l00087"></a>00087 <span class="keywordflow">if</span> (addOverflow(adigit[i+j], t)) ++addenddata-&gt;digits[i+j+2];
+<a name="l00088"></a>00088 }
+<a name="l00089"></a>00089 }
+<a name="l00090"></a>00090
+<a name="l00091"></a>00091 integer answer;
+<a name="l00092"></a>00092 data_t *answerdata=answer._get_data();
+<a name="l00093"></a>00093 answerdata-&gt;alloc(ndata-&gt;mLength*2+1);
+<a name="l00094"></a>00094
+<a name="l00095"></a>00095 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> carry=0;
+<a name="l00096"></a>00096 <span class="keywordflow">for</span> (i=0, j=ndata-&gt;mLength*2+1; i&lt;j; ++i) {
+<a name="l00097"></a>00097 <span class="keywordflow">if</span> (addOverflow(carry, adigit[i])) ++addenddata-&gt;digits[i+2];
+<a name="l00098"></a>00098 answerdata-&gt;digits[i]=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(carry);
+<a name="l00099"></a>00099 carry&gt;&gt;=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
+<a name="l00100"></a>00100 }
+<a name="l00101"></a>00101
+<a name="l00102"></a>00102 answerdata-&gt;skipLeadingZeros();
+<a name="l00103"></a>00103 addenddata-&gt;skipLeadingZeros();
+<a name="l00104"></a>00104 answer+=addend;
+<a name="l00105"></a>00105
+<a name="l00106"></a>00106 <span class="keywordflow">return</span> answer;
+<a name="l00107"></a>00107 }
+<a name="l00108"></a>00108
+<a name="l00115"></a>00115 integer <a class="code" href="namespaceboost_1_1xint.html#aa7d7b30f587c98ad31b8d421b8813c61" title="Calculate the value of ne.">pow</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; e) {
+<a name="l00116"></a>00116 <span class="keywordtype">bool</span> neg=(n.sign() &lt; 0 &amp;&amp; e.odd());
+<a name="l00117"></a>00117
+<a name="l00118"></a>00118 <span class="keywordtype">size_t</span> length=e.<a class="code" href="classboost_1_1xint_1_1integer.html#ad4a65fa154847321803888988d18d244">_get_length</a>(), lastBitCount=0;
+<a name="l00119"></a>00119 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> ee(e._get_digit(length-1));
+<a name="l00120"></a>00120 <span class="keywordflow">while</span> (ee != 0) { ee &gt;&gt;= 1; ++lastBitCount; }
+<a name="l00121"></a>00121
+<a name="l00122"></a>00122 integer p(<a class="code" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672" title="Returns the absolute value of an integer.">abs</a>(n)), answer=<a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>();
+<a name="l00123"></a>00123 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> eIndex=0; eIndex &lt; length; ++eIndex) {
+<a name="l00124"></a>00124 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> eee(e._get_digit(eIndex));
+<a name="l00125"></a>00125
+<a name="l00126"></a>00126 <span class="keywordtype">int</span> bitCount(<span class="keywordtype">int</span>(eIndex == length-1 ? lastBitCount : <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>));
+<a name="l00127"></a>00127 <span class="keywordflow">while</span> (bitCount-- &gt; 0) {
+<a name="l00128"></a>00128 <span class="keywordflow">if</span> (eee &amp; 0x01) answer*=p;
+<a name="l00129"></a>00129 p=<a class="code" href="namespaceboost_1_1xint.html#afbba1eeb86e4e7610a75afbb89d594e3" title="Calculate the value of n2.">sqr</a>(p);
+<a name="l00130"></a>00130 eee &gt;&gt;= 1;
+<a name="l00131"></a>00131 }
+<a name="l00132"></a>00132 }
+<a name="l00133"></a>00133
+<a name="l00134"></a>00134 answer._set_negative(neg);
+<a name="l00135"></a>00135 <span class="keywordflow">return</span> answer;
+<a name="l00136"></a>00136 }
+<a name="l00137"></a>00137
+<a name="l00149"></a>00149 integer <a class="code" href="namespaceboost_1_1xint.html#a942e346f6e6d069dc19c28e7e56634ab" title="Calculate the value of n! ">factorial</a>(<span class="keywordtype">size_t</span> n) {
+<a name="l00150"></a>00150 integer r(<a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>());
+<a name="l00151"></a>00151 <span class="keywordflow">if</span> (n == (std::numeric_limits&lt;size_t&gt;::max)()) {
+<a name="l00152"></a>00152 <span class="comment">// It&apos;s highly unlikely that the system will be able to calculate this,</span>
+<a name="l00153"></a>00153 <span class="comment">// or that anyone might want to, but someday it will be possible. This</span>
+<a name="l00154"></a>00154 <span class="comment">// code keeps the function from going into an infinite loop if/when that</span>
+<a name="l00155"></a>00155 <span class="comment">// happens.</span>
+<a name="l00156"></a>00156 r=(std::numeric_limits&lt;size_t&gt;::max)();
+<a name="l00157"></a>00157 --n;
+<a name="l00158"></a>00158 }
+<a name="l00159"></a>00159 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=2; i&lt;=n; ++i) r*=i;
+<a name="l00160"></a>00160 <span class="keywordflow">return</span> r;
+<a name="l00161"></a>00161 }
+<a name="l00162"></a>00162
+<a name="l00163"></a>00163 } <span class="comment">// namespace xint</span>
+<a name="l00164"></a>00164 } <span class="comment">// namespace boost</span>
 </pre></div></div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/primes.html
==============================================================================
--- sandbox/xint/doc/primes.html (original)
+++ sandbox/xint/doc/primes.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -25,7 +25,7 @@
 
 
 <h1><a class="anchor" id="primes">Generating Prime Numbers </a></h1><p>A common reason to use a large-integer library is to implement public-key encryption, and the algorithms for such encryption often require large prime numbers.</p>
-<p>With larger bit-sizes, the <a class="el" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f" title="Tests an integer for primality.">xint::is_prime</a> and <a class="el" href="namespacexint.html#afc8ba5f62561b4d2b42e32dde1a10ef3" title="Generate a randomly-generated prime number of a particular bit-size.">xint::random_prime</a> functions can take a very long time to run, so you can pass an optional callback function to them as well. The provided callback function (which takes no parameters and returns a <code>bool</code>) will be called regularly during this time, and if it returns <code>false</code>, the function will abort and return zero (for random_prime) or -1 (for is_prime) instead of a value.</p>
+<p>With larger bit-sizes, the xint::is_prime and xint::random_prime functions can take a very long time to run, so you can pass an optional callback function to them as well. The provided callback function (which takes no parameters and returns a <code>bool</code>) will be called regularly during this time, and if it returns <code>false</code>, the function will abort and return zero (for random_prime) or -1 (for is_prime) instead of a value.</p>
 <p>Here is an example of how to use the library functions to create a prime number of a specific length, using the system's strong random number generator:</p>
 <div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;iostream&gt;</span>
 <span class="preprocessor">#include &lt;<a class="code" href="xint_8hpp.html" title="The main header file for the XInt library.">boost/xint/xint.hpp</a>&gt;</span>
@@ -44,16 +44,16 @@
     <span class="keywordflow">try</span> {
         <span class="comment">// Use the system&apos;s strong random number generator, via the XInt-</span>
         <span class="comment">// provided convenience class.</span>
- <a class="code" href="namespacexint_1_1detail.html#a5f8bba03a6f615a82ebcf94ad7cd4353" title="Support function.">xint::set_random_generator</a>(<span class="keyword">new</span> <a class="code" href="classxint_1_1strong__random__generator.html" title="A convenience class for cryptographically-secure random numbers.">xint::strong_random_generator</a>);
+ <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a17e1b4fcb11ff18fd2641dc43ee905b8" title="Support function.">xint::set_random_generator</a>(<span class="keyword">new</span> xint::strong_random_generator);
 
         <span class="comment">// Generate the prime number, keeping the user informed of the</span>
         <span class="comment">// progress.</span>
         cout &lt;&lt; <span class="stringliteral">&quot;Generating...&quot;</span>;
- <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a> p=<a class="code" href="namespacexint.html#afc8ba5f62561b4d2b42e32dde1a10ef3" title="Generate a randomly-generated prime number of a particular bit-size.">xint::random_prime</a>(bits, callback);
+ xint::integer p=<a class="code" href="namespaceboost_1_1xint.html#aaf58d56e1a47ac55e0aa97a55e6fb2c9" title="Generate a randomly-generated prime number of a particular bit-size.">xint::random_prime</a>(bits, callback);
 
         <span class="comment">// Success!</span>
         cout &lt;&lt; <span class="stringliteral">&quot;\nA random &quot;</span> &lt;&lt; bits &lt;&lt; <span class="stringliteral">&quot;-bit prime is: &quot;</span> &lt;&lt; p &lt;&lt; endl;
- } <span class="keywordflow">catch</span> (<a class="code" href="classxint_1_1no__strong__random.html" title="Exception class.">xint::no_strong_random</a>&amp; e) {
+ } <span class="keywordflow">catch</span> (xint::no_strong_random&amp; e) {
         <span class="comment">// xint::strong_random_generator will throw this if the system doesn&apos;t</span>
         <span class="comment">// have a strong random number generator.</span>
         cout &lt;&lt; e.what() &lt;&lt; endl;
@@ -64,7 +64,7 @@
 }
 </pre></div><p>(You can find it in the <code>examples</code> directory, by the name <code>genprime.cpp</code>.) </p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/primes_8cpp.html
==============================================================================
--- sandbox/xint/doc/primes_8cpp.html (original)
+++ sandbox/xint/doc/primes_8cpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -35,7 +35,8 @@
 <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>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All of the functions in the XInt library are within this namespace. </p>
 <br/></td></tr>
@@ -44,17 +45,17 @@
 <tr><td colspan="2"><div class="groupHeader">Prime number functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp540e8e12721acbe497d2b9b53ecc76ec"></a> </p>
 <br/><br/></div></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="mdescLeft">&nbsp;</td><td class="mdescRight">Tests an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> for primality. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afc8ba5f62561b4d2b42e32dde1a10ef3">xint::random_prime</a> (size_t size_in_bits, callback_t callback)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate a randomly-generated prime number of a particular bit-size. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a58aa3df545d1da848922c13de2a87fc9">boost::xint::is_prime</a> (const integer &amp;n, callback_t callback)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> for primality. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aaf58d56e1a47ac55e0aa97a55e6fb2c9">boost::xint::random_prime</a> (size_t size_in_bits, callback_t callback)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate a randomly-generated prime number of a particular bit-size. <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Contains the definitions for functions related to prime numbers. </p>
 
 <p>Definition in file <a class="el" href="primes_8cpp_source.html">primes.cpp</a>.</p>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 01:22:08 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Apr 6 10:52:51 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
 </body>

Modified: sandbox/xint/doc/primes_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/primes_8cpp_source.html (original)
+++ sandbox/xint/doc/primes_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -41,112 +41,114 @@
 <a name="l00019"></a>00019
 <a name="l00020"></a>00020 <span class="preprocessor">#include &lt;vector&gt;</span>
 <a name="l00021"></a>00021
-<a name="l00022"></a>00022 <span class="keyword">namespace </span>xint {
-<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 std::vector&lt;int&gt; sieveOfEratosthenes(<span class="keywordtype">int</span> upTo) {
-<a name="l00027"></a>00027 std::vector&lt;int&gt; sieve;
-<a name="l00028"></a>00028 sieve.reserve(upTo);
-<a name="l00029"></a>00029
-<a name="l00030"></a>00030 <span class="comment">// Zero and one aren&apos;t prime, by this definition.</span>
-<a name="l00031"></a>00031 sieve.push_back(0);
+<a name="l00022"></a>00022 <span class="keyword">namespace </span>boost {
+<a name="l00023"></a>00023 <span class="keyword">namespace </span>xint {
+<a name="l00024"></a>00024
+<a name="l00025"></a>00025 <span class="keyword">namespace </span>{
+<a name="l00026"></a>00026
+<a name="l00027"></a>00027 std::vector&lt;int&gt; sieveOfEratosthenes(<span class="keywordtype">int</span> upTo) {
+<a name="l00028"></a>00028 std::vector&lt;int&gt; sieve;
+<a name="l00029"></a>00029 sieve.reserve(upTo);
+<a name="l00030"></a>00030
+<a name="l00031"></a>00031 <span class="comment">// Zero and one aren&apos;t prime, by this definition.</span>
 <a name="l00032"></a>00032 sieve.push_back(0);
-<a name="l00033"></a>00033
-<a name="l00034"></a>00034 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> p=2; p&lt;upTo; ++p) sieve.push_back(p);
-<a name="l00035"></a>00035
-<a name="l00036"></a>00036 std::vector&lt;int&gt; ret;
-<a name="l00037"></a>00037
-<a name="l00038"></a>00038 <span class="keywordtype">int</span> *p=&amp;sieve[0], *e=p+upTo;
-<a name="l00039"></a>00039 <span class="keywordflow">while</span> (p&lt;e) {
-<a name="l00040"></a>00040 <span class="keywordflow">if</span> (*p==0) { ++p; <span class="keywordflow">continue</span>; }
-<a name="l00041"></a>00041 ret.push_back(*p);
-<a name="l00042"></a>00042
-<a name="l00043"></a>00043 <span class="keywordtype">int</span> *p2=p+(*p);
-<a name="l00044"></a>00044 <span class="keywordflow">while</span> (p2&lt;e) { *p2=0; p2+=*p; }
-<a name="l00045"></a>00045
-<a name="l00046"></a>00046 ++p;
-<a name="l00047"></a>00047 }
-<a name="l00048"></a>00048
-<a name="l00049"></a>00049 <span class="keywordflow">return</span> ret;
-<a name="l00050"></a>00050 }
-<a name="l00051"></a>00051
-<a name="l00052"></a>00052 <span class="comment">// The Miller-Rabin Probabilistic Test of Primality</span>
-<a name="l00053"></a>00053 <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="l00054"></a>00054 callback)
-<a name="l00055"></a>00055 {
-<a name="l00056"></a>00056 <span class="keyword">const</span> integer nMinus1(n - <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>());
-<a name="l00057"></a>00057
-<a name="l00058"></a>00058 <span class="comment">// Find r and a satisfying: n-1=2^a * r, r odd</span>
-<a name="l00059"></a>00059 integer r=nMinus1;
-<a name="l00060"></a>00060 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> a=0;
-<a name="l00061"></a>00061 <span class="keywordflow">while</span> (r.even()) { r &gt;&gt;= 1; ++a; }
-<a name="l00062"></a>00062
-<a name="l00063"></a>00063 <span class="comment">// We check the congruence class of b^((2^i)r) % n for each i</span>
-<a name="l00064"></a>00064 <span class="comment">// from 0 to a - 1. If any one is correct, then n passes.</span>
-<a name="l00065"></a>00065 <span class="comment">// Otherwise, n fails.</span>
-<a name="l00066"></a>00066 integer test=<a class="code" href="namespacexint.html#ac54e9be3a8b131f882f88e57b0ef1c9c" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(b, r, n);
-<a name="l00067"></a>00067 <span class="keywordflow">if</span> (test==<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>() || test==nMinus1) <span class="keywordflow">return</span> 1; <span class="comment">// Better than 3/4 chance it&apos;s prime</span>
-<a name="l00068"></a>00068
-<a name="l00069"></a>00069 <span class="keywordflow">while</span> (a--&gt;0) {
-<a name="l00070"></a>00070 test=<a class="code" href="namespacexint.html#aa5564979e78556afdc68dbbd744a0bcb" title="Get the modular product of squaring an integer.">sqrmod</a>(test, n);
-<a name="l00071"></a>00071 <span class="keywordflow">if</span> (test==nMinus1) <span class="keywordflow">return</span> 1;
-<a name="l00072"></a>00072 }
-<a name="l00073"></a>00073
-<a name="l00074"></a>00074 <span class="keywordflow">if</span> (callback &amp;&amp; !callback()) <span class="keywordflow">return</span> -1;
-<a name="l00075"></a>00075 <span class="keywordflow">return</span> 0;
-<a name="l00076"></a>00076 }
-<a name="l00077"></a>00077
-<a name="l00078"></a>00078 } <span class="comment">// namespace</span>
-<a name="l00079"></a>00079
-<a name="l00103"></a>00103 <span class="keywordtype">int</span> <a class="code" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f" title="Tests an integer for primality.">is_prime</a>(<span class="keyword">const</span> integer&amp; n, <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> callback) {
-<a name="l00104"></a>00104 <span class="keywordflow">if</span> (n &lt; 2) {
-<a name="l00105"></a>00105 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;xint::is_prime &quot;</span>
-<a name="l00106"></a>00106 <span class="stringliteral">&quot;cannot test numbers below 2&quot;</span>);
-<a name="l00107"></a>00107 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1;
-<a name="l00108"></a>00108 }
-<a name="l00109"></a>00109
-<a name="l00110"></a>00110 <span class="comment">// First we trial-divide it by the primes below 2000</span>
-<a name="l00111"></a>00111 <span class="keyword">static</span> <span class="keyword">const</span> std::vector&lt;int&gt; cLowPrimes(sieveOfEratosthenes(2000));
-<a name="l00112"></a>00112 std::vector&lt;int&gt;::const_iterator i=cLowPrimes.begin(), ie=cLowPrimes.end();
-<a name="l00113"></a>00113 <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="l00114"></a>00114
-<a name="l00115"></a>00115 <span class="comment">// Run the number through the Miller-Rabin Probabilistic Test of Primality</span>
-<a name="l00116"></a>00116 <span class="comment">// a few times to see if it&apos;s actually (probably) prime.</span>
-<a name="l00117"></a>00117 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> count=0; count&lt;5; ++count) {
-<a name="l00118"></a>00118 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k=<a class="code" href="namespacexint_1_1detail.html#a1dfc1e90886c4897a4b112f491b89b62">detail::get_random</a>();
-<a name="l00119"></a>00119 <span class="keywordtype">int</span> isP=isProbablePrimeBaseB(n, <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba" title="Returns the absolute value of an integer.">abs</a>(k), callback);
-<a name="l00120"></a>00120 <span class="keywordflow">if</span> (isP &lt;= 0) <span class="keywordflow">return</span> isP;
-<a name="l00121"></a>00121 }
-<a name="l00122"></a>00122 <span class="keywordflow">return</span> 1; <span class="comment">// Appears to be prime!</span>
-<a name="l00123"></a>00123 }
-<a name="l00124"></a>00124
-<a name="l00147"></a>00147 integer <a class="code" href="namespacexint.html#afc8ba5f62561b4d2b42e32dde1a10ef3" title="Generate a randomly-generated prime number of a particular bit-size.">random_prime</a>(<span class="keywordtype">size_t</span> size_in_bits, <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> callback) {
-<a name="l00148"></a>00148 <span class="keywordflow">if</span> (size_in_bits &lt; 2) {
-<a name="l00149"></a>00149 <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> std::invalid_argument(
-<a name="l00150"></a>00150 <span class="stringliteral">&quot;xint::random_prime cannot create prime numbers smaller than two &quot;</span>
-<a name="l00151"></a>00151 <span class="stringliteral">&quot;bits&quot;</span>);
-<a name="l00152"></a>00152 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
-<a name="l00153"></a>00153 }
-<a name="l00154"></a>00154
-<a name="l00155"></a>00155 <span class="comment">// Call the callback for the first time</span>
-<a name="l00156"></a>00156 <span class="keywordflow">if</span> (callback &amp;&amp; !callback()) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>();
-<a name="l00157"></a>00157
-<a name="l00158"></a>00158 integer pe=<a class="code" href="namespacexint.html#a6b723c30c28eb57f611442e0b512f551" title="Calculate the value of 2e.">pow2</a>(size_in_bits+1);
-<a name="l00159"></a>00159 <span class="keywordflow">while</span> (1) {
-<a name="l00160"></a>00160 integer p(<a class="code" href="namespacexint.html#a5da6e81cb78913cc61c9f14857700b5e" title="Generates a random integer with specific attributes.">random_by_size</a>(size_in_bits, <span class="keyword">true</span>, <span class="keyword">true</span>));
-<a name="l00161"></a>00161 <span class="keywordflow">while</span> (p &lt; pe) {
-<a name="l00162"></a>00162 <span class="keywordtype">int</span> r=<a class="code" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f" title="Tests an integer for primality.">is_prime</a>(p, callback);
-<a name="l00163"></a>00163 <span class="keywordflow">if</span> (r &lt; 0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>();
-<a name="l00164"></a>00164 <span class="keywordflow">if</span> (r == 1) <span class="keywordflow">return</span> p;
-<a name="l00165"></a>00165 p+=2;
-<a name="l00166"></a>00166 }
-<a name="l00167"></a>00167 }
-<a name="l00168"></a>00168 }
-<a name="l00169"></a>00169
-<a name="l00170"></a>00170 } <span class="comment">// namespace xint</span>
+<a name="l00033"></a>00033 sieve.push_back(0);
+<a name="l00034"></a>00034
+<a name="l00035"></a>00035 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> p=2; p&lt;upTo; ++p) sieve.push_back(p);
+<a name="l00036"></a>00036
+<a name="l00037"></a>00037 std::vector&lt;int&gt; ret;
+<a name="l00038"></a>00038
+<a name="l00039"></a>00039 <span class="keywordtype">int</span> *p=&amp;sieve[0], *e=p+upTo;
+<a name="l00040"></a>00040 <span class="keywordflow">while</span> (p&lt;e) {
+<a name="l00041"></a>00041 <span class="keywordflow">if</span> (*p==0) { ++p; <span class="keywordflow">continue</span>; }
+<a name="l00042"></a>00042 ret.push_back(*p);
+<a name="l00043"></a>00043
+<a name="l00044"></a>00044 <span class="keywordtype">int</span> *p2=p+(*p);
+<a name="l00045"></a>00045 <span class="keywordflow">while</span> (p2&lt;e) { *p2=0; p2+=*p; }
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 ++p;
+<a name="l00048"></a>00048 }
+<a name="l00049"></a>00049
+<a name="l00050"></a>00050 <span class="keywordflow">return</span> ret;
+<a name="l00051"></a>00051 }
+<a name="l00052"></a>00052
+<a name="l00053"></a>00053 <span class="comment">// The Miller-Rabin Probabilistic Test of Primality</span>
+<a name="l00054"></a>00054 <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="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a>
+<a name="l00055"></a>00055 callback)
+<a name="l00056"></a>00056 {
+<a name="l00057"></a>00057 <span class="keyword">const</span> integer nMinus1(n - <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>());
+<a name="l00058"></a>00058
+<a name="l00059"></a>00059 <span class="comment">// Find r and a satisfying: n-1=2^a * r, r odd</span>
+<a name="l00060"></a>00060 integer r=nMinus1;
+<a name="l00061"></a>00061 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> a=0;
+<a name="l00062"></a>00062 <span class="keywordflow">while</span> (r.even()) { r &gt;&gt;= 1; ++a; }
+<a name="l00063"></a>00063
+<a name="l00064"></a>00064 <span class="comment">// We check the congruence class of b^((2^i)r) % n for each i</span>
+<a name="l00065"></a>00065 <span class="comment">// from 0 to a - 1. If any one is correct, then n passes.</span>
+<a name="l00066"></a>00066 <span class="comment">// Otherwise, n fails.</span>
+<a name="l00067"></a>00067 integer test=<a class="code" href="namespaceboost_1_1xint.html#a35e7556e9f2d8fb944dbf732ed3f96cd" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(b, r, n);
+<a name="l00068"></a>00068 <span class="keywordflow">if</span> (test==<a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>() || test==nMinus1) <span class="keywordflow">return</span> 1; <span class="comment">// Better than 3/4 chance it&apos;s prime</span>
+<a name="l00069"></a>00069
+<a name="l00070"></a>00070 <span class="keywordflow">while</span> (a--&gt;0) {
+<a name="l00071"></a>00071 test=<a class="code" href="namespaceboost_1_1xint.html#adb9a9cb117e7346a3b56c369cd438b0e" title="Get the modular product of squaring an integer.">sqrmod</a>(test, n);
+<a name="l00072"></a>00072 <span class="keywordflow">if</span> (test==nMinus1) <span class="keywordflow">return</span> 1;
+<a name="l00073"></a>00073 }
+<a name="l00074"></a>00074
+<a name="l00075"></a>00075 <span class="keywordflow">if</span> (callback &amp;&amp; !callback()) <span class="keywordflow">return</span> -1;
+<a name="l00076"></a>00076 <span class="keywordflow">return</span> 0;
+<a name="l00077"></a>00077 }
+<a name="l00078"></a>00078
+<a name="l00079"></a>00079 } <span class="comment">// namespace</span>
+<a name="l00080"></a>00080
+<a name="l00104"></a>00104 <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a58aa3df545d1da848922c13de2a87fc9" title="Tests an integer for primality.">is_prime</a>(<span class="keyword">const</span> integer&amp; n, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a> callback) {
+<a name="l00105"></a>00105 <span class="keywordflow">if</span> (n &lt; 2) {
+<a name="l00106"></a>00106 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;xint::is_prime &quot;</span>
+<a name="l00107"></a>00107 <span class="stringliteral">&quot;cannot test numbers below 2&quot;</span>);
+<a name="l00108"></a>00108 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1;
+<a name="l00109"></a>00109 }
+<a name="l00110"></a>00110
+<a name="l00111"></a>00111 <span class="comment">// First we trial-divide it by the primes below 2000</span>
+<a name="l00112"></a>00112 <span class="keyword">static</span> <span class="keyword">const</span> std::vector&lt;int&gt; cLowPrimes(sieveOfEratosthenes(2000));
+<a name="l00113"></a>00113 std::vector&lt;int&gt;::const_iterator i=cLowPrimes.begin(), ie=cLowPrimes.end();
+<a name="l00114"></a>00114 <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="l00115"></a>00115
+<a name="l00116"></a>00116 <span class="comment">// Run the number through the Miller-Rabin Probabilistic Test of Primality</span>
+<a name="l00117"></a>00117 <span class="comment">// a few times to see if it&apos;s actually (probably) prime.</span>
+<a name="l00118"></a>00118 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> count=0; count&lt;5; ++count) {
+<a name="l00119"></a>00119 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a6486d7febde540f90921e9925d077534">detail::get_random</a>();
+<a name="l00120"></a>00120 <span class="keywordtype">int</span> isP=isProbablePrimeBaseB(n, <a class="code" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672" title="Returns the absolute value of an integer.">abs</a>(k), callback);
+<a name="l00121"></a>00121 <span class="keywordflow">if</span> (isP &lt;= 0) <span class="keywordflow">return</span> isP;
+<a name="l00122"></a>00122 }
+<a name="l00123"></a>00123 <span class="keywordflow">return</span> 1; <span class="comment">// Appears to be prime!</span>
+<a name="l00124"></a>00124 }
+<a name="l00125"></a>00125
+<a name="l00148"></a>00148 integer <a class="code" href="namespaceboost_1_1xint.html#aaf58d56e1a47ac55e0aa97a55e6fb2c9" title="Generate a randomly-generated prime number of a particular bit-size.">random_prime</a>(<span class="keywordtype">size_t</span> size_in_bits, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a> callback) {
+<a name="l00149"></a>00149 <span class="keywordflow">if</span> (size_in_bits &lt; 2) {
+<a name="l00150"></a>00150 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> std::invalid_argument(
+<a name="l00151"></a>00151 <span class="stringliteral">&quot;xint::random_prime cannot create prime numbers smaller than two &quot;</span>
+<a name="l00152"></a>00152 <span class="stringliteral">&quot;bits&quot;</span>);
+<a name="l00153"></a>00153 <span class="keyw