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="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00154"></a>00154 }
+<a name="l00155"></a>00155
+<a name="l00156"></a>00156 <span class="comment">// Call the callback for the first time</span>
+<a name="l00157"></a>00157 <span class="keywordflow">if</span> (callback &amp;&amp; !callback()) <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>();
+<a name="l00158"></a>00158
+<a name="l00159"></a>00159 integer pe=<a class="code" href="namespaceboost_1_1xint.html#af710e4b39cfa66096c202f17d12cc7b7" title="Calculate the value of 2e.">pow2</a>(size_in_bits+1);
+<a name="l00160"></a>00160 <span class="keywordflow">while</span> (1) {
+<a name="l00161"></a>00161 integer p(<a class="code" href="namespaceboost_1_1xint.html#ac8d879e19a6608b21184236e00806be5" 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="l00162"></a>00162 <span class="keywordflow">while</span> (p &lt; pe) {
+<a name="l00163"></a>00163 <span class="keywordtype">int</span> r=<a class="code" href="namespaceboost_1_1xint.html#a58aa3df545d1da848922c13de2a87fc9" title="Tests an integer for primality.">is_prime</a>(p, callback);
+<a name="l00164"></a>00164 <span class="keywordflow">if</span> (r &lt; 0) <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>();
+<a name="l00165"></a>00165 <span class="keywordflow">if</span> (r == 1) <span class="keywordflow">return</span> p;
+<a name="l00166"></a>00166 p+=2;
+<a name="l00167"></a>00167 }
+<a name="l00168"></a>00168 }
+<a name="l00169"></a>00169 }
+<a name="l00170"></a>00170
+<a name="l00171"></a>00171 } <span class="comment">// namespace xint</span>
+<a name="l00172"></a>00172 } <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_8dox.html
==============================================================================
--- sandbox/xint/doc/primes_8dox.html (original)
+++ sandbox/xint/doc/primes_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/primes.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/primitives_8cpp.html
==============================================================================
--- sandbox/xint/doc/primitives_8cpp.html (original)
+++ sandbox/xint/doc/primitives_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,27 +46,27 @@
 <tr><td colspan="2"><div class="groupHeader">Mathematical primitives</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp196dd2a5f50860e057df961a96d84ea3"></a> </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#ac9e4ed282bafa93dbf608350df0127ba">xint::abs</a> (const integer &amp;n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the absolute 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">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab393826381b1abd9f1aca1cdb45f41f6">xint::negate</a> (const integer &amp;n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the additive inverse 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">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint::add</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the sum 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#af196cd74cb23970032fddcce71957a80">xint::subtract</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the difference between 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#af3d7059ec08bf075cec5685deca55c5d">xint::multiply</a> (const integer &amp;n, const integer &amp;by)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the 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#abf3d47f1ef1fdf334097fab055886a44">xint::divide</a> (const integer &amp;dividend, const integer &amp;divisor)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">std::pair&lt; integer, integer &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">xint::divide_r</a> (const integer &amp;d1, const integer &amp;d2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>, with the remainder. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672">boost::xint::abs</a> (const integer &amp;n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the absolute value of 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#a84190f7b286de191e8026e440f104731">boost::xint::negate</a> (const integer &amp;n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the additive inverse of 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#a5f82fa6b23e9af01292440248b89210d">boost::xint::add</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the sum 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#a86eb0099596fe66bd46be244323f44e5">boost::xint::subtract</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the difference between 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#a9e0d6ad947fa3e979ed6e26d7e81ab7f">boost::xint::multiply</a> (const integer &amp;n, const integer &amp;by)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the 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#a4892543bb8ccfa8acb188a63a3d4723b">boost::xint::divide</a> (const integer &amp;dividend, const integer &amp;divisor)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::pair&lt; integer, integer &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0fff3b235a18c0b3243a1ccc01a68f23">boost::xint::divide_r</a> (const integer &amp;d1, const integer &amp;d2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>, with the remainder. <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Contains the definitions for math primitives. </p>
 
 <p>Definition in file <a class="el" href="primitives_8cpp_source.html">primitives.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/primitives_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/primitives_8cpp_source.html (original)
+++ sandbox/xint/doc/primitives_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -41,246 +41,248 @@
 <a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../boost/xint/xint_data_t.hpp&quot;</span>
 <a name="l00020"></a>00020 <span class="preprocessor">#include &lt;cassert&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">using namespace </span>detail;
-<a name="l00025"></a>00025
-<a name="l00032"></a>00032 integer <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba" title="Returns the absolute value of an integer.">abs</a>(<span class="keyword">const</span> integer&amp; n) {
-<a name="l00033"></a>00033 <span class="keywordflow">return</span> (n &lt; 0 ? -n : n);
-<a name="l00034"></a>00034 }
-<a name="l00035"></a>00035
-<a name="l00042"></a>00042 integer <a class="code" href="namespacexint.html#ab393826381b1abd9f1aca1cdb45f41f6" title="Return the additive inverse of an integer.">negate</a>(<span class="keyword">const</span> integer&amp; n) {
-<a name="l00043"></a>00043 n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00044"></a>00044
-<a name="l00045"></a>00045 integer nn(n);
-<a name="l00046"></a>00046 nn._make_unique();
-<a name="l00047"></a>00047 nn._get_data()-&gt;negate();
-<a name="l00048"></a>00048 <span class="keywordflow">return</span> nn;
-<a name="l00049"></a>00049 }
-<a name="l00050"></a>00050
-<a name="l00057"></a>00057 integer <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163" title="Calculate the sum of two integers.">add</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) {
-<a name="l00058"></a>00058 <span class="keywordtype">int</span> sign1=n1.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">sign</a>(), sign2=n2.sign();
-<a name="l00059"></a>00059 <span class="keywordflow">if</span> (sign1 != sign2) {
-<a name="l00060"></a>00060 <span class="keywordflow">if</span> (sign1==0) <span class="keywordflow">return</span> n2;
-<a name="l00061"></a>00061 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2==0) <span class="keywordflow">return</span> n1;
-<a name="l00062"></a>00062 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80" title="Calculate the difference between two integers.">subtract</a>(n1, -n2);
-<a name="l00063"></a>00063 } <span class="keywordflow">else</span> {
-<a name="l00064"></a>00064 <span class="keyword">const</span> data_t *n1data=n1._get_data(), *n2data=n2._get_data();
-<a name="l00065"></a>00065 <span class="keywordflow">if</span> (n1data-&gt;mLength &lt; n2data-&gt;mLength) std::swap(n1data, n2data);
-<a name="l00066"></a>00066
-<a name="l00067"></a>00067 integer r;
-<a name="l00068"></a>00068 data_t *rdata=r._get_data();
-<a name="l00069"></a>00069 rdata-&gt;copy(n1data, 1);
-<a name="l00070"></a>00070 rdata-&gt;add(*n2data);
-<a name="l00071"></a>00071 <span class="keywordflow">return</span> r;
-<a name="l00072"></a>00072 }
-<a name="l00073"></a>00073 }
-<a name="l00074"></a>00074
-<a name="l00081"></a>00081 integer <a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80" title="Calculate the difference between two integers.">subtract</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) {
-<a name="l00082"></a>00082 <span class="keywordtype">int</span> sign1=n1.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">sign</a>(), sign2=n2.sign();
-<a name="l00083"></a>00083 <span class="keywordflow">if</span> (sign1 != sign2) {
-<a name="l00084"></a>00084 <span class="keywordflow">if</span> (sign1 == 0) <span class="keywordflow">return</span> -n2;
-<a name="l00085"></a>00085 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2 == 0) <span class="keywordflow">return</span> n1;
-<a name="l00086"></a>00086 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163" title="Calculate the sum of two integers.">add</a>(n1, -n2);
-<a name="l00087"></a>00087 } <span class="keywordflow">else</span> {
-<a name="l00088"></a>00088 <span class="keywordtype">bool</span> invert=(sign1 == (n1 &lt; n2 ? 1 : -1));
-<a name="l00089"></a>00089 <span class="keyword">const</span> data_t *n1data=n1._get_data(), *n2data=n2._get_data();
-<a name="l00090"></a>00090 <span class="keywordflow">if</span> (invert) std::swap(n1data, n2data);
-<a name="l00091"></a>00091
-<a name="l00092"></a>00092 integer r;
-<a name="l00093"></a>00093 data_t *rdata=r._get_data();
-<a name="l00094"></a>00094 rdata-&gt;copy(n1data);
-<a name="l00095"></a>00095 rdata-&gt;subtract(*n2data);
-<a name="l00096"></a>00096 <span class="keywordflow">return</span> (invert ? -r : r);
-<a name="l00097"></a>00097 }
-<a name="l00098"></a>00098 }
-<a name="l00099"></a>00099
-<a name="l00110"></a>00110 integer <a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d" title="Calculate the product of two integers.">multiply</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; by) {
-<a name="l00111"></a>00111 <span class="keywordtype">int</span> nsign=n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">sign</a>(), bysign=by.sign();
-<a name="l00112"></a>00112 <span class="keywordflow">if</span> (nsign==0 || bysign==0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>();
-<a name="l00113"></a>00113
-<a name="l00114"></a>00114 <span class="keyword">const</span> data_t *ndata=n._get_data(), *bydata=by._get_data();
-<a name="l00115"></a>00115 <span class="keywordflow">if</span> (ndata == bydata) <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b" title="Calculate the value of n2.">sqr</a>(n);
-<a name="l00116"></a>00116
-<a name="l00117"></a>00117 <span class="comment">// In multiplication, we know that the answer will be less than or equal to</span>
-<a name="l00118"></a>00118 <span class="comment">// the sum of the lengths of the operands.</span>
-<a name="l00119"></a>00119 integer answer;
-<a name="l00120"></a>00120 data_t *answerdata=answer._get_data();
-<a name="l00121"></a>00121 answerdata-&gt;alloc(ndata-&gt;mLength + bydata-&gt;mLength);
-<a name="l00122"></a>00122
-<a name="l00123"></a>00123 <span class="comment">// Now multiply the digits, starting at the least-significant digit.</span>
-<a name="l00124"></a>00124 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d1 = ndata-&gt;digits, *d1e = d1 + ndata-&gt;mLength;
-<a name="l00125"></a>00125 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d2e = bydata-&gt;digits + bydata-&gt;mLength;
-<a name="l00126"></a>00126 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> digit1=0; d1&lt;d1e; ++digit1, ++d1) {
-<a name="l00127"></a>00127 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d2=bydata-&gt;digits;
-<a name="l00128"></a>00128 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> digit2=0; d2&lt;d2e; ++digit2, ++d2) {
-<a name="l00129"></a>00129 <span class="comment">// First multiply the two digits</span>
-<a name="l00130"></a>00130 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> t=<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(*d1) * *d2;
-<a name="l00131"></a>00131
-<a name="l00132"></a>00132 <span class="comment">// Now add the result to the answer.</span>
-<a name="l00133"></a>00133 <span class="keywordtype">int</span> carry=0;
-<a name="l00134"></a>00134 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *a = answerdata-&gt;digits + digit1 + digit2;
-<a name="l00135"></a>00135 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> addt=<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(*a) + (t &amp; <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>);
-<a name="l00136"></a>00136 <span class="keywordflow">if</span> (addt &gt;= <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) carry=1;
-<a name="l00137"></a>00137 *a++=<span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(addt);
-<a name="l00138"></a>00138
-<a name="l00139"></a>00139 addt=*a + ((t &gt;&gt; <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>) &amp; <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>) + carry;
-<a name="l00140"></a>00140 <span class="keywordflow">if</span> (addt &gt;= <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) carry=1; <span class="keywordflow">else</span> carry=0;
-<a name="l00141"></a>00141 *a++=<span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(addt);
-<a name="l00142"></a>00142
-<a name="l00143"></a>00143 <span class="keywordflow">while</span> (carry) {
-<a name="l00144"></a>00144 addt=*a+1;
-<a name="l00145"></a>00145 *a++ = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(addt);
-<a name="l00146"></a>00146 <span class="keywordflow">if</span> (addt &lt; <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) <span class="keywordflow">break</span>;
-<a name="l00147"></a>00147 }
-<a name="l00148"></a>00148 }
-<a name="l00149"></a>00149 }
-<a name="l00150"></a>00150
-<a name="l00151"></a>00151 answer._set_negative(nsign != bysign);
-<a name="l00152"></a>00152 answer._get_data()-&gt;skipLeadingZeros();
-<a name="l00153"></a>00153 <span class="keywordflow">return</span> answer;
-<a name="l00154"></a>00154 }
-<a name="l00155"></a>00155
-<a name="l00156"></a>00156 <span class="keyword">namespace </span>{
-<a name="l00157"></a>00157
-<a name="l00158"></a>00158 std::pair&lt;integer, integer&gt; divideBySingleDigit(<span class="keyword">const</span> integer&amp; d1, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d2) {
-<a name="l00159"></a>00159 <span class="keyword">const</span> data_t *d1data=d1._get_data();
-<a name="l00160"></a>00160
-<a name="l00161"></a>00161 integer quotient, remainder;
-<a name="l00162"></a>00162 data_t *qdata=quotient._get_data(), *rdata=remainder._get_data();
-<a name="l00163"></a>00163 qdata-&gt;alloc(d1data-&gt;mLength);
-<a name="l00164"></a>00164 rdata-&gt;alloc(1);
-<a name="l00165"></a>00165
-<a name="l00166"></a>00166 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> a=0;
-<a name="l00167"></a>00167 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> lomask(<a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>);
-<a name="l00168"></a>00168 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> himask(<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(<a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>) &lt;&lt; <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
-<a name="l00169"></a>00169
-<a name="l00170"></a>00170 <span class="keywordtype">int</span> m = int(d1data-&gt;mLength) - 1;
-<a name="l00171"></a>00171 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d1p=d1data-&gt;digits+m;
-<a name="l00172"></a>00172 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *qp=qdata-&gt;digits+m;
-<a name="l00173"></a>00173 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = m; i &gt;= 0; --i, --d1p, --qp) {
-<a name="l00174"></a>00174 a = (a &amp; ~lomask) | *d1p;
-<a name="l00175"></a>00175 *qp = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(a / d2);
-<a name="l00176"></a>00176 a = (a &amp; ~himask) | ((a % d2) &lt;&lt; <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
-<a name="l00177"></a>00177 }
-<a name="l00178"></a>00178 rdata-&gt;digits[0] = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>((a &amp; himask) &gt;&gt;
-<a name="l00179"></a>00179 <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
-<a name="l00180"></a>00180
-<a name="l00181"></a>00181 qdata-&gt;skipLeadingZeros();
-<a name="l00182"></a>00182 rdata-&gt;skipLeadingZeros();
-<a name="l00183"></a>00183 <span class="keywordflow">return</span> std::make_pair(quotient, remainder);
-<a name="l00184"></a>00184 }
-<a name="l00185"></a>00185
-<a name="l00186"></a>00186 std::pair&lt;integer, integer&gt; subDivide(integer d1, integer d2) {
-<a name="l00187"></a>00187 <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *byDigits = d2._get_data()-&gt;digits;
-<a name="l00188"></a>00188
-<a name="l00189"></a>00189 <span class="comment">// The normalization step</span>
-<a name="l00190"></a>00190 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a> /
-<a name="l00191"></a>00191 (<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(byDigits[d2._get_length()-1])+1));
-<a name="l00192"></a>00192 <span class="keywordflow">if</span> (d &gt; 1) {
-<a name="l00193"></a>00193 d1 *= d;
-<a name="l00194"></a>00194 d2 *= d;
-<a name="l00195"></a>00195
-<a name="l00196"></a>00196 <span class="comment">// Gotta reset this</span>
-<a name="l00197"></a>00197 byDigits = d2._get_data()-&gt;digits;
-<a name="l00198"></a>00198 }
-<a name="l00199"></a>00199 assert(d2._get_digit(d2._get_length()-1) &gt;= <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a> / 2);
-<a name="l00200"></a>00200
-<a name="l00201"></a>00201 integer quotient, r(d1);
-<a name="l00202"></a>00202 data_t *qdata=quotient._get_data();
-<a name="l00203"></a>00203
-<a name="l00204"></a>00204 <span class="keywordtype">size_t</span> n=d2._get_length(), m=d1._get_length() - n;
-<a name="l00205"></a>00205 <span class="keywordtype">size_t</span> i=m+n, j=m;
-<a name="l00206"></a>00206 qdata-&gt;alloc(j+1);
-<a name="l00207"></a>00207
-<a name="l00208"></a>00208 r._make_unique();
-<a name="l00209"></a>00209 <span class="keywordflow">do</span> {
-<a name="l00210"></a>00210 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> ri=(<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(r._get_digit(i, <span class="keyword">true</span>))
-<a name="l00211"></a>00211 &lt;&lt; <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>) + r._get_digit(i-1, <span class="keyword">true</span>);
-<a name="l00212"></a>00212 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> q=(std::min&lt;doubledigit_t&gt;)(ri / byDigits[n-1], <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>);
-<a name="l00213"></a>00213
-<a name="l00214"></a>00214 <span class="keywordflow">while</span> (1) {
-<a name="l00215"></a>00215 <span class="comment">// We need three digits here, a doubledigit_t won&apos;t suffice.</span>
-<a name="l00216"></a>00216 <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> r2a=ri - (q * byDigits[n-1]);
-<a name="l00217"></a>00217 integer r2=(integer(r2a) &lt;&lt; <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>) + r._get_digit(i-2);
-<a name="l00218"></a>00218 <span class="keywordflow">if</span> (byDigits[n-2] * q &lt;= r2) <span class="keywordflow">break</span>;
-<a name="l00219"></a>00219 --q;
-<a name="l00220"></a>00220 }
-<a name="l00221"></a>00221
-<a name="l00222"></a>00222 integer bq=d2*q;
-<a name="l00223"></a>00223 <span class="keywordflow">if</span> (r &lt; bq) { --q; bq -= d2; }
-<a name="l00224"></a>00224
-<a name="l00225"></a>00225 integer rtemp((r &gt;&gt; (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * (i-n))) - bq);
-<a name="l00226"></a>00226 data_t *rdata=r._get_data();
-<a name="l00227"></a>00227
-<a name="l00228"></a>00228 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *rdigits=rdata-&gt;digits;
-<a name="l00229"></a>00229
-<a name="l00230"></a>00230 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> x=0; x&lt;=n &amp;&amp; i-n+x &lt; rdata-&gt;mLength; ++x)
-<a name="l00231"></a>00231 rdigits[i-n+x]=rtemp._get_digit(x, <span class="keyword">true</span>);
-<a name="l00232"></a>00232 rdata-&gt;skipLeadingZeros();
-<a name="l00233"></a>00233
-<a name="l00234"></a>00234 qdata-&gt;digits[j--]=<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(q);
-<a name="l00235"></a>00235 } <span class="keywordflow">while</span> (--i &gt;= n);
-<a name="l00236"></a>00236
-<a name="l00237"></a>00237 qdata-&gt;skipLeadingZeros();
-<a name="l00238"></a>00238
-<a name="l00239"></a>00239 <span class="keywordflow">if</span> (d &gt; 1) {
-<a name="l00240"></a>00240 <span class="comment">// Denormalization step. This requires a division by a single digit_t.</span>
-<a name="l00241"></a>00241 integer remainder=divideBySingleDigit(r, d).first;
-<a name="l00242"></a>00242 <span class="keywordflow">return</span> std::make_pair(quotient, remainder);
-<a name="l00243"></a>00243 } <span class="keywordflow">else</span> {
-<a name="l00244"></a>00244 <span class="keywordflow">return</span> std::make_pair(quotient, r);
-<a name="l00245"></a>00245 }
-<a name="l00246"></a>00246 }
-<a name="l00247"></a>00247
-<a name="l00248"></a>00248 } <span class="comment">// namespace</span>
-<a name="l00249"></a>00249
-<a name="l00258"></a>00258 integer <a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44" title="Calculate how many dividends would fit into divisor.">divide</a>(<span class="keyword">const</span> integer&amp; dividend, <span class="keyword">const</span> integer&amp; divisor) {
-<a name="l00259"></a>00259 <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d" title="Calculate how many dividends would fit into divisor, with the remainder.">divide_r</a>(dividend, divisor).first;
-<a name="l00260"></a>00260 }
-<a name="l00261"></a>00261
-<a name="l00276"></a>00276 std::pair&lt;integer, integer&gt; <a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d" title="Calculate how many dividends would fit into divisor, with the remainder.">divide_r</a>(<span class="keyword">const</span> integer&amp; d1, <span class="keyword">const</span>
-<a name="l00277"></a>00277 integer&amp; d2)
-<a name="l00278"></a>00278 {
-<a name="l00279"></a>00279 <span class="keywordtype">int</span> sign1=d1.sign(), sign2=d2.sign();
-<a name="l00280"></a>00280 <span class="keywordflow">if</span> (sign2==0) {
-<a name="l00281"></a>00281 <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> divide_by_zero();
-<a name="l00282"></a>00282 <span class="keywordflow">else</span> <span class="keywordflow">return</span> std::make_pair(integer(not_a_number()), integer(not_a_number()));
-<a name="l00283"></a>00283 }
-<a name="l00284"></a>00284
-<a name="l00285"></a>00285 <span class="keywordtype">int</span> comp=<a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06" title="Compare two integer objects.">compare</a>(d1, d2, <span class="keyword">true</span>);
-<a name="l00286"></a>00286 <span class="keywordflow">if</span> (comp&lt;0) {
-<a name="l00287"></a>00287 <span class="keywordflow">return</span> std::make_pair(<a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>(), d1);
-<a name="l00288"></a>00288 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (comp==0) {
-<a name="l00289"></a>00289 <span class="keywordflow">return</span> std::make_pair(sign1 != sign2 ? <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>() : integer(-1),
-<a name="l00290"></a>00290 <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>());
-<a name="l00291"></a>00291 }
-<a name="l00292"></a>00292
-<a name="l00293"></a>00293 <span class="keywordflow">if</span> (sign1 &lt; 0 &amp;&amp; sign2 &lt; 0) {
-<a name="l00294"></a>00294 std::pair&lt;integer, integer&gt; a=subDivide(-d1, -d2);
-<a name="l00295"></a>00295 a.second._set_negative(<span class="keyword">true</span>);
-<a name="l00296"></a>00296 <span class="keywordflow">return</span> a;
-<a name="l00297"></a>00297 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1 &lt; 0) {
-<a name="l00298"></a>00298 std::pair&lt;integer, integer&gt; a=subDivide(-d1, d2);
-<a name="l00299"></a>00299 a.first._set_negative(<span class="keyword">true</span>);
-<a name="l00300"></a>00300 a.second._set_negative(<span class="keyword">true</span>);
-<a name="l00301"></a>00301 <span class="keywordflow">return</span> a;
-<a name="l00302"></a>00302 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2 &lt; 0) {
-<a name="l00303"></a>00303 std::pair&lt;integer, integer&gt; a=subDivide(d1, -d2);
-<a name="l00304"></a>00304 a.first._set_negative(<span class="keyword">true</span>);
-<a name="l00305"></a>00305 <span class="keywordflow">return</span> a;
-<a name="l00306"></a>00306 };
-<a name="l00307"></a>00307
-<a name="l00308"></a>00308 <span class="keywordflow">if</span> (d2._get_data()-&gt;mLength == 1) {
-<a name="l00309"></a>00309 <span class="keywordflow">return</span> divideBySingleDigit(d1, d2._get_data()-&gt;digits[0]);
-<a name="l00310"></a>00310 } <span class="keywordflow">else</span> {
-<a name="l00311"></a>00311 <span class="keywordflow">return</span> subDivide(d1, d2);
-<a name="l00312"></a>00312 }
-<a name="l00313"></a>00313 }
-<a name="l00314"></a>00314
-<a name="l00315"></a>00315 } <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">using namespace </span>detail;
+<a name="l00026"></a>00026
+<a name="l00033"></a>00033 integer <a class="code" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672" title="Returns the absolute value of an integer.">abs</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00034"></a>00034 <span class="keywordflow">return</span> (n &lt; 0 ? -n : n);
+<a name="l00035"></a>00035 }
+<a name="l00036"></a>00036
+<a name="l00043"></a>00043 integer <a class="code" href="namespaceboost_1_1xint.html#a84190f7b286de191e8026e440f104731" title="Return the additive inverse of an integer.">negate</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00044"></a>00044 n.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00045"></a>00045
+<a name="l00046"></a>00046 integer nn(n);
+<a name="l00047"></a>00047 nn._make_unique();
+<a name="l00048"></a>00048 nn._get_data()-&gt;negate();
+<a name="l00049"></a>00049 <span class="keywordflow">return</span> nn;
+<a name="l00050"></a>00050 }
+<a name="l00051"></a>00051
+<a name="l00058"></a>00058 integer <a class="code" href="namespaceboost_1_1xint.html#a5f82fa6b23e9af01292440248b89210d" title="Calculate the sum of two integers.">add</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) {
+<a name="l00059"></a>00059 <span class="keywordtype">int</span> sign1=n1.<a class="code" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12" title="Tests the sign of *this.">sign</a>(), sign2=n2.sign();
+<a name="l00060"></a>00060 <span class="keywordflow">if</span> (sign1 != sign2) {
+<a name="l00061"></a>00061 <span class="keywordflow">if</span> (sign1==0) <span class="keywordflow">return</span> n2;
+<a name="l00062"></a>00062 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2==0) <span class="keywordflow">return</span> n1;
+<a name="l00063"></a>00063 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a86eb0099596fe66bd46be244323f44e5" title="Calculate the difference between two integers.">subtract</a>(n1, -n2);
+<a name="l00064"></a>00064 } <span class="keywordflow">else</span> {
+<a name="l00065"></a>00065 <span class="keyword">const</span> data_t *n1data=n1._get_data(), *n2data=n2._get_data();
+<a name="l00066"></a>00066 <span class="keywordflow">if</span> (n1data-&gt;mLength &lt; n2data-&gt;mLength) std::swap(n1data, n2data);
+<a name="l00067"></a>00067
+<a name="l00068"></a>00068 integer r;
+<a name="l00069"></a>00069 data_t *rdata=r._get_data();
+<a name="l00070"></a>00070 rdata-&gt;copy(n1data, 1);
+<a name="l00071"></a>00071 rdata-&gt;add(*n2data);
+<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
+<a name="l00082"></a>00082 integer <a class="code" href="namespaceboost_1_1xint.html#a86eb0099596fe66bd46be244323f44e5" title="Calculate the difference between two integers.">subtract</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) {
+<a name="l00083"></a>00083 <span class="keywordtype">int</span> sign1=n1.<a class="code" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12" title="Tests the sign of *this.">sign</a>(), sign2=n2.sign();
+<a name="l00084"></a>00084 <span class="keywordflow">if</span> (sign1 != sign2) {
+<a name="l00085"></a>00085 <span class="keywordflow">if</span> (sign1 == 0) <span class="keywordflow">return</span> -n2;
+<a name="l00086"></a>00086 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2 == 0) <span class="keywordflow">return</span> n1;
+<a name="l00087"></a>00087 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a5f82fa6b23e9af01292440248b89210d" title="Calculate the sum of two integers.">add</a>(n1, -n2);
+<a name="l00088"></a>00088 } <span class="keywordflow">else</span> {
+<a name="l00089"></a>00089 <span class="keywordtype">bool</span> invert=(sign1 == (n1 &lt; n2 ? 1 : -1));
+<a name="l00090"></a>00090 <span class="keyword">const</span> data_t *n1data=n1._get_data(), *n2data=n2._get_data();
+<a name="l00091"></a>00091 <span class="keywordflow">if</span> (invert) std::swap(n1data, n2data);
+<a name="l00092"></a>00092
+<a name="l00093"></a>00093 integer r;
+<a name="l00094"></a>00094 data_t *rdata=r._get_data();
+<a name="l00095"></a>00095 rdata-&gt;copy(n1data);
+<a name="l00096"></a>00096 rdata-&gt;subtract(*n2data);
+<a name="l00097"></a>00097 <span class="keywordflow">return</span> (invert ? -r : r);
+<a name="l00098"></a>00098 }
+<a name="l00099"></a>00099 }
+<a name="l00100"></a>00100
+<a name="l00111"></a>00111 integer <a class="code" href="namespaceboost_1_1xint.html#a9e0d6ad947fa3e979ed6e26d7e81ab7f" title="Calculate the product of two integers.">multiply</a>(<span class="keyword">const</span> integer&amp; n, <span class="keyword">const</span> integer&amp; by) {
+<a name="l00112"></a>00112 <span class="keywordtype">int</span> nsign=n.<a class="code" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12" title="Tests the sign of *this.">sign</a>(), bysign=by.sign();
+<a name="l00113"></a>00113 <span class="keywordflow">if</span> (nsign==0 || bysign==0) <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>();
+<a name="l00114"></a>00114
+<a name="l00115"></a>00115 <span class="keyword">const</span> data_t *ndata=n._get_data(), *bydata=by._get_data();
+<a name="l00116"></a>00116 <span class="keywordflow">if</span> (ndata == bydata) <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#afbba1eeb86e4e7610a75afbb89d594e3" title="Calculate the value of n2.">sqr</a>(n);
+<a name="l00117"></a>00117
+<a name="l00118"></a>00118 <span class="comment">// In multiplication, we know that the answer will be less than or equal to</span>
+<a name="l00119"></a>00119 <span class="comment">// the sum of the lengths of the operands.</span>
+<a name="l00120"></a>00120 integer answer;
+<a name="l00121"></a>00121 data_t *answerdata=answer._get_data();
+<a name="l00122"></a>00122 answerdata-&gt;alloc(ndata-&gt;mLength + bydata-&gt;mLength);
+<a name="l00123"></a>00123
+<a name="l00124"></a>00124 <span class="comment">// Now multiply the digits, starting at the least-significant digit.</span>
+<a name="l00125"></a>00125 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *d1 = ndata-&gt;digits, *d1e = d1 + ndata-&gt;mLength;
+<a name="l00126"></a>00126 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *d2e = bydata-&gt;digits + bydata-&gt;mLength;
+<a name="l00127"></a>00127 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> digit1=0; d1&lt;d1e; ++digit1, ++d1) {
+<a name="l00128"></a>00128 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *d2=bydata-&gt;digits;
+<a name="l00129"></a>00129 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> digit2=0; d2&lt;d2e; ++digit2, ++d2) {
+<a name="l00130"></a>00130 <span class="comment">// First multiply the two digits</span>
+<a name="l00131"></a>00131 <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>(*d1) * *d2;
+<a name="l00132"></a>00132
+<a name="l00133"></a>00133 <span class="comment">// Now add the result to the answer.</span>
+<a name="l00134"></a>00134 <span class="keywordtype">int</span> carry=0;
+<a name="l00135"></a>00135 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *a = answerdata-&gt;digits + digit1 + digit2;
+<a name="l00136"></a>00136 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> addt=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(*a) + (t &amp; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">digit_mask</a>);
+<a name="l00137"></a>00137 <span class="keywordflow">if</span> (addt &gt;= <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>) carry=1;
+<a name="l00138"></a>00138 *a++=<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>(addt);
+<a name="l00139"></a>00139
+<a name="l00140"></a>00140 addt=*a + ((t &gt;&gt; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>) &amp; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">digit_mask</a>) + carry;
+<a name="l00141"></a>00141 <span class="keywordflow">if</span> (addt &gt;= <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>) carry=1; <span class="keywordflow">else</span> carry=0;
+<a name="l00142"></a>00142 *a++=<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>(addt);
+<a name="l00143"></a>00143
+<a name="l00144"></a>00144 <span class="keywordflow">while</span> (carry) {
+<a name="l00145"></a>00145 addt=*a+1;
+<a name="l00146"></a>00146 *a++ = <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>(addt);
+<a name="l00147"></a>00147 <span class="keywordflow">if</span> (addt &lt; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>) <span class="keywordflow">break</span>;
+<a name="l00148"></a>00148 }
+<a name="l00149"></a>00149 }
+<a name="l00150"></a>00150 }
+<a name="l00151"></a>00151
+<a name="l00152"></a>00152 answer._set_negative(nsign != bysign);
+<a name="l00153"></a>00153 answer._get_data()-&gt;skipLeadingZeros();
+<a name="l00154"></a>00154 <span class="keywordflow">return</span> answer;
+<a name="l00155"></a>00155 }
+<a name="l00156"></a>00156
+<a name="l00157"></a>00157 <span class="keyword">namespace </span>{
+<a name="l00158"></a>00158
+<a name="l00159"></a>00159 std::pair&lt;integer, integer&gt; divideBySingleDigit(<span class="keyword">const</span> integer&amp; d1, <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> d2) {
+<a name="l00160"></a>00160 <span class="keyword">const</span> data_t *d1data=d1._get_data();
+<a name="l00161"></a>00161
+<a name="l00162"></a>00162 integer quotient, remainder;
+<a name="l00163"></a>00163 data_t *qdata=quotient._get_data(), *rdata=remainder._get_data();
+<a name="l00164"></a>00164 qdata-&gt;alloc(d1data-&gt;mLength);
+<a name="l00165"></a>00165 rdata-&gt;alloc(1);
+<a name="l00166"></a>00166
+<a name="l00167"></a>00167 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> a=0;
+<a name="l00168"></a>00168 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> lomask(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">digit_mask</a>);
+<a name="l00169"></a>00169 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> himask(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">digit_mask</a>) &lt;&lt; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>);
+<a name="l00170"></a>00170
+<a name="l00171"></a>00171 <span class="keywordtype">int</span> m = int(d1data-&gt;mLength) - 1;
+<a name="l00172"></a>00172 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *d1p=d1data-&gt;digits+m;
+<a name="l00173"></a>00173 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *qp=qdata-&gt;digits+m;
+<a name="l00174"></a>00174 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = m; i &gt;= 0; --i, --d1p, --qp) {
+<a name="l00175"></a>00175 a = (a &amp; ~lomask) | *d1p;
+<a name="l00176"></a>00176 *qp = <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 / d2);
+<a name="l00177"></a>00177 a = (a &amp; ~himask) | ((a % d2) &lt;&lt; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>);
+<a name="l00178"></a>00178 }
+<a name="l00179"></a>00179 rdata-&gt;digits[0] = <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 &amp; himask) &gt;&gt;
+<a name="l00180"></a>00180 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>);
+<a name="l00181"></a>00181
+<a name="l00182"></a>00182 qdata-&gt;skipLeadingZeros();
+<a name="l00183"></a>00183 rdata-&gt;skipLeadingZeros();
+<a name="l00184"></a>00184 <span class="keywordflow">return</span> std::make_pair(quotient, remainder);
+<a name="l00185"></a>00185 }
+<a name="l00186"></a>00186
+<a name="l00187"></a>00187 std::pair&lt;integer, integer&gt; subDivide(integer d1, integer d2) {
+<a name="l00188"></a>00188 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *byDigits = d2._get_data()-&gt;digits;
+<a name="l00189"></a>00189
+<a name="l00190"></a>00190 <span class="comment">// The normalization step</span>
+<a name="l00191"></a>00191 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> 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> /
+<a name="l00192"></a>00192 (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(byDigits[d2._get_length()-1])+1));
+<a name="l00193"></a>00193 <span class="keywordflow">if</span> (d &gt; 1) {
+<a name="l00194"></a>00194 d1 *= d;
+<a name="l00195"></a>00195 d2 *= d;
+<a name="l00196"></a>00196
+<a name="l00197"></a>00197 <span class="comment">// Gotta reset this</span>
+<a name="l00198"></a>00198 byDigits = d2._get_data()-&gt;digits;
+<a name="l00199"></a>00199 }
+<a name="l00200"></a>00200 assert(d2._get_digit(d2._get_length()-1) &gt;= <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a> / 2);
+<a name="l00201"></a>00201
+<a name="l00202"></a>00202 integer quotient, r(d1);
+<a name="l00203"></a>00203 data_t *qdata=quotient._get_data();
+<a name="l00204"></a>00204
+<a name="l00205"></a>00205 <span class="keywordtype">size_t</span> n=d2._get_length(), m=d1._get_length() - n;
+<a name="l00206"></a>00206 <span class="keywordtype">size_t</span> i=m+n, j=m;
+<a name="l00207"></a>00207 qdata-&gt;alloc(j+1);
+<a name="l00208"></a>00208
+<a name="l00209"></a>00209 r._make_unique();
+<a name="l00210"></a>00210 <span class="keywordflow">do</span> {
+<a name="l00211"></a>00211 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> ri=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(r._get_digit(i, <span class="keyword">true</span>))
+<a name="l00212"></a>00212 &lt;&lt; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>) + r._get_digit(i-1, <span class="keyword">true</span>);
+<a name="l00213"></a>00213 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> q=(std::min&lt;doubledigit_t&gt;)(ri / byDigits[n-1], <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">digit_mask</a>);
+<a name="l00214"></a>00214
+<a name="l00215"></a>00215 <span class="keywordflow">while</span> (1) {
+<a name="l00216"></a>00216 <span class="comment">// We need three digits here, a doubledigit_t won&apos;t suffice.</span>
+<a name="l00217"></a>00217 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> r2a=ri - (q * byDigits[n-1]);
+<a name="l00218"></a>00218 integer r2=(integer(r2a) &lt;&lt; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>) + r._get_digit(i-2);
+<a name="l00219"></a>00219 <span class="keywordflow">if</span> (byDigits[n-2] * q &lt;= r2) <span class="keywordflow">break</span>;
+<a name="l00220"></a>00220 --q;
+<a name="l00221"></a>00221 }
+<a name="l00222"></a>00222
+<a name="l00223"></a>00223 integer bq=d2*q;
+<a name="l00224"></a>00224 <span class="keywordflow">if</span> (r &lt; bq) { --q; bq -= d2; }
+<a name="l00225"></a>00225
+<a name="l00226"></a>00226 integer rtemp((r &gt;&gt; (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> * (i-n))) - bq);
+<a name="l00227"></a>00227 data_t *rdata=r._get_data();
+<a name="l00228"></a>00228
+<a name="l00229"></a>00229 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *rdigits=rdata-&gt;digits;
+<a name="l00230"></a>00230
+<a name="l00231"></a>00231 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> x=0; x&lt;=n &amp;&amp; i-n+x &lt; rdata-&gt;mLength; ++x)
+<a name="l00232"></a>00232 rdigits[i-n+x]=rtemp._get_digit(x, <span class="keyword">true</span>);
+<a name="l00233"></a>00233 rdata-&gt;skipLeadingZeros();
+<a name="l00234"></a>00234
+<a name="l00235"></a>00235 qdata-&gt;digits[j--]=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(q);
+<a name="l00236"></a>00236 } <span class="keywordflow">while</span> (--i &gt;= n);
+<a name="l00237"></a>00237
+<a name="l00238"></a>00238 qdata-&gt;skipLeadingZeros();
+<a name="l00239"></a>00239
+<a name="l00240"></a>00240 <span class="keywordflow">if</span> (d &gt; 1) {
+<a name="l00241"></a>00241 <span class="comment">// Denormalization step. This requires a division by a single digit_t.</span>
+<a name="l00242"></a>00242 integer remainder=divideBySingleDigit(r, d).first;
+<a name="l00243"></a>00243 <span class="keywordflow">return</span> std::make_pair(quotient, remainder);
+<a name="l00244"></a>00244 } <span class="keywordflow">else</span> {
+<a name="l00245"></a>00245 <span class="keywordflow">return</span> std::make_pair(quotient, r);
+<a name="l00246"></a>00246 }
+<a name="l00247"></a>00247 }
+<a name="l00248"></a>00248
+<a name="l00249"></a>00249 } <span class="comment">// namespace</span>
+<a name="l00250"></a>00250
+<a name="l00259"></a>00259 integer <a class="code" href="namespaceboost_1_1xint.html#a4892543bb8ccfa8acb188a63a3d4723b" title="Calculate how many dividends would fit into divisor.">divide</a>(<span class="keyword">const</span> integer&amp; dividend, <span class="keyword">const</span> integer&amp; divisor) {
+<a name="l00260"></a>00260 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a0fff3b235a18c0b3243a1ccc01a68f23" title="Calculate how many dividends would fit into divisor, with the remainder.">divide_r</a>(dividend, divisor).first;
+<a name="l00261"></a>00261 }
+<a name="l00262"></a>00262
+<a name="l00277"></a>00277 std::pair&lt;integer, integer&gt; <a class="code" href="namespaceboost_1_1xint.html#a0fff3b235a18c0b3243a1ccc01a68f23" title="Calculate how many dividends would fit into divisor, with the remainder.">divide_r</a>(<span class="keyword">const</span> integer&amp; d1, <span class="keyword">const</span>
+<a name="l00278"></a>00278 integer&amp; d2)
+<a name="l00279"></a>00279 {
+<a name="l00280"></a>00280 <span class="keywordtype">int</span> sign1=d1.sign(), sign2=d2.sign();
+<a name="l00281"></a>00281 <span class="keywordflow">if</span> (sign2==0) {
+<a name="l00282"></a>00282 <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> divide_by_zero();
+<a name="l00283"></a>00283 <span class="keywordflow">else</span> <span class="keywordflow">return</span> std::make_pair(integer(not_a_number()), integer(not_a_number()));
+<a name="l00284"></a>00284 }
+<a name="l00285"></a>00285
+<a name="l00286"></a>00286 <span class="keywordtype">int</span> comp=<a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">compare</a>(d1, d2, <span class="keyword">true</span>);
+<a name="l00287"></a>00287 <span class="keywordflow">if</span> (comp&lt;0) {
+<a name="l00288"></a>00288 <span class="keywordflow">return</span> std::make_pair(<a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>(), d1);
+<a name="l00289"></a>00289 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (comp==0) {
+<a name="l00290"></a>00290 <span class="keywordflow">return</span> std::make_pair(sign1 != sign2 ? <a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>() : integer(-1),
+<a name="l00291"></a>00291 <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>());
+<a name="l00292"></a>00292 }
+<a name="l00293"></a>00293
+<a name="l00294"></a>00294 <span class="keywordflow">if</span> (sign1 &lt; 0 &amp;&amp; sign2 &lt; 0) {
+<a name="l00295"></a>00295 std::pair&lt;integer, integer&gt; a=subDivide(-d1, -d2);
+<a name="l00296"></a>00296 a.second._set_negative(<span class="keyword">true</span>);
+<a name="l00297"></a>00297 <span class="keywordflow">return</span> a;
+<a name="l00298"></a>00298 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1 &lt; 0) {
+<a name="l00299"></a>00299 std::pair&lt;integer, integer&gt; a=subDivide(-d1, d2);
+<a name="l00300"></a>00300 a.first._set_negative(<span class="keyword">true</span>);
+<a name="l00301"></a>00301 a.second._set_negative(<span class="keyword">true</span>);
+<a name="l00302"></a>00302 <span class="keywordflow">return</span> a;
+<a name="l00303"></a>00303 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2 &lt; 0) {
+<a name="l00304"></a>00304 std::pair&lt;integer, integer&gt; a=subDivide(d1, -d2);
+<a name="l00305"></a>00305 a.first._set_negative(<span class="keyword">true</span>);
+<a name="l00306"></a>00306 <span class="keywordflow">return</span> a;
+<a name="l00307"></a>00307 };
+<a name="l00308"></a>00308
+<a name="l00309"></a>00309 <span class="keywordflow">if</span> (d2._get_data()-&gt;mLength == 1) {
+<a name="l00310"></a>00310 <span class="keywordflow">return</span> divideBySingleDigit(d1, d2._get_data()-&gt;digits[0]);
+<a name="l00311"></a>00311 } <span class="keywordflow">else</span> {
+<a name="l00312"></a>00312 <span class="keywordflow">return</span> subDivide(d1, d2);
+<a name="l00313"></a>00313 }
+<a name="l00314"></a>00314 }
+<a name="l00315"></a>00315
+<a name="l00316"></a>00316 } <span class="comment">// namespace xint</span>
+<a name="l00317"></a>00317 } <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/r__cow_8dox.html
==============================================================================
--- sandbox/xint/doc/r__cow_8dox.html (original)
+++ sandbox/xint/doc/r__cow_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/r_cow.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/r__default__necessary_8dox.html
==============================================================================
--- sandbox/xint/doc/r__default__necessary_8dox.html (original)
+++ sandbox/xint/doc/r__default__necessary_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/r_default_necessary.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/r__insecure__default_8dox.html
==============================================================================
--- sandbox/xint/doc/r__insecure__default_8dox.html (original)
+++ sandbox/xint/doc/r__insecure__default_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/r_insecure_default.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/r__interface_8dox.html
==============================================================================
--- sandbox/xint/doc/r__interface_8dox.html (original)
+++ sandbox/xint/doc/r__interface_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/r_interface.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/r__interface__design__only_8dox.html
==============================================================================
--- sandbox/xint/doc/r__interface__design__only_8dox.html (original)
+++ sandbox/xint/doc/r__interface__design__only_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/r_interface_design_only.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/r__nan_8dox.html
==============================================================================
--- sandbox/xint/doc/r__nan_8dox.html (original)
+++ sandbox/xint/doc/r__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/r_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/r__negzero_8dox.html
==============================================================================
--- sandbox/xint/doc/r__negzero_8dox.html (original)
+++ sandbox/xint/doc/r__negzero_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/r_negzero.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/r__random_8dox.html
==============================================================================
--- sandbox/xint/doc/r__random_8dox.html (original)
+++ sandbox/xint/doc/r__random_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/r_random.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/r__shared__ptr_8dox.html
==============================================================================
--- sandbox/xint/doc/r__shared__ptr_8dox.html (original)
+++ sandbox/xint/doc/r__shared__ptr_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/r_shared_ptr.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/r_cow.html
==============================================================================
--- sandbox/xint/doc/r_cow.html (original)
+++ sandbox/xint/doc/r_cow.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -27,7 +27,7 @@
 <h1><a class="anchor" id="r_cow">Why use copy-on-write? I've heard that causes problems with multi-threaded code. </a></h1><p>It's the best way I found to return large <code>integer</code> objects from functions efficiently. Some of these numbers can get huge, and move semantics aren't yet in the current standard. (Once they are, I'll consider removing the copy-on-write stuff.) It is also more CPU- and memory-efficient.</p>
 <p>It <em>does</em> cause problems when you try to use the library from multiple threads at the same time. To deal with that, the library can be compiled in a <a class="el" href="threadsafe.html">thread-safe mode</a>, which ensures that every <code>integer</code> gets its own unique storage, among other things. You still have to ensure that only one thread accesses a particular <code>integer</code> at a time. </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/r_default_necessary.html
==============================================================================
--- sandbox/xint/doc/r_default_necessary.html (original)
+++ sandbox/xint/doc/r_default_necessary.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -26,7 +26,7 @@
 
 <h1><a class="anchor" id="r_default_necessary">Okay, then why not make the developer provide one? </a></h1><p>Ease-of-use, and the fact that for many developers, there's little need for cryptographically-secure random numbers. This way, those that need them can take a few simple steps to get them, and those that don't can just use the library as-is. </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/r_insecure_default.html
==============================================================================
--- sandbox/xint/doc/r_insecure_default.html (original)
+++ sandbox/xint/doc/r_insecure_default.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -24,9 +24,9 @@
 <div class="contents">
 
 
-<h1><a class="anchor" id="r_insecure_default">But why default to an insecure random number generator? Why not default to the secure one? </a></h1><p>Because the secure one isn't available on all systems. If I relied on <code>random_device</code> as a default, the library wouldn't compile under those systems. If I used <code><a class="el" href="classxint_1_1strong__random__generator.html" title="A convenience class for cryptographically-secure random numbers.">xint::strong_random_generator</a></code>, it would compile, but would always fail on them. </p>
+<h1><a class="anchor" id="r_insecure_default">But why default to an insecure random number generator? Why not default to the secure one? </a></h1><p>Because the secure one isn't available on all systems. If I relied on <code>random_device</code> as a default, the library wouldn't compile under those systems. If I used <code>xint::strong_random_generator</code>, it would compile, but would always fail on 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/r_interface.html
==============================================================================
--- sandbox/xint/doc/r_interface.html (original)
+++ sandbox/xint/doc/r_interface.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <dd>
 n1744: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1744.pdf </dd></dl>
 </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/r_interface_design_only.html
==============================================================================
--- sandbox/xint/doc/r_interface_design_only.html (original)
+++ sandbox/xint/doc/r_interface_design_only.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -31,7 +31,7 @@
 <li>It does not, at present, implement a multiplication scheme with better performance than the "basecase" mentioned in section 3.4 of n1692, primarily because I haven't had the time to research all of them yet. I suspect that most people using the library will usually be using numbers below the threshold where the more exotic algorithms are faster, but I plan to add at least one of them in the future, maybe several. </li>
 </ul>
 </div>
-<hr 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/r_nan.html
==============================================================================
--- sandbox/xint/doc/r_nan.html (original)
+++ sandbox/xint/doc/r_nan.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -26,7 +26,7 @@
 
 <h1><a class="anchor" id="r_nan">Why have a Not-a-Number value? </a></h1><p>Because it's the cleanest way I could find to return answers that don't represent a valid <code>integer</code>, which is necessary for the exception-blocking mechanism. </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/r_negzero.html
==============================================================================
--- sandbox/xint/doc/r_negzero.html (original)
+++ sandbox/xint/doc/r_negzero.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -28,7 +28,7 @@
 <p>The mathematical concept of zero has no sign. It's neither positive nor negative (or if you prefer, it's both). The concept of a signed zero is used in floating-point numbers to represent a value that's so small that it can't be distinguished from zero, but which may not be an actual zero. Such a non-zero number does have a sign. But mathematically, a negative zero is simply zero.</p>
 <p>The concept of infinity (in either direction) comes up very rarely in an integer library. Since infinity is a concept, not a countable value, it's simply represented by the Not-a-Number value in the few places that it might be needed. </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/r_random.html
==============================================================================
--- sandbox/xint/doc/r_random.html (original)
+++ sandbox/xint/doc/r_random.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -24,9 +24,9 @@
 <div class="contents">
 
 
-<h1><a class="anchor" id="r_random">Why did you implement your own random number generator? You should use Boost.Random instead. </a></h1><p>Boost.Random provides <code>boost::random_device</code> to tap into the operating system's strong random number generator, but at the time of this writing, the official released version only defines it for Linux and BSD systems. The current maintainer, Steven Watanabe, says that he has just added Windows compatibility to it, so the <a class="el" href="classxint_1_1strong__random__generator.html" title="A convenience class for cryptographically-secure random numbers.">xint::strong_random_generator</a> class will likely be reduced to a typedef for <code>boost::random_device</code>, or a thin shell around it, in the near future. </p>
+<h1><a class="anchor" id="r_random">Why did you implement your own random number generator? You should use Boost.Random instead. </a></h1><p>Boost.Random provides <code>boost::random_device</code> to tap into the operating system's strong random number generator, but at the time of this writing, the official released version only defines it for Linux and BSD systems. The current maintainer, Steven Watanabe, says that he has just added Windows compatibility to it, so the xint::strong_random_generator class will likely be reduced to a typedef for <code>boost::random_device</code>, or a thin shell around it, in the near future. </p>
 </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/r_shared_ptr.html
==============================================================================
--- sandbox/xint/doc/r_shared_ptr.html (original)
+++ sandbox/xint/doc/r_shared_ptr.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -26,7 +26,7 @@
 
 <h1><a class="anchor" id="r_shared_ptr">Why are you using a roll-your-own system instead of <code>boost::shared_ptr</code> for the copy-on-write stuff? </a></h1><p>Because it's a lot faster. I tried <code>boost::shared_ptr</code>, and under Linux with GCC 4.4.1 on the same computer, running my test suite went from 1.6 seconds to 3.4 seconds. The home-grown shared pointer design may not be quite as easy to work with in an exception-safe manner, but that's completely internal to the <code>integer</code> class, so only developers working <em>on</em> the library, rather than <em>with</em> it, have to deal with that. I'll accept that trade-off. </p>
 </div>
-<hr 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/random.html
==============================================================================
--- sandbox/xint/doc/random.html (original)
+++ sandbox/xint/doc/random.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -24,11 +24,11 @@
 <div class="contents">
 
 
-<h1><a class="anchor" id="random">The XInt Random Number System </a></h1><p>The library includes a random number system to support the <a class="el" href="namespacexint.html#afc8ba5f62561b4d2b42e32dde1a10ef3" title="Generate a randomly-generated prime number of a particular bit-size.">xint::random_prime</a> function. The default random number generator is <em>not</em> cryptographically secure (see <a class="el" href="rationale.html">the rationale page</a> for details). However, the system can easily be configured to use a cryptographically-secure generator.</p>
-<p>The XInt library provides a convenience class, <a class="el" href="classxint_1_1strong__random__generator.html" title="A convenience class for cryptographically-secure random numbers.">xint::strong_random_generator</a>, for both Windows and UNIX-derived systems. It will throw an exception of type <a class="el" href="classxint_1_1no__strong__random.html" title="Exception class.">xint::no_strong_random</a> if you try to instantiate it on a system that does not have a strong random number generator.</p>
+<h1><a class="anchor" id="random">The XInt Random Number System </a></h1><p>The library includes a random number system to support the xint::random_prime function. The default random number generator is <em>not</em> cryptographically secure (see <a class="el" href="rationale.html">the rationale page</a> for details). However, the system can easily be configured to use a cryptographically-secure generator.</p>
+<p>The XInt library provides a convenience class, xint::strong_random_generator, for both Windows and UNIX-derived systems. It will throw an exception of type xint::no_strong_random if you try to instantiate it on a system that does not have a strong random number generator.</p>
 <p>See the code at the top of <a class="el" href="primes.html">the Prime Numbers page</a> for an example of how to use it. </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/random_8cpp.html
==============================================================================
--- sandbox/xint/doc/random_8cpp.html (original)
+++ sandbox/xint/doc/random_8cpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -40,32 +40,33 @@
 <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>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a5f8bba03a6f615a82ebcf94ad7cd4353">xint::detail::set_random_generator</a> (base_random_generator *obj)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Support function. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a1dfc1e90886c4897a4b112f491b89b62">xint::detail::get_random</a> ()</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_1_1detail.html#a17e1b4fcb11ff18fd2641dc43ee905b8">boost::xint::detail::set_random_generator</a> (base_random_generator *obj)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Support function. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a6486d7febde540f90921e9925d077534">boost::xint::detail::get_random</a> ()</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Random number functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpdd4713a71c208a173c1f2436d4e32ff7"></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#a5da6e81cb78913cc61c9f14857700b5e">xint::random_by_size</a> (size_t bits, bool high_bit_on, bool low_bit_on, bool can_be_negative)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates a random <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> with specific attributes. <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#ac8d879e19a6608b21184236e00806be5">boost::xint::random_by_size</a> (size_t bits, bool high_bit_on, bool low_bit_on, bool can_be_negative)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates a random <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> with specific attributes. <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Contains the definitions for the random number functions. </p>
 
 <p>Definition in file <a class="el" href="random_8cpp_source.html">random.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/random_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/random_8cpp_source.html (original)
+++ sandbox/xint/doc/random_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -56,180 +56,182 @@
 <a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor"> #include &lt;boost/thread.hpp&gt;</span>
 <a name="l00035"></a>00035 <span class="preprocessor">#endif</span>
 <a name="l00036"></a>00036 <span class="preprocessor"></span>
-<a name="l00037"></a>00037 <span class="keyword">namespace </span>xint {
-<a name="l00038"></a>00038
-<a name="l00039"></a>00039 <span class="keyword">using namespace </span>detail;
-<a name="l00040"></a>00040
-<a name="l00041"></a>00041 <span class="keyword">namespace </span>{
-<a name="l00042"></a>00042
-<a name="l00043"></a>00043 <span class="keyword">class </span>generator_t {
-<a name="l00044"></a>00044 <span class="keyword">public</span>:
-<a name="l00045"></a>00045 <span class="keyword">typedef</span> <a class="code" href="structxint_1_1detail_1_1base__random__generator.html#a0556d7f290cd236303b3f1031611cb3e">base_random_generator::result_type</a> result_type;
-<a name="l00046"></a>00046 <span class="keyword">typedef</span> boost::mt19937 default_random_t;
-<a name="l00047"></a>00047
-<a name="l00048"></a>00048 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span> generator_t() { mLock.lock(); init(); }
-<a name="l00050"></a>00050 ~generator_t() { mLock.unlock(); }
-<a name="l00051"></a>00051 <span class="preprocessor"> #else</span>
-<a name="l00052"></a>00052 <span class="preprocessor"></span> generator_t() { init(); }
-<a name="l00053"></a>00053 <span class="preprocessor"> #endif</span>
-<a name="l00054"></a>00054 <span class="preprocessor"></span>
-<a name="l00055"></a>00055 result_type operator()() { <span class="keywordflow">return</span> mGeneratorObj-&gt;operator()(); }
-<a name="l00056"></a>00056
-<a name="l00057"></a>00057 <span class="keyword">static</span> <span class="keywordtype">void</span> set_generator(base_random_generator *p) { mGeneratorObj.reset(p); }
-<a name="l00058"></a>00058
-<a name="l00059"></a>00059 <span class="keyword">private</span>:
-<a name="l00060"></a>00060 <span class="keywordtype">void</span> init() {
-<a name="l00061"></a>00061 <span class="keywordflow">if</span> (mGeneratorObj.get() == 0) {
-<a name="l00062"></a>00062 <span class="keyword">typedef</span> default_random_t T;
-<a name="l00063"></a>00063 T *genobj(<span class="keyword">new</span> T(boost::uint32_t(time(0)+clock())));
-<a name="l00064"></a>00064 random_generator&lt;T&gt; *obj=<span class="keyword">new</span> random_generator&lt;T&gt;(genobj);
-<a name="l00065"></a>00065 set_generator(obj);
-<a name="l00066"></a>00066 }
-<a name="l00067"></a>00067 }
-<a name="l00068"></a>00068
-<a name="l00069"></a>00069 <span class="keyword">static</span> std::auto_ptr&lt;base_random_generator&gt; mGeneratorObj;
-<a name="l00070"></a>00070
-<a name="l00071"></a>00071 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
-<a name="l00072"></a>00072 <span class="preprocessor"></span> <span class="keyword">static</span> boost::mutex mLock;
-<a name="l00073"></a>00073 <span class="preprocessor"> #endif</span>
-<a name="l00074"></a>00074 <span class="preprocessor"></span>};
-<a name="l00075"></a>00075
-<a name="l00076"></a>00076 std::auto_ptr&lt;base_random_generator&gt; generator_t::mGeneratorObj;
-<a name="l00077"></a>00077
-<a name="l00078"></a>00078 <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
-<a name="l00079"></a>00079 <span class="preprocessor"></span> boost::mutex generator_t::mLock;
-<a name="l00080"></a>00080 <span class="preprocessor">#endif</span>
-<a name="l00081"></a>00081 <span class="preprocessor"></span>
-<a name="l00082"></a>00082 } <span class="comment">// namespace</span>
-<a name="l00083"></a>00083
-<a name="l00084"></a>00084 <span class="keyword">namespace </span>detail {
-<a name="l00085"></a>00085
-<a name="l00086"></a>00086 <span class="keywordtype">void</span> <a class="code" href="namespacexint_1_1detail.html#a5f8bba03a6f615a82ebcf94ad7cd4353" title="Support function.">set_random_generator</a>(base_random_generator *obj) {
-<a name="l00087"></a>00087 generator_t::set_generator(obj);
-<a name="l00088"></a>00088 }
-<a name="l00089"></a>00089
-<a name="l00090"></a>00090 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="namespacexint_1_1detail.html#a1dfc1e90886c4897a4b112f491b89b62">get_random</a>() {
-<a name="l00091"></a>00091 generator_t gen;
-<a name="l00092"></a>00092 <span class="keywordflow">return</span> gen();
-<a name="l00093"></a>00093 }
-<a name="l00094"></a>00094
-<a name="l00095"></a>00095 } <span class="comment">// namespace detail</span>
-<a name="l00096"></a>00096
-<a name="l00098"></a>00098 <span class="comment">// The secure random generator</span>
-<a name="l00099"></a>00099
-<a name="l00101"></a>00101 <span class="preprocessor">#ifdef _WIN32</span>
-<a name="l00102"></a>00102 <span class="preprocessor"></span> <span class="keyword">struct </span>strong_random_generator::impl_t {
-<a name="l00103"></a>00103 <span class="keyword">typedef</span> BOOLEAN (WINAPI *RtlGenRandomFn)(PVOID, ULONG);
-<a name="l00104"></a>00104 <span class="keyword">typedef</span> DWORD <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">result_type</a>;
-<a name="l00105"></a>00105
-<a name="l00106"></a>00106 impl_t(): dll(0), fn(0) {
-<a name="l00107"></a>00107 <span class="comment">// This should work under WinXP, Vista, and Win7. No guarantees about</span>
-<a name="l00108"></a>00108 <span class="comment">// future compatibility, but I doubt that Microsoft will get rid of it</span>
-<a name="l00109"></a>00109 <span class="comment">// (it&apos;s too useful), and I doubt that they&apos;ll change it now that it&apos;s</span>
-<a name="l00110"></a>00110 <span class="comment">// well-known (it would break too many programs). We could also use the</span>
-<a name="l00111"></a>00111 <span class="comment">// rand_s function in more recent versions of Visual C++, but that</span>
-<a name="l00112"></a>00112 <span class="comment">// causes compatibility problems with older versions of Windows.</span>
-<a name="l00113"></a>00113 dll=LoadLibraryA(<span class="stringliteral">&quot;Advapi32.dll&quot;</span>);
-<a name="l00114"></a>00114 <span class="keywordflow">if</span> (dll != 0) fn=RtlGenRandomFn(GetProcAddress(dll, <span class="stringliteral">&quot;SystemFunction036&quot;</span>));
-<a name="l00115"></a>00115 <span class="keywordflow">if</span> (fn == 0) {
-<a name="l00116"></a>00116 destroy();
-<a name="l00117"></a>00117 <span class="keywordflow">throw</span> no_strong_random();
-<a name="l00118"></a>00118 }
-<a name="l00119"></a>00119 }
-<a name="l00120"></a>00120
-<a name="l00121"></a>00121 ~impl_t() { destroy(); }
-<a name="l00122"></a>00122
-<a name="l00123"></a>00123 <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">result_type</a> <a class="code" href="classxint_1_1strong__random__generator.html#a2bbb1944511585f66e5daec4737bd4e7">operator()</a>() {
-<a name="l00124"></a>00124 <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">result_type</a> r=0;
-<a name="l00125"></a>00125 <span class="keywordflow">if</span> (!fn(&amp;r, <span class="keyword">sizeof</span>(<a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">result_type</a>)))
-<a name="l00126"></a>00126 <span class="keywordflow">throw</span> no_strong_random(<span class="stringliteral">&quot;RtlGenRandom failed&quot;</span>);
-<a name="l00127"></a>00127 <span class="keywordflow">return</span> r;
-<a name="l00128"></a>00128 }
-<a name="l00129"></a>00129
-<a name="l00130"></a>00130 <span class="keywordtype">void</span> destroy() { <span class="keywordflow">if</span> (dll) FreeLibrary(dll); }
-<a name="l00131"></a>00131
-<a name="l00132"></a>00132 HMODULE dll;
-<a name="l00133"></a>00133 RtlGenRandomFn fn;
-<a name="l00134"></a>00134 };
-<a name="l00135"></a>00135
-<a name="l00136"></a>00136 <span class="keywordtype">double</span> <a class="code" href="classxint_1_1strong__random__generator.html#a57ff17a9c2b36775acfedd53f5a0b30e">strong_random_generator::entropy</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 32; }
-<a name="l00137"></a>00137 <span class="preprocessor">#else</span>
-<a name="l00138"></a>00138 <span class="preprocessor"></span> <span class="keyword">struct </span>strong_random_generator::impl_t {
-<a name="l00139"></a>00139 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">result_type</a>;
-<a name="l00140"></a>00140
-<a name="l00141"></a>00141 impl_t(): rng(<span class="stringliteral">&quot;/dev/urandom&quot;</span>, std::ios::binary) {
-<a name="l00142"></a>00142 <span class="comment">// This should be supported under most non-Windows systems. Note</span>
-<a name="l00143"></a>00143 <span class="comment">// that we&apos;re using /dev/urandom, not /dev/random -- /dev/random is</span>
-<a name="l00144"></a>00144 <span class="comment">// more secure, but it can be VERY slow.</span>
-<a name="l00145"></a>00145 <span class="keywordflow">if</span> (!rng) <span class="keywordflow">throw</span> no_strong_random();
-<a name="l00146"></a>00146 }
-<a name="l00147"></a>00147
-<a name="l00148"></a>00148 <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">result_type</a> <a class="code" href="classxint_1_1strong__random__generator.html#a2bbb1944511585f66e5daec4737bd4e7">operator()</a>() {
-<a name="l00149"></a>00149 <span class="keywordtype">int</span> r=rng.get();
-<a name="l00150"></a>00150 <span class="keywordflow">if</span> (r==EOF) <span class="keywordflow">throw</span> no_strong_random(<span class="stringliteral">&quot;/dev/urandom returned EOF&quot;</span>);
-<a name="l00151"></a>00151 <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">result_type</a><span class="keyword">&gt;</span>(r);
-<a name="l00152"></a>00152 }
-<a name="l00153"></a>00153
-<a name="l00154"></a>00154 std::ifstream rng;
-<a name="l00155"></a>00155 };
-<a name="l00156"></a>00156
-<a name="l00157"></a>00157 <span class="keywordtype">double</span> <a class="code" href="classxint_1_1strong__random__generator.html#a57ff17a9c2b36775acfedd53f5a0b30e">strong_random_generator::entropy</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 8; }
-<a name="l00158"></a>00158 <span class="preprocessor">#endif</span>
-<a name="l00160"></a>00160 <span class="preprocessor"></span>
-<a name="l00161"></a>00161 <span class="preprocessor"></span><span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1strong__random__generator.html#a1a808cca9189eb64f420e4745ca5122d">strong_random_generator::has_fixed_range</a> = <span class="keyword">true</span>;
-<a name="l00162"></a>00162 <span class="keyword">const</span> <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">strong_random_generator::result_type</a> <a class="code" href="classxint_1_1strong__random__generator.html#a4bea7dba7f086441548dfee576e54fce">strong_random_generator::min_value</a> =
-<a name="l00163"></a>00163 (std::numeric_limits&lt;impl_t::result_type&gt;::min)();
-<a name="l00164"></a>00164 <span class="keyword">const</span> <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">strong_random_generator::result_type</a> <a class="code" href="classxint_1_1strong__random__generator.html#aea47e4fbf8b0fe5914ade7ce2704a3c3">strong_random_generator::max_value</a> =
-<a name="l00165"></a>00165 (std::numeric_limits&lt;impl_t::result_type&gt;::max)();
-<a name="l00166"></a><a class="code" href="classxint_1_1strong__random__generator.html#a8841d21b6614967e0520f55c3093871a">00166</a> <a class="code" href="classxint_1_1strong__random__generator.html#a8841d21b6614967e0520f55c3093871a">strong_random_generator::strong_random_generator</a>(): impl(new impl_t) { }
-<a name="l00167"></a><a class="code" href="classxint_1_1strong__random__generator.html#ac75f659c2adb7c822d49fe534b2d76a4">00167</a> <a class="code" href="classxint_1_1strong__random__generator.html#ac75f659c2adb7c822d49fe534b2d76a4">strong_random_generator::~strong_random_generator</a>() { <span class="keyword">delete</span> impl; }
-<a name="l00168"></a><a class="code" href="classxint_1_1strong__random__generator.html#a2bbb1944511585f66e5daec4737bd4e7">00168</a> <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">strong_random_generator::result_type</a> <a class="code" href="classxint_1_1strong__random__generator.html#a2bbb1944511585f66e5daec4737bd4e7">strong_random_generator::operator()</a>() {
-<a name="l00169"></a>00169 <span class="keywordflow">return</span> (*impl)(); }
-<a name="l00170"></a>00170
-<a name="l00172"></a>00172 <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">strong_random_generator::result_type</a> <a class="code" href="classxint_1_1strong__random__generator.html#a5ec89070a7a7338c2b7318086efef701">strong_random_generator::min</a>
-<a name="l00173"></a>00173 BOOST_PREVENT_MACRO_SUBSTITUTION ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> min_value; }
-<a name="l00174"></a>00174 <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">strong_random_generator::result_type</a> <a class="code" href="classxint_1_1strong__random__generator.html#a1327ad0fe9d6f1f1c851456592b178db">strong_random_generator::max</a>
-<a name="l00175"></a>00175 BOOST_PREVENT_MACRO_SUBSTITUTION ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> max_value; }
-<a name="l00177"></a>00177
-<a name="l00179"></a>00179 <span class="comment">// Returns a positive (unless told otherwise) integer between zero and</span>
-<a name="l00180"></a>00180 <span class="comment">// (1&lt;&lt;bits)-1, inclusive</span>
-<a name="l00181"></a>00181
-<a name="l00202"></a>00202 integer <a class="code" href="namespacexint.html#a5da6e81cb78913cc61c9f14857700b5e" title="Generates a random integer with specific attributes.">random_by_size</a>(<span class="keywordtype">size_t</span> bits, <span class="keywordtype">bool</span> high_bit_on, <span class="keywordtype">bool</span> low_bit_on, <span class="keywordtype">bool</span>
-<a name="l00203"></a>00203 can_be_negative)
-<a name="l00204"></a>00204 {
-<a name="l00205"></a>00205 <span class="keywordflow">if</span> (bits&lt;=0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>();
-<a name="l00206"></a>00206
-<a name="l00207"></a>00207 generator_t randomGenerator;
-<a name="l00208"></a>00208 <span class="keyword">const</span> <span class="keywordtype">size_t</span> cBitsPerIteration=std::numeric_limits&lt;generator_t::result_type&gt;::digits;
-<a name="l00209"></a>00209
-<a name="l00210"></a>00210 <span class="comment">// Grab a set of random bits, of at least the specified size</span>
-<a name="l00211"></a>00211 <span class="keywordtype">size_t</span> iterations = (bits+cBitsPerIteration-1) / cBitsPerIteration;
-<a name="l00212"></a>00212 std::vector&lt;generator_t::result_type&gt; v;
-<a name="l00213"></a>00213 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i&lt;iterations; ++i) v.push_back(randomGenerator());
-<a name="l00214"></a>00214
-<a name="l00215"></a>00215 <span class="keyword">const</span> <span class="keywordtype">char</span> *vptr=(<span class="keyword">const</span> <span class="keywordtype">char</span> *)&amp;v[0], *vptr_end=vptr+(v.size() * <span class="keyword">sizeof</span>(generator_t::result_type));
-<a name="l00216"></a>00216 integer p=<a class="code" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a" title="Converts a binary representation of a number into an integer.">from_binary</a>(std::string(vptr, vptr_end));
-<a name="l00217"></a>00217
-<a name="l00218"></a>00218 <span class="comment">// Trim it to the proper length</span>
-<a name="l00219"></a>00219 <span class="keywordtype">size_t</span> index=(bits/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
-<a name="l00220"></a>00220 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> mask=(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(1) &lt;&lt; (bits % <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>))-1;
-<a name="l00221"></a>00221 <span class="keywordflow">if</span> (mask==0) { mask=<a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>; --index; }
-<a name="l00222"></a>00222 p._get_data()-&gt;digits[index] &amp;= mask;
-<a name="l00223"></a>00223 <span class="keywordflow">for</span> (<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *i=p._get_data()-&gt;digits+index+1,
-<a name="l00224"></a>00224 *ie=p._get_data()-&gt;digits+p._get_data()-&gt;mLength; i&lt;ie; ++i) *i=0;
-<a name="l00225"></a>00225 p._get_data()-&gt;skipLeadingZeros();
-<a name="l00226"></a>00226
-<a name="l00227"></a>00227 <span class="keywordflow">if</span> (high_bit_on) <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a" title="Sets a specific bit in an integer to one.">setbit</a>(p, bits-1);
-<a name="l00228"></a>00228 <span class="keywordflow">if</span> (low_bit_on) <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a" title="Sets a specific bit in an integer to one.">setbit</a>(p, 0);
-<a name="l00229"></a>00229 <span class="keywordflow">if</span> (can_be_negative) p._set_negative(randomGenerator() &amp; 0x01);
-<a name="l00230"></a>00230
-<a name="l00231"></a>00231 <span class="keywordflow">return</span> p;
-<a name="l00232"></a>00232 }
-<a name="l00233"></a>00233
-<a name="l00234"></a>00234 } <span class="comment">// namespace xint</span>
+<a name="l00037"></a>00037 <span class="keyword">namespace </span>boost {
+<a name="l00038"></a>00038 <span class="keyword">namespace </span>xint {
+<a name="l00039"></a>00039
+<a name="l00040"></a>00040 <span class="keyword">using namespace </span>detail;
+<a name="l00041"></a>00041
+<a name="l00042"></a>00042 <span class="keyword">namespace </span>{
+<a name="l00043"></a>00043
+<a name="l00044"></a>00044 <span class="keyword">class </span>generator_t {
+<a name="l00045"></a>00045 <span class="keyword">public</span>:
+<a name="l00046"></a>00046 <span class="keyword">typedef</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html#a9694aa7d11ac533581d530037f23fd0a">base_random_generator::result_type</a> result_type;
+<a name="l00047"></a>00047 <span class="keyword">typedef</span> boost::mt19937 default_random_t;
+<a name="l00048"></a>00048
+<a name="l00049"></a>00049 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span> generator_t() { mLock.lock(); init(); }
+<a name="l00051"></a>00051 ~generator_t() { mLock.unlock(); }
+<a name="l00052"></a>00052 <span class="preprocessor"> #else</span>
+<a name="l00053"></a>00053 <span class="preprocessor"></span> generator_t() { init(); }
+<a name="l00054"></a>00054 <span class="preprocessor"> #endif</span>
+<a name="l00055"></a>00055 <span class="preprocessor"></span>
+<a name="l00056"></a>00056 result_type operator()() { <span class="keywordflow">return</span> mGeneratorObj-&gt;operator()(); }
+<a name="l00057"></a>00057
+<a name="l00058"></a>00058 <span class="keyword">static</span> <span class="keywordtype">void</span> set_generator(base_random_generator *p) { mGeneratorObj.reset(p); }
+<a name="l00059"></a>00059
+<a name="l00060"></a>00060 <span class="keyword">private</span>:
+<a name="l00061"></a>00061 <span class="keywordtype">void</span> init() {
+<a name="l00062"></a>00062 <span class="keywordflow">if</span> (mGeneratorObj.get() == 0) {
+<a name="l00063"></a>00063 <span class="keyword">typedef</span> default_random_t T;
+<a name="l00064"></a>00064 T *genobj(<span class="keyword">new</span> T(boost::uint32_t(time(0)+clock())));
+<a name="l00065"></a>00065 random_generator&lt;T&gt; *obj=<span class="keyword">new</span> random_generator&lt;T&gt;(genobj);
+<a name="l00066"></a>00066 set_generator(obj);
+<a name="l00067"></a>00067 }
+<a name="l00068"></a>00068 }
+<a name="l00069"></a>00069
+<a name="l00070"></a>00070 <span class="keyword">static</span> std::auto_ptr&lt;base_random_generator&gt; mGeneratorObj;
+<a name="l00071"></a>00071
+<a name="l00072"></a>00072 <span class="preprocessor"> #ifdef XINT_THREADSAFE</span>
+<a name="l00073"></a>00073 <span class="preprocessor"></span> <span class="keyword">static</span> boost::mutex mLock;
+<a name="l00074"></a>00074 <span class="preprocessor"> #endif</span>
+<a name="l00075"></a>00075 <span class="preprocessor"></span>};
+<a name="l00076"></a>00076
+<a name="l00077"></a>00077 std::auto_ptr&lt;base_random_generator&gt; generator_t::mGeneratorObj;
+<a name="l00078"></a>00078
+<a name="l00079"></a>00079 <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
+<a name="l00080"></a>00080 <span class="preprocessor"></span> boost::mutex generator_t::mLock;
+<a name="l00081"></a>00081 <span class="preprocessor">#endif</span>
+<a name="l00082"></a>00082 <span class="preprocessor"></span>
+<a name="l00083"></a>00083 } <span class="comment">// namespace</span>
+<a name="l00084"></a>00084
+<a name="l00085"></a>00085 <span class="keyword">namespace </span>detail {
+<a name="l00086"></a>00086
+<a name="l00087"></a>00087 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a17e1b4fcb11ff18fd2641dc43ee905b8" title="Support function.">set_random_generator</a>(base_random_generator *obj) {
+<a name="l00088"></a>00088 generator_t::set_generator(obj);
+<a name="l00089"></a>00089 }
+<a name="l00090"></a>00090
+<a name="l00091"></a>00091 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a6486d7febde540f90921e9925d077534">get_random</a>() {
+<a name="l00092"></a>00092 generator_t gen;
+<a name="l00093"></a>00093 <span class="keywordflow">return</span> gen();
+<a name="l00094"></a>00094 }
+<a name="l00095"></a>00095
+<a name="l00096"></a>00096 } <span class="comment">// namespace detail</span>
+<a name="l00097"></a>00097
+<a name="l00099"></a>00099 <span class="comment">// The secure random generator</span>
+<a name="l00100"></a>00100
+<a name="l00102"></a>00102 <span class="preprocessor">#ifdef _WIN32</span>
+<a name="l00103"></a>00103 <span class="preprocessor"></span> <span class="keyword">struct </span>strong_random_generator::impl_t {
+<a name="l00104"></a>00104 <span class="keyword">typedef</span> BOOLEAN (WINAPI *RtlGenRandomFn)(PVOID, ULONG);
+<a name="l00105"></a>00105 <span class="keyword">typedef</span> DWORD <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">result_type</a>;
+<a name="l00106"></a>00106
+<a name="l00107"></a>00107 impl_t(): dll(0), fn(0) {
+<a name="l00108"></a>00108 <span class="comment">// This should work under WinXP, Vista, and Win7. No guarantees about</span>
+<a name="l00109"></a>00109 <span class="comment">// future compatibility, but I doubt that Microsoft will get rid of it</span>
+<a name="l00110"></a>00110 <span class="comment">// (it&apos;s too useful), and I doubt that they&apos;ll change it now that it&apos;s</span>
+<a name="l00111"></a>00111 <span class="comment">// well-known (it would break too many programs). We could also use the</span>
+<a name="l00112"></a>00112 <span class="comment">// rand_s function in more recent versions of Visual C++, but that</span>
+<a name="l00113"></a>00113 <span class="comment">// causes compatibility problems with older versions of Windows.</span>
+<a name="l00114"></a>00114 dll=LoadLibraryA(<span class="stringliteral">&quot;Advapi32.dll&quot;</span>);
+<a name="l00115"></a>00115 <span class="keywordflow">if</span> (dll != 0) fn=RtlGenRandomFn(GetProcAddress(dll, <span class="stringliteral">&quot;SystemFunction036&quot;</span>));
+<a name="l00116"></a>00116 <span class="keywordflow">if</span> (fn == 0) {
+<a name="l00117"></a>00117 destroy();
+<a name="l00118"></a>00118 <span class="keywordflow">throw</span> no_strong_random();
+<a name="l00119"></a>00119 }
+<a name="l00120"></a>00120 }
+<a name="l00121"></a>00121
+<a name="l00122"></a>00122 ~impl_t() { destroy(); }
+<a name="l00123"></a>00123
+<a name="l00124"></a>00124 <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">result_type</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#ae2afe16256095db48543b859530990b8">operator()</a>() {
+<a name="l00125"></a>00125 <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">result_type</a> r=0;
+<a name="l00126"></a>00126 <span class="keywordflow">if</span> (!fn(&amp;r, <span class="keyword">sizeof</span>(<a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">result_type</a>)))
+<a name="l00127"></a>00127 <span class="keywordflow">throw</span> no_strong_random(<span class="stringliteral">&quot;RtlGenRandom failed&quot;</span>);
+<a name="l00128"></a>00128 <span class="keywordflow">return</span> r;
+<a name="l00129"></a>00129 }
+<a name="l00130"></a>00130
+<a name="l00131"></a>00131 <span class="keywordtype">void</span> destroy() { <span class="keywordflow">if</span> (dll) FreeLibrary(dll); }
+<a name="l00132"></a>00132
+<a name="l00133"></a>00133 HMODULE dll;
+<a name="l00134"></a>00134 RtlGenRandomFn fn;
+<a name="l00135"></a>00135 };
+<a name="l00136"></a>00136
+<a name="l00137"></a>00137 <span class="keywordtype">double</span> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a1faed1bfa2b68731ecc2cb15f78e035b">strong_random_generator::entropy</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 32; }
+<a name="l00138"></a>00138 <span class="preprocessor">#else</span>
+<a name="l00139"></a>00139 <span class="preprocessor"></span> <span class="keyword">struct </span>strong_random_generator::impl_t {
+<a name="l00140"></a>00140 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">result_type</a>;
+<a name="l00141"></a>00141
+<a name="l00142"></a>00142 impl_t(): rng(<span class="stringliteral">&quot;/dev/urandom&quot;</span>, std::ios::binary) {
+<a name="l00143"></a>00143 <span class="comment">// This should be supported under most non-Windows systems. Note</span>
+<a name="l00144"></a>00144 <span class="comment">// that we&apos;re using /dev/urandom, not /dev/random -- /dev/random is</span>
+<a name="l00145"></a>00145 <span class="comment">// more secure, but it can be VERY slow.</span>
+<a name="l00146"></a>00146 <span class="keywordflow">if</span> (!rng) <span class="keywordflow">throw</span> no_strong_random();
+<a name="l00147"></a>00147 }
+<a name="l00148"></a>00148
+<a name="l00149"></a>00149 <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">result_type</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#ae2afe16256095db48543b859530990b8">operator()</a>() {
+<a name="l00150"></a>00150 <span class="keywordtype">int</span> r=rng.get();
+<a name="l00151"></a>00151 <span class="keywordflow">if</span> (r==EOF) <span class="keywordflow">throw</span> no_strong_random(<span class="stringliteral">&quot;/dev/urandom returned EOF&quot;</span>);
+<a name="l00152"></a>00152 <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">result_type</a><span class="keyword">&gt;</span>(r);
+<a name="l00153"></a>00153 }
+<a name="l00154"></a>00154
+<a name="l00155"></a>00155 std::ifstream rng;
+<a name="l00156"></a>00156 };
+<a name="l00157"></a>00157
+<a name="l00158"></a>00158 <span class="keywordtype">double</span> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a1faed1bfa2b68731ecc2cb15f78e035b">strong_random_generator::entropy</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 8; }
+<a name="l00159"></a>00159 <span class="preprocessor">#endif</span>
+<a name="l00161"></a>00161 <span class="preprocessor"></span>
+<a name="l00162"></a>00162 <span class="preprocessor"></span><span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a1fec38eaf8f94dbcb866e9ee495a1eef">strong_random_generator::has_fixed_range</a> = <span class="keyword">true</span>;
+<a name="l00163"></a>00163 <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">strong_random_generator::result_type</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a487dc7bc2b00f9e692957fc7f7b2da25">strong_random_generator::min_value</a> =
+<a name="l00164"></a>00164 (std::numeric_limits&lt;impl_t::result_type&gt;::min)();
+<a name="l00165"></a>00165 <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">strong_random_generator::result_type</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#ab1ae2657dfc2cbce1511d9991c21a68b">strong_random_generator::max_value</a> =
+<a name="l00166"></a>00166 (std::numeric_limits&lt;impl_t::result_type&gt;::max)();
+<a name="l00167"></a><a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a03606cc093b70870d2661aedccf12c26">00167</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a03606cc093b70870d2661aedccf12c26">strong_random_generator::strong_random_generator</a>(): impl(new impl_t) { }
+<a name="l00168"></a><a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a38abfddb5372dc090429ba1c4132ad9c">00168</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a38abfddb5372dc090429ba1c4132ad9c">strong_random_generator::~strong_random_generator</a>() { <span class="keyword">delete</span> impl; }
+<a name="l00169"></a><a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#ae2afe16256095db48543b859530990b8">00169</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">strong_random_generator::result_type</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#ae2afe16256095db48543b859530990b8">strong_random_generator::operator()</a>() {
+<a name="l00170"></a>00170 <span class="keywordflow">return</span> (*impl)(); }
+<a name="l00171"></a>00171
+<a name="l00173"></a>00173 <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">strong_random_generator::result_type</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a6a7fac4a372011d55494e3b5dc7f3471">strong_random_generator::min</a>
+<a name="l00174"></a>00174 BOOST_PREVENT_MACRO_SUBSTITUTION ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> min_value; }
+<a name="l00175"></a>00175 <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">strong_random_generator::result_type</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a4fa01769bdeb04ec7c55a7e8cb297922">strong_random_generator::max</a>
+<a name="l00176"></a>00176 BOOST_PREVENT_MACRO_SUBSTITUTION ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> max_value; }
+<a name="l00178"></a>00178
+<a name="l00180"></a>00180 <span class="comment">// Returns a positive (unless told otherwise) integer between zero and</span>
+<a name="l00181"></a>00181 <span class="comment">// (1&lt;&lt;bits)-1, inclusive</span>
+<a name="l00182"></a>00182
+<a name="l00203"></a>00203 integer <a class="code" href="namespaceboost_1_1xint.html#ac8d879e19a6608b21184236e00806be5" title="Generates a random integer with specific attributes.">random_by_size</a>(<span class="keywordtype">size_t</span> bits, <span class="keywordtype">bool</span> high_bit_on, <span class="keywordtype">bool</span> low_bit_on, <span class="keywordtype">bool</span>
+<a name="l00204"></a>00204 can_be_negative)
+<a name="l00205"></a>00205 {
+<a name="l00206"></a>00206 <span class="keywordflow">if</span> (bits&lt;=0) <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>();
+<a name="l00207"></a>00207
+<a name="l00208"></a>00208 generator_t randomGenerator;
+<a name="l00209"></a>00209 <span class="keyword">const</span> <span class="keywordtype">size_t</span> cBitsPerIteration=std::numeric_limits&lt;generator_t::result_type&gt;::digits;
+<a name="l00210"></a>00210
+<a name="l00211"></a>00211 <span class="comment">// Grab a set of random bits, of at least the specified size</span>
+<a name="l00212"></a>00212 <span class="keywordtype">size_t</span> iterations = (bits+cBitsPerIteration-1) / cBitsPerIteration;
+<a name="l00213"></a>00213 std::vector&lt;generator_t::result_type&gt; v;
+<a name="l00214"></a>00214 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i&lt;iterations; ++i) v.push_back(randomGenerator());
+<a name="l00215"></a>00215
+<a name="l00216"></a>00216 <span class="keyword">const</span> <span class="keywordtype">char</span> *vptr=(<span class="keyword">const</span> <span class="keywordtype">char</span> *)&amp;v[0], *vptr_end=vptr+(v.size() * <span class="keyword">sizeof</span>(generator_t::result_type));
+<a name="l00217"></a>00217 integer p=<a class="code" href="namespaceboost_1_1xint.html#a58aa7dc532f0d8a1557c9ec8f512602e" title="Converts a binary representation of a number into an integer.">from_binary</a>(std::string(vptr, vptr_end));
+<a name="l00218"></a>00218
+<a name="l00219"></a>00219 <span class="comment">// Trim it to the proper length</span>
+<a name="l00220"></a>00220 <span class="keywordtype">size_t</span> index=(bits/<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>);
+<a name="l00221"></a>00221 <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; (bits % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>))-1;
+<a name="l00222"></a>00222 <span class="keywordflow">if</span> (mask==0) { mask=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">digit_mask</a>; --index; }
+<a name="l00223"></a>00223 p._get_data()-&gt;digits[index] &amp;= mask;
+<a name="l00224"></a>00224 <span class="keywordflow">for</span> (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *i=p._get_data()-&gt;digits+index+1,
+<a name="l00225"></a>00225 *ie=p._get_data()-&gt;digits+p._get_data()-&gt;mLength; i&lt;ie; ++i) *i=0;
+<a name="l00226"></a>00226 p._get_data()-&gt;skipLeadingZeros();
+<a name="l00227"></a>00227
+<a name="l00228"></a>00228 <span class="keywordflow">if</span> (high_bit_on) <a class="code" href="namespaceboost_1_1xint.html#a6278915cf51b0d448a9db40031226182" title="Sets a specific bit in an integer to one.">setbit</a>(p, bits-1);
+<a name="l00229"></a>00229 <span class="keywordflow">if</span> (low_bit_on) <a class="code" href="namespaceboost_1_1xint.html#a6278915cf51b0d448a9db40031226182" title="Sets a specific bit in an integer to one.">setbit</a>(p, 0);
+<a name="l00230"></a>00230 <span class="keywordflow">if</span> (can_be_negative) p._set_negative(randomGenerator() &amp; 0x01);
+<a name="l00231"></a>00231
+<a name="l00232"></a>00232 <span class="keywordflow">return</span> p;
+<a name="l00233"></a>00233 }
+<a name="l00234"></a>00234
+<a name="l00235"></a>00235 } <span class="comment">// namespace xint</span>
+<a name="l00236"></a>00236 } <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/random_8dox.html
==============================================================================
--- sandbox/xint/doc/random_8dox.html (original)
+++ sandbox/xint/doc/random_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/random.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/rationale.html
==============================================================================
--- sandbox/xint/doc/rationale.html (original)
+++ sandbox/xint/doc/rationale.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -50,7 +50,7 @@
 <li><a class="el" href="r_default_necessary.html">Okay, then why not make the developer provide one?</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/rationale_8dox.html
==============================================================================
--- sandbox/xint/doc/rationale_8dox.html (original)
+++ sandbox/xint/doc/rationale_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/rationale.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/roots_8cpp.html
==============================================================================
--- sandbox/xint/doc/roots_8cpp.html (original)
+++ sandbox/xint/doc/roots_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,15 +44,15 @@
 <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#a74891726f8af86736169dd43b929ad0a">xint::sqrt</a> (const integer &amp;n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the square root of <code>an</code> <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="namespaceboost_1_1xint.html#afdf79cc57e434b9c7f4cb3b6bd68dbd6">boost::xint::sqrt</a> (const integer &amp;n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the square root of <code>an</code> <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>Contains the definitions for functions related to roots of a number. </p>
 
 <p>Definition in file <a class="el" href="roots_8cpp_source.html">roots.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/roots_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/roots_8cpp_source.html (original)
+++ sandbox/xint/doc/roots_8cpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -39,33 +39,35 @@
 <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="l00032"></a>00032 integer <a class="code" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a" title="Calculate the square root of an integer.">sqrt</a>(<span class="keyword">const</span> integer&amp; n) {
-<a name="l00033"></a>00033 <span class="keywordflow">if</span> (n.sign() &lt; 0) {
-<a name="l00034"></a>00034 <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> cannot_represent(<span class="stringliteral">&quot;library cannot &quot;</span>
-<a name="l00035"></a>00035 <span class="stringliteral">&quot;represent imaginary values (tried to take sqrt of negative &quot;</span>
-<a name="l00036"></a>00036 <span class="stringliteral">&quot;number)&quot;</span>);
-<a name="l00037"></a>00037 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
-<a name="l00038"></a>00038 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n.sign() == 0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>();
-<a name="l00039"></a>00039
-<a name="l00040"></a>00040 <span class="comment">// Initial guess is half the length of n, in bits</span>
-<a name="l00041"></a>00041 integer guess;
-<a name="l00042"></a>00042 <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a" title="Sets a specific bit in an integer to one.">setbit</a>(guess, <a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048" title="Get the log2 value of an integer.">log2</a>(n)/2);
-<a name="l00043"></a>00043
-<a name="l00044"></a>00044 <span class="comment">// Now refine it until we&apos;re as close as integers can get</span>
-<a name="l00045"></a>00045 <span class="keywordflow">while</span> (1) {
-<a name="l00046"></a>00046 integer guess2=(guess + (n/guess)) &gt;&gt; 1;
-<a name="l00047"></a>00047 <span class="keywordflow">if</span> (guess == guess2) <span class="keywordflow">break</span>;
-<a name="l00048"></a>00048 guess=guess2;
-<a name="l00049"></a>00049 }
-<a name="l00050"></a>00050
-<a name="l00051"></a>00051 <span class="keywordflow">return</span> guess;
-<a name="l00052"></a>00052 }
-<a name="l00053"></a>00053
-<a name="l00054"></a>00054 } <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="l00033"></a>00033 integer <a class="code" href="namespaceboost_1_1xint.html#afdf79cc57e434b9c7f4cb3b6bd68dbd6" title="Calculate the square root of an integer.">sqrt</a>(<span class="keyword">const</span> integer&amp; n) {
+<a name="l00034"></a>00034 <span class="keywordflow">if</span> (n.sign() &lt; 0) {
+<a name="l00035"></a>00035 <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> cannot_represent(<span class="stringliteral">&quot;library cannot &quot;</span>
+<a name="l00036"></a>00036 <span class="stringliteral">&quot;represent imaginary values (tried to take sqrt of negative &quot;</span>
+<a name="l00037"></a>00037 <span class="stringliteral">&quot;number)&quot;</span>);
+<a name="l00038"></a>00038 <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00039"></a>00039 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n.sign() == 0) <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>();
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 <span class="comment">// Initial guess is half the length of n, in bits</span>
+<a name="l00042"></a>00042 integer guess;
+<a name="l00043"></a>00043 <a class="code" href="namespaceboost_1_1xint.html#a6278915cf51b0d448a9db40031226182" title="Sets a specific bit in an integer to one.">setbit</a>(guess, <a class="code" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd" title="Get the log2 value of an integer.">log2</a>(n)/2);
+<a name="l00044"></a>00044
+<a name="l00045"></a>00045 <span class="comment">// Now refine it until we&apos;re as close as integers can get</span>
+<a name="l00046"></a>00046 <span class="keywordflow">while</span> (1) {
+<a name="l00047"></a>00047 integer guess2=(guess + (n/guess)) &gt;&gt; 1;
+<a name="l00048"></a>00048 <span class="keywordflow">if</span> (guess == guess2) <span class="keywordflow">break</span>;
+<a name="l00049"></a>00049 guess=guess2;
+<a name="l00050"></a>00050 }
+<a name="l00051"></a>00051
+<a name="l00052"></a>00052 <span class="keywordflow">return</span> guess;
+<a name="l00053"></a>00053 }
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 } <span class="comment">// namespace xint</span>
+<a name="l00056"></a>00056 } <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/securemode.html
==============================================================================
--- sandbox/xint/doc/securemode.html (original)
+++ sandbox/xint/doc/securemode.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -26,9 +26,9 @@
 
 <h1><a class="anchor" id="securemode">Secure Mode </a></h1><p>For high-security applications, this library has a Secure Mode compile-time option. In Secure Mode, all memory is zeroed before being released.</p>
 <p>To enable it, define the preprocessor symbol <code>XINT_SECURE</code> when compiling the library. You don't need to define it when using the library, only when compiling it.</p>
-<p>To see whether your copy was compiled with secure-mode enabled, use the <a class="el" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd" title="Tells whether the library was compiled with Secure Mode enabled.">xint::opt_secure_mode</a> function. </p>
+<p>To see whether your copy was compiled with secure-mode enabled, use the xint::opt_secure_mode function. </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/securemode_8dox.html
==============================================================================
--- sandbox/xint/doc/securemode_8dox.html (original)
+++ sandbox/xint/doc/securemode_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/securemode.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/testing.html
==============================================================================
--- sandbox/xint/doc/testing.html (original)
+++ sandbox/xint/doc/testing.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -27,7 +27,7 @@
 <h1><a class="anchor" id="testing">The Self-Testing Program </a></h1><p>The library has a self-testing program that you can build and run to confirm that it is working properly. You can find the source code for it in the <code>test</code> subdirectory under the main <code>xint</code> directory. All of the major functions are thoroughly exercised, and many of the minor ones as well.</p>
 <p>The source code for the testing program also demonstrates how to use many of the library's functions. </p>
 </div>
-<hr 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/testing_8dox.html
==============================================================================
--- sandbox/xint/doc/testing_8dox.html (original)
+++ sandbox/xint/doc/testing_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/testing.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/threadsafe.html
==============================================================================
--- sandbox/xint/doc/threadsafe.html (original)
+++ sandbox/xint/doc/threadsafe.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -26,9 +26,9 @@
 
 <h1><a class="anchor" id="threadsafe">Thread-Safe Operation </a></h1><p>This library, by default, can only safely be used in one thread at a time. If you need thread-safe operation, you must compile it with the thread-safe option enabled (see below), and you must ensure that only one thread ever accesses a particular integer at a time. The library cannot automatically provide this protection without an unacceptably severe speed penalty.</p>
 <p>To enable thread-safe operations, define the preprocessor symbol <code>XINT_THREADSAFE</code> when compiling the library. You don't need to define it when using the library, only when compiling it.</p>
-<p>To see whether your copy was compiled with thread-safe operation enabled, use the <a class="el" href="namespacexint.html#ad55aa4d44083238d9ec313511f5b1dfa" title="Tells whether the library was compiled with the Thread Safe Operation option enabled...">xint::opt_thread_safe</a> function. </p>
+<p>To see whether your copy was compiled with thread-safe operation enabled, use the xint::opt_thread_safe function. </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/threadsafe_8dox.html
==============================================================================
--- sandbox/xint/doc/threadsafe_8dox.html (original)
+++ sandbox/xint/doc/threadsafe_8dox.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -29,7 +29,7 @@
 <h1>/home/chad/projects/xint/doc/dox/threadsafe.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/todo.html
==============================================================================
--- sandbox/xint/doc/todo.html (original)
+++ sandbox/xint/doc/todo.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -22,18 +22,18 @@
 <div class="contents">
 
 
-<h1><a class="anchor" id="todo">Todo List </a></h1><p><a class="anchor" id="_todo000001"></a> </p>
+<h1><a class="anchor" id="todo">Todo List </a></h1><p><a class="anchor" id="_todo000002"></a> </p>
 <dl>
-<dt>File <a class="el" href="convert_8cpp.html">convert.cpp</a> </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>
+<dt>Member <a class="el" href="namespaceboost_1_1xint.html#afbba1eeb86e4e7610a75afbb89d594e3">boost::xint::sqr</a> (const integer &amp;n) </dt>
+<dd>Rewrite this to eliminate the inefficient addOverflow. </dd>
 </dl>
-<p><a class="anchor" id="_todo000002"></a> </p>
+<p><a class="anchor" id="_todo000001"></a> </p>
 <dl>
-<dt>Member <a class="el" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">xint::sqr</a> (const integer &amp;n) </dt>
-<dd>Rewrite this to eliminate the inefficient addOverflow. </dd>
+<dt>File <a class="el" href="convert_8cpp.html">convert.cpp</a> </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>
 </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/xint_8hpp.html
==============================================================================
--- sandbox/xint/doc/xint_8hpp.html (original)
+++ sandbox/xint/doc/xint_8hpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -46,222 +46,223 @@
 <p>Go to the source code of this file.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td colspan="2"><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1token.html">xint::detail::token</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An empty struct, used in <a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582" title="Used for the exception-blocker.">xint::token</a>. More...<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1base__random__generator.html">xint::detail::base_random_generator</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">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>. More...<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1random__generator.html">xint::detail::random_generator&lt; T &gt;</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Support class for the random generator code. More...<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html">xint::integer</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The extended integer class. More...<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1strong__random__generator.html">xint::strong_random_generator</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A convenience class for cryptographically-secure random numbers. More...<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__base.html">xint::invalid_base</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__digit.html">xint::invalid_digit</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__modulus.html">xint::invalid_modulus</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1divide__by__zero.html">xint::divide_by_zero</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1cannot__represent.html">xint::cannot_represent</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1too__big.html">xint::too_big</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1not__a__number.html">xint::not_a_number</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1no__strong__random.html">xint::no_strong_random</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1overflow__error.html">xint::overflow_error</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1detail_1_1token.html">boost::xint::detail::token</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An empty struct, used in <a class="el" href="namespaceboost_1_1xint.html#a8554e5ef0fa7ba2da83c8f01a9bb1128" title="Used for the exception-blocker.">xint::token</a>. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html">boost::xint::detail::base_random_generator</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">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>. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html">boost::xint::detail::random_generator&lt; T &gt;</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Support class for the random generator code. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer.html">boost::xint::integer</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The extended integer class. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1strong__random__generator.html">boost::xint::strong_random_generator</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A convenience class for cryptographically-secure random numbers. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1invalid__base.html">boost::xint::invalid_base</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1invalid__digit.html">boost::xint::invalid_digit</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1invalid__modulus.html">boost::xint::invalid_modulus</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1divide__by__zero.html">boost::xint::divide_by_zero</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1cannot__represent.html">boost::xint::cannot_represent</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1too__big.html">boost::xint::too_big</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1not__a__number.html">boost::xint::not_a_number</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1no__strong__random.html">boost::xint::no_strong_random</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1overflow__error.html">boost::xint::overflow_error</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception class. More...<br/></td></tr>
 <tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="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>
 <tr><td colspan="2"><h2>Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef boost::uintmax_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">xint::detail::doubledigit_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef boost::uintmax_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">boost::xint::detail::doubledigit_t</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef boost::uint_t<br class="typebreak"/>
 &lt; std::numeric_limits<br class="typebreak"/>
 &lt; doubledigit_t &gt;::digits/2 &gt;<br class="typebreak"/>
-::fast&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">xint::detail::digit_t</a></td></tr>
+::fast&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">boost::xint::detail::digit_t</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef std::auto_ptr<br class="typebreak"/>
-&lt; detail::token &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">xint::token</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used for the exception-blocker. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef boost::function&lt; bool()&gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">xint::callback_t</a></td></tr>
+&lt; detail::token &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a8554e5ef0fa7ba2da83c8f01a9bb1128">boost::xint::token</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used for the exception-blocker. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef boost::function&lt; bool()&gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">boost::xint::callback_t</a></td></tr>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a5f8bba03a6f615a82ebcf94ad7cd4353">xint::detail::set_random_generator</a> (base_random_generator *obj)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Support function. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a1dfc1e90886c4897a4b112f491b89b62">xint::detail::get_random</a> ()</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_1_1detail.html#a17e1b4fcb11ff18fd2641dc43ee905b8">boost::xint::detail::set_random_generator</a> (base_random_generator *obj)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Support function. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a6486d7febde540f90921e9925d077534">boost::xint::detail::get_random</a> ()</td></tr>
 <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>
 <tr><td colspan="2"><div class="groupHeader">Mathematical primitives</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp196dd2a5f50860e057df961a96d84ea3"></a> </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#ac9e4ed282bafa93dbf608350df0127ba">xint::abs</a> (const integer &amp;n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the absolute 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">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab393826381b1abd9f1aca1cdb45f41f6">xint::negate</a> (const integer &amp;n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the additive inverse 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">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint::add</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the sum 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#af196cd74cb23970032fddcce71957a80">xint::subtract</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the difference between 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#af3d7059ec08bf075cec5685deca55c5d">xint::multiply</a> (const integer &amp;n, const integer &amp;by)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the 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#abf3d47f1ef1fdf334097fab055886a44">xint::divide</a> (const integer &amp;dividend, const integer &amp;divisor)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">std::pair&lt; integer, integer &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">xint::divide_r</a> (const integer &amp;d1, const integer &amp;d2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>, with the remainder. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672">boost::xint::abs</a> (const integer &amp;n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the absolute value of 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#a84190f7b286de191e8026e440f104731">boost::xint::negate</a> (const integer &amp;n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the additive inverse of 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#a5f82fa6b23e9af01292440248b89210d">boost::xint::add</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the sum 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#a86eb0099596fe66bd46be244323f44e5">boost::xint::subtract</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the difference between 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#a9e0d6ad947fa3e979ed6e26d7e81ab7f">boost::xint::multiply</a> (const integer &amp;n, const integer &amp;by)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the 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#a4892543bb8ccfa8acb188a63a3d4723b">boost::xint::divide</a> (const integer &amp;dividend, const integer &amp;divisor)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::pair&lt; integer, integer &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0fff3b235a18c0b3243a1ccc01a68f23">boost::xint::divide_r</a> (const integer &amp;d1, const integer &amp;d2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>, with the remainder. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">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#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#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#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="namespacexint.html#a74891726f8af86736169dd43b929ad0a">xint::sqrt</a> (const integer &amp;n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the square root of <code>an</code> <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="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#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#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>
+<tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#afdf79cc57e434b9c7f4cb3b6bd68dbd6">boost::xint::sqrt</a> (const integer &amp;n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the square root of <code>an</code> <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Conversion functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp9c2e8a06d85d2c9b83b5a0d27e85d535"></a> </p>
 <br/><br/></div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">xint::to</a> (const integer &amp;n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Efficiently converts from an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a> to a built-in integer type. <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#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">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">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="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ae90546b0cb6cf2f27fc5ce65bb43a21e">boost::xint::to</a> (const integer &amp;n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Efficiently converts from an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">xint::integer</a> to a built-in integer type. <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">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>
+<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 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>
 <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="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#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>
+<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>
 <tr><td colspan="2"><div class="groupHeader">Random number functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpdd4713a71c208a173c1f2436d4e32ff7"></a> </p>
 <br/><br/></div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a9c50302b216b64d17d9c1d6350e88036">xint::set_random_generator</a> (T *gen)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change the random generator that the library uses. <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#a5da6e81cb78913cc61c9f14857700b5e">xint::random_by_size</a> (size_t bits, bool high_bit_on, bool low_bit_on, bool can_be_negative)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates a random <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> with specific attributes. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a201d33fafe577133130cd16dec3422b6">boost::xint::set_random_generator</a> (T *gen)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change the random generator that the library uses. <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#ac8d879e19a6608b21184236e00806be5">boost::xint::random_by_size</a> (size_t bits, bool high_bit_on, bool low_bit_on, bool can_be_negative)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates a random <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> with specific attributes. <br/></td></tr>
 <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>
 <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#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="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">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">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#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>
+<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">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>
 <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">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">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">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">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">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 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>
+<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">Stream input/output functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpd9927783c44c1aad288df0ab8bfa9ddf"></a> </p>
 <br/><br/></div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename charT , typename traits &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream&lt; charT, <br class="typebreak"/>
-traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">xint::operator&lt;&lt;</a> (std::basic_ostream&lt; charT, traits &gt; &amp;out, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n)</td></tr>
+traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ade3e222abd81f9935cd0c003f345ed57">boost::xint::operator&lt;&lt;</a> (std::basic_ostream&lt; charT, traits &gt; &amp;out, const xint::integer &amp;n)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename charT , typename traits &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_istream&lt; charT, <br class="typebreak"/>
-traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">xint::operator&gt;&gt;</a> (std::basic_istream&lt; charT, traits &gt; &amp;in, <a class="el" href="classxint_1_1integer.html">xint::integer</a> &amp;n)</td></tr>
+traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a6828d3d928f3a859f82a04b70634e4b3">boost::xint::operator&gt;&gt;</a> (std::basic_istream&lt; charT, traits &gt; &amp;in, xint::integer &amp;n)</td></tr>
 <tr><td colspan="2"><h2>Variables</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">xint::detail::nan_text</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the text representation of the Not-a-Number value. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const callback_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">xint::no_callback</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">xint::autobase</a> = (std::numeric_limits&lt;size_t&gt;::max)()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#ab0df946a2c10228501ef82bf823d0978">boost::xint::detail::nan_text</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the text representation of the Not-a-Number value. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const callback_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">boost::xint::no_callback</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">boost::xint::autobase</a> = (std::numeric_limits&lt;size_t&gt;::max)()</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Some constants used by the library.</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpe1f42a3ea000e0468230fb7abe73e7b1"></a> </p>
 <br/><br/></div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">xint::detail::bits_per_digit</a> = std::numeric_limits&lt;digit_t&gt;::digits</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const digit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">xint::detail::digit_hibit</a> = (digit_t(1) &lt;&lt; (bits_per_digit-1))</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const doubledigit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">xint::detail::doubledigit_hibit</a> = (doubledigit_t(1) &lt;&lt; (bits_per_digit*2-1))</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const doubledigit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">xint::detail::digit_overflowbit</a> = (doubledigit_t(1) &lt;&lt; bits_per_digit)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const digit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">xint::detail::digit_mask</a> = digit_t(digit_overflowbit-1)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">boost::xint::detail::bits_per_digit</a> = std::numeric_limits&lt;digit_t&gt;::digits</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const digit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#ab7d9f30b8cad63e2e82998aa2e8d0fcd">boost::xint::detail::digit_hibit</a> = (digit_t(1) &lt;&lt; (bits_per_digit-1))</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const doubledigit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a33ea157e34285642e6924bbffffc4367">boost::xint::detail::doubledigit_hibit</a> = (doubledigit_t(1) &lt;&lt; (bits_per_digit*2-1))</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const doubledigit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">boost::xint::detail::digit_overflowbit</a> = (doubledigit_t(1) &lt;&lt; bits_per_digit)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const digit_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">boost::xint::detail::digit_mask</a> = digit_t(digit_overflowbit-1)</td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>The main header file for the XInt library. </p>
@@ -269,7 +270,7 @@
 
 <p>Definition in file <a class="el" href="xint_8hpp_source.html">xint.hpp</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/xint_8hpp_source.html
==============================================================================
--- sandbox/xint/doc/xint_8hpp_source.html (original)
+++ sandbox/xint/doc/xint_8hpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -54,454 +54,456 @@
 <a name="l00035"></a>00035 <span class="preprocessor">#include &lt;boost/random/uniform_int.hpp&gt;</span>
 <a name="l00036"></a>00036 <span class="preprocessor">#include &lt;boost/random/variate_generator.hpp&gt;</span>
 <a name="l00037"></a>00037
-<a name="l00039"></a>00039 <span class="keyword">namespace </span>xint {
-<a name="l00040"></a>00040
-<a name="l00042"></a>00042 <span class="comment">// The boring-but-necessary preliminary stuff</span>
-<a name="l00043"></a>00043
-<a name="l00045"></a>00045 <span class="keyword">namespace </span>detail {
-<a name="l00051"></a><a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">00051</a> <span class="keyword">typedef</span> boost::uintmax_t <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>;
-<a name="l00052"></a>00052
-<a name="l00058"></a>00058 <span class="keyword">typedef</span> boost::uint_t&lt;std::numeric_limits&lt;doubledigit_t&gt;::digits / 2&gt;::fast
-<a name="l00059"></a><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">00059</a> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>;
-<a name="l00060"></a>00060
-<a name="l00063"></a><a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">00063</a> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> = std::numeric_limits&lt;digit_t&gt;::digits;
-<a name="l00064"></a><a class="code" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">00064</a> <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> <a class="code" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">digit_hibit</a> = (<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(1) &lt;&lt; (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>-1));
-<a name="l00065"></a><a class="code" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">00065</a> <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> <a class="code" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">doubledigit_hibit</a> = (<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(1) &lt;&lt; (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>*2-1));
-<a name="l00066"></a><a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">00066</a> <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a> = (<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(1) &lt;&lt; <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
-<a name="l00067"></a><a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">00067</a> <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a> = <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>-1);
-<a name="l00069"></a>00069
-<a name="l00071"></a>00071 <span class="keyword">const</span> <span class="keyword">extern</span> std::string <a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce" title="Holds the text representation of the Not-a-Number value.">nan_text</a>;
-<a name="l00072"></a>00072
-<a name="l00073"></a>00073 <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">data_t</a>;
-<a name="l00074"></a>00074
-<a name="l00076"></a><a class="code" href="structxint_1_1detail_1_1token.html">00076</a> <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1token.html" title="An empty struct, used in xint::token.">token</a> { };
-<a name="l00077"></a>00077
-<a name="l00079"></a><a class="code" href="structxint_1_1detail_1_1base__random__generator.html">00079</a> <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1base__random__generator.html" title="The base class for random_generator.">base_random_generator</a> {
-<a name="l00080"></a><a class="code" href="structxint_1_1detail_1_1base__random__generator.html#a0556d7f290cd236303b3f1031611cb3e">00080</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1base__random__generator.html#a0556d7f290cd236303b3f1031611cb3e">result_type</a>;
-<a name="l00081"></a>00081 <span class="keyword">virtual</span> <a class="code" href="structxint_1_1detail_1_1base__random__generator.html#a0556d7f290cd236303b3f1031611cb3e">result_type</a> <a class="code" href="structxint_1_1detail_1_1base__random__generator.html#aa7f3b20e2fcccbf9d3a5c76e6c89b4b5">operator()</a>()=0;
-<a name="l00082"></a>00082 };
-<a name="l00083"></a>00083
-<a name="l00085"></a>00085 <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;
-<a name="l00086"></a><a class="code" href="structxint_1_1detail_1_1random__generator.html">00086</a> <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1random__generator.html" title="Support class for the random generator code.">random_generator</a>: <span class="keyword">public</span> <a class="code" href="structxint_1_1detail_1_1base__random__generator.html" title="The base class for random_generator.">base_random_generator</a> {
-<a name="l00087"></a><a class="code" href="structxint_1_1detail_1_1random__generator.html#aab9830c38c791b5c3ac0ef8328573bfd">00087</a> <span class="keyword">typedef</span> boost::uniform_int&lt;result_type&gt; <a class="code" href="structxint_1_1detail_1_1random__generator.html#aab9830c38c791b5c3ac0ef8328573bfd">dist_t</a>;
-<a name="l00088"></a><a class="code" href="structxint_1_1detail_1_1random__generator.html#adbc88a70815fa4f72deb9bddaec86675">00088</a> <span class="keyword">typedef</span> boost::variate_generator&lt;T&amp;, dist_t&gt; <a class="code" href="structxint_1_1detail_1_1random__generator.html#adbc88a70815fa4f72deb9bddaec86675">gen_t</a>;
-<a name="l00089"></a><a class="code" href="structxint_1_1detail_1_1random__generator.html#a76ce5051cedd7e6e25dc46ac1fb90098">00089</a> <a class="code" href="structxint_1_1detail_1_1random__generator.html#a76ce5051cedd7e6e25dc46ac1fb90098">random_generator</a>(T *g): <a class="code" href="structxint_1_1detail_1_1random__generator.html#a68bbea81955a1424f474b49040bcb007">genobj</a>(g), <a class="code" href="structxint_1_1detail_1_1random__generator.html#a9a90a3050b2ff83d78ef8633deb5d42d">gen</a>(*g,
-<a name="l00090"></a>00090 <a class="code" href="structxint_1_1detail_1_1random__generator.html#aab9830c38c791b5c3ac0ef8328573bfd">dist_t</a>((std::numeric_limits&lt;<a class="code" href="structxint_1_1detail_1_1base__random__generator.html#a0556d7f290cd236303b3f1031611cb3e">result_type</a>&gt;::min)(),
-<a name="l00091"></a>00091 (std::numeric_limits&lt;<a class="code" href="structxint_1_1detail_1_1base__random__generator.html#a0556d7f290cd236303b3f1031611cb3e">result_type</a>&gt;::max)())) { }
-<a name="l00092"></a><a class="code" href="structxint_1_1detail_1_1random__generator.html#ade9cefb3f061112ba1d3144aefd24f28">00092</a> <a class="code" href="structxint_1_1detail_1_1base__random__generator.html#a0556d7f290cd236303b3f1031611cb3e">result_type</a> <a class="code" href="structxint_1_1detail_1_1random__generator.html#ade9cefb3f061112ba1d3144aefd24f28">operator()</a>() { <span class="keywordflow">return</span> <a class="code" href="structxint_1_1detail_1_1random__generator.html#a9a90a3050b2ff83d78ef8633deb5d42d">gen</a>(); }
-<a name="l00093"></a><a class="code" href="structxint_1_1detail_1_1random__generator.html#a68bbea81955a1424f474b49040bcb007">00093</a> std::auto_ptr&lt;T&gt; <a class="code" href="structxint_1_1detail_1_1random__generator.html#a68bbea81955a1424f474b49040bcb007">genobj</a>;
-<a name="l00094"></a><a class="code" href="structxint_1_1detail_1_1random__generator.html#a9a90a3050b2ff83d78ef8633deb5d42d">00094</a> <a class="code" href="structxint_1_1detail_1_1random__generator.html#adbc88a70815fa4f72deb9bddaec86675">gen_t</a> <a class="code" href="structxint_1_1detail_1_1random__generator.html#a9a90a3050b2ff83d78ef8633deb5d42d">gen</a>;
-<a name="l00095"></a>00095 };
-<a name="l00096"></a>00096
-<a name="l00098"></a>00098 <span class="keywordtype">void</span> <a class="code" href="namespacexint_1_1detail.html#a5f8bba03a6f615a82ebcf94ad7cd4353" title="Support function.">set_random_generator</a>(<a class="code" href="structxint_1_1detail_1_1base__random__generator.html" title="The base class for random_generator.">base_random_generator</a> *obj);
-<a name="l00099"></a>00099
-<a name="l00104"></a>00104 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="namespacexint_1_1detail.html#a1dfc1e90886c4897a4b112f491b89b62">get_random</a>();
-<a name="l00105"></a>00105 } <span class="comment">// namespace detail</span>
-<a name="l00106"></a>00106
-<a name="l00108"></a><a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">00108</a> <span class="keyword">typedef</span> std::auto_ptr&lt;detail::token&gt; <a class="code" href="structxint_1_1detail_1_1token.html" title="An empty struct, used in xint::token.">token</a>;
-<a name="l00109"></a>00109
-<a name="l00113"></a><a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">00113</a> <span class="keyword">typedef</span> boost::function&lt;bool ()&gt; <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a>;
-<a name="l00114"></a>00114
-<a name="l00118"></a><a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">00118</a> <span class="keyword">const</span> <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> <a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">no_callback</a>;
-<a name="l00119"></a>00119
-<a name="l00123"></a><a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">00123</a> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a>=(std::numeric_limits&lt;size_t&gt;::max)();
-<a name="l00124"></a>00124
-<a name="l00125"></a>00125 <span class="keyword">class </span><a class="code" href="classxint_1_1not__a__number.html" title="Exception class.">not_a_number</a>;
-<a name="l00126"></a>00126
-<a name="l00128"></a>00128 <span class="comment">// The integer class</span>
-<a name="l00129"></a>00129
-<a name="l00141"></a><a class="code" href="classxint_1_1integer.html">00141</a> <span class="keyword">class </span><a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> {
-<a name="l00142"></a>00142 <span class="keyword">public</span>:
-<a name="l00143"></a>00143
-<a name="l00146"></a>00146 <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="Creates a new integer with an initial value of zero.">integer</a>();
-<a name="l00147"></a>00147 <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="Creates a new integer with an initial value of zero.">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="l00148"></a>00148 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="Creates a new integer with an initial value of zero.">integer</a>(<span class="keyword">const</span> T&amp; n,
-<a name="l00149"></a>00149 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_integral&lt;T&gt; &gt;::type* = 0,
-<a name="l00150"></a>00150 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_signed&lt;T&gt; &gt;::type* = 0);
-<a name="l00151"></a>00151 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="Creates a new integer with an initial value of zero.">integer</a>(<span class="keyword">const</span> T&amp; n,
-<a name="l00152"></a>00152 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_integral&lt;T&gt; &gt;::type* = 0,
-<a name="l00153"></a>00153 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_unsigned&lt;T&gt; &gt;::type* = 0);
-<a name="l00154"></a>00154 <span class="keyword">explicit</span> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="Creates a new integer with an initial value of zero.">integer</a>(<span class="keyword">const</span> std::string&amp; str, <span class="keywordtype">size_t</span> base=10);
-<a name="l00155"></a>00155 <span class="keyword">explicit</span> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="Creates a new integer with an initial value of zero.">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;);
-<a name="l00156"></a>00156 <a class="code" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">~integer</a>();
-<a name="l00158"></a>00158
-<a name="l00167"></a>00167 <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">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="l00168"></a>00168
-<a name="l00169"></a>00169 <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">operator+=</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="l00170"></a>00170 <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">operator-=</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="l00171"></a>00171 <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">operator*=</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="l00172"></a>00172 <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">operator/=</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="l00173"></a>00173 <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">operator%=</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="l00174"></a>00174
-<a name="l00175"></a>00175 <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">operator++</a>();
-<a name="l00176"></a>00176 <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">operator--</a>();
-<a name="l00177"></a>00177 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">operator++</a>(<span class="keywordtype">int</span>);
-<a name="l00178"></a>00178 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">operator--</a>(<span class="keywordtype">int</span>);
-<a name="l00179"></a>00179
-<a name="l00180"></a>00180 <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">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);
-<a name="l00181"></a>00181 <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">operator|=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n);
-<a name="l00182"></a>00182 <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">operator^=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n);
-<a name="l00183"></a>00183 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">operator&lt;&lt;</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce" title="Bit-shift an integer, in either direction.">shift</a>) <span class="keyword">const</span>;
-<a name="l00184"></a>00184 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">operator&gt;&gt;</a>(<span class="keywordtype">size_t</span> shift) <span class="keyword">const</span>;
-<a name="l00185"></a>00185 <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">operator&lt;&lt;=</a>(<span class="keywordtype">size_t</span> shift);
-<a name="l00186"></a>00186 <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">operator&gt;&gt;=</a>(<span class="keywordtype">size_t</span> shift);
-<a name="l00188"></a>00188
-<a name="l00197"></a>00197 <span class="keyword">static</span> <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">zero</a>();
-<a name="l00198"></a>00198 <span class="keyword">static</span> <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">one</a>();
-<a name="l00200"></a>00200
-<a name="l00203"></a>00203 <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23" title="Tests the lowest bit of *this to determine oddness.">odd</a>() <span class="keyword">const</span>;
-<a name="l00204"></a>00204 <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2" title="Tests the lowest bit of *this to determine evenness.">even</a>() <span class="keyword">const</span>;
-<a name="l00205"></a>00205 <span class="keywordtype">int</span> <a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">sign</a>() <span class="keyword">const</span>;
-<a name="l00206"></a>00206 <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#a0bca68386478755dc787f981d9cd5606" title="Tests *this for Not-a-Number.">is_nan</a>() <span class="keyword">const</span>;
-<a name="l00207"></a>00207
-<a name="l00208"></a>00208 <span class="keywordtype">size_t</span> <a class="code" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955" title="Tells you roughly how large an integer is.">hex_digits</a>() <span class="keyword">const</span>;
-<a name="l00209"></a>00209
+<a name="l00038"></a>00038 <span class="keyword">namespace </span>boost {
+<a name="l00040"></a>00040 <span class="keyword">namespace </span>xint {
+<a name="l00041"></a>00041
+<a name="l00043"></a>00043 <span class="comment">// The boring-but-necessary preliminary stuff</span>
+<a name="l00044"></a>00044
+<a name="l00046"></a>00046 <span class="keyword">namespace </span>detail {
+<a name="l00052"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">00052</a> <span class="keyword">typedef</span> boost::uintmax_t <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>;
+<a name="l00053"></a>00053
+<a name="l00059"></a>00059 <span class="keyword">typedef</span> boost::uint_t&lt;std::numeric_limits&lt;doubledigit_t&gt;::digits / 2&gt;::fast
+<a name="l00060"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">00060</a> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>;
+<a name="l00061"></a>00061
+<a name="l00064"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">00064</a> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> = std::numeric_limits&lt;digit_t&gt;::digits;
+<a name="l00065"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html#ab7d9f30b8cad63e2e82998aa2e8d0fcd">00065</a> <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#ab7d9f30b8cad63e2e82998aa2e8d0fcd">digit_hibit</a> = (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(1) &lt;&lt; (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>-1));
+<a name="l00066"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html#a33ea157e34285642e6924bbffffc4367">00066</a> <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a33ea157e34285642e6924bbffffc4367">doubledigit_hibit</a> = (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(1) &lt;&lt; (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>*2-1));
+<a name="l00067"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">00067</a> <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a> = (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(1) &lt;&lt; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>);
+<a name="l00068"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">00068</a> <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">digit_mask</a> = <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>-1);
+<a name="l00070"></a>00070
+<a name="l00072"></a>00072 <span class="keyword">const</span> <span class="keyword">extern</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.">nan_text</a>;
+<a name="l00073"></a>00073
+<a name="l00074"></a>00074 <span class="keyword">struct </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>;
+<a name="l00075"></a>00075
+<a name="l00077"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1token.html">00077</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1detail_1_1token.html" title="An empty struct, used in xint::token.">token</a> { };
+<a name="l00078"></a>00078
+<a name="l00080"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html">00080</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html" title="The base class for random_generator.">base_random_generator</a> {
+<a name="l00081"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html#a9694aa7d11ac533581d530037f23fd0a">00081</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html#a9694aa7d11ac533581d530037f23fd0a">result_type</a>;
+<a name="l00082"></a>00082 <span class="keyword">virtual</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html#a9694aa7d11ac533581d530037f23fd0a">result_type</a> <a class="code" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html#ae6981f9d0ce6b201c150a5c9c6066814">operator()</a>()=0;
+<a name="l00083"></a>00083 };
+<a name="l00084"></a>00084
+<a name="l00086"></a>00086 <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;
+<a name="l00087"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html">00087</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html" title="Support class for the random generator code.">random_generator</a>: <span class="keyword">public</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html" title="The base class for random_generator.">base_random_generator</a> {
+<a name="l00088"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#ae206a1943d1e8d15efdf443f59cf1106">00088</a> <span class="keyword">typedef</span> boost::uniform_int&lt;result_type&gt; <a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#ae206a1943d1e8d15efdf443f59cf1106">dist_t</a>;
+<a name="l00089"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a77f59e8237e125403e5304a54bf8e418">00089</a> <span class="keyword">typedef</span> boost::variate_generator&lt;T&amp;, dist_t&gt; <a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a77f59e8237e125403e5304a54bf8e418">gen_t</a>;
+<a name="l00090"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a551b3fe4b897e4f86c7463586c6292ce">00090</a> <a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a551b3fe4b897e4f86c7463586c6292ce">random_generator</a>(T *g): <a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a6283923082acfdbeceb294acb0ee1075">genobj</a>(g), <a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a28fd023763b7e984033a3d7e632e41df">gen</a>(*g,
+<a name="l00091"></a>00091 <a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#ae206a1943d1e8d15efdf443f59cf1106">dist_t</a>((std::numeric_limits&lt;<a class="code" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html#a9694aa7d11ac533581d530037f23fd0a">result_type</a>&gt;::min)(),
+<a name="l00092"></a>00092 (std::numeric_limits&lt;<a class="code" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html#a9694aa7d11ac533581d530037f23fd0a">result_type</a>&gt;::max)())) { }
+<a name="l00093"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a46fa82c3887acbfc9a0d1f3071aa8c96">00093</a> <a class="code" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html#a9694aa7d11ac533581d530037f23fd0a">result_type</a> <a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a46fa82c3887acbfc9a0d1f3071aa8c96">operator()</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a28fd023763b7e984033a3d7e632e41df">gen</a>(); }
+<a name="l00094"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a6283923082acfdbeceb294acb0ee1075">00094</a> std::auto_ptr&lt;T&gt; <a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a6283923082acfdbeceb294acb0ee1075">genobj</a>;
+<a name="l00095"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a28fd023763b7e984033a3d7e632e41df">00095</a> <a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a77f59e8237e125403e5304a54bf8e418">gen_t</a> <a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html#a28fd023763b7e984033a3d7e632e41df">gen</a>;
+<a name="l00096"></a>00096 };
+<a name="l00097"></a>00097
+<a name="l00099"></a>00099 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a17e1b4fcb11ff18fd2641dc43ee905b8" title="Support function.">set_random_generator</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html" title="The base class for random_generator.">base_random_generator</a> *obj);
+<a name="l00100"></a>00100
+<a name="l00105"></a>00105 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a6486d7febde540f90921e9925d077534">get_random</a>();
+<a name="l00106"></a>00106 } <span class="comment">// namespace detail</span>
+<a name="l00107"></a>00107
+<a name="l00109"></a><a class="code" href="namespaceboost_1_1xint.html#a8554e5ef0fa7ba2da83c8f01a9bb1128">00109</a> <span class="keyword">typedef</span> std::auto_ptr&lt;detail::token&gt; <a class="code" href="structboost_1_1xint_1_1detail_1_1token.html" title="An empty struct, used in xint::token.">token</a>;
+<a name="l00110"></a>00110
+<a name="l00114"></a><a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">00114</a> <span class="keyword">typedef</span> boost::function&lt;bool ()&gt; <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a>;
+<a name="l00115"></a>00115
+<a name="l00119"></a><a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">00119</a> <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a> <a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">no_callback</a>;
+<a name="l00120"></a>00120
+<a name="l00124"></a><a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">00124</a> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">autobase</a>=(std::numeric_limits&lt;size_t&gt;::max)();
+<a name="l00125"></a>00125
+<a name="l00126"></a>00126 <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1not__a__number.html" title="Exception class.">not_a_number</a>;
+<a name="l00127"></a>00127
+<a name="l00129"></a>00129 <span class="comment">// The integer class</span>
+<a name="l00130"></a>00130
+<a name="l00142"></a><a class="code" href="classboost_1_1xint_1_1integer.html">00142</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a> {
+<a name="l00143"></a>00143 <span class="keyword">public</span>:
+<a name="l00144"></a>00144
+<a name="l00147"></a>00147 <a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600" title="Creates a new integer with an initial value of zero.">integer</a>();
+<a name="l00148"></a>00148 <a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600" title="Creates a new integer with an initial value of zero.">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="l00149"></a>00149 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600" title="Creates a new integer with an initial value of zero.">integer</a>(<span class="keyword">const</span> T&amp; n,
+<a name="l00150"></a>00150 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_integral&lt;T&gt; &gt;::type* = 0,
+<a name="l00151"></a>00151 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_signed&lt;T&gt; &gt;::type* = 0);
+<a name="l00152"></a>00152 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600" title="Creates a new integer with an initial value of zero.">integer</a>(<span class="keyword">const</span> T&amp; n,
+<a name="l00153"></a>00153 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_integral&lt;T&gt; &gt;::type* = 0,
+<a name="l00154"></a>00154 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_unsigned&lt;T&gt; &gt;::type* = 0);
+<a name="l00155"></a>00155 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600" title="Creates a new integer with an initial value of zero.">integer</a>(<span class="keyword">const</span> std::string&amp; str, <span class="keywordtype">size_t</span> base=10);
+<a name="l00156"></a>00156 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600" title="Creates a new integer with an initial value of zero.">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;);
+<a name="l00157"></a>00157 <a class="code" href="classboost_1_1xint_1_1integer.html#a3e254c8874a7a1f9a17a41505a18df35">~integer</a>();
+<a name="l00159"></a>00159
+<a name="l00168"></a>00168 <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">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="l00169"></a>00169
+<a name="l00170"></a>00170 <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">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);
+<a name="l00171"></a>00171 <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">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);
+<a name="l00172"></a>00172 <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">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);
+<a name="l00173"></a>00173 <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">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);
+<a name="l00174"></a>00174 <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">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);
+<a name="l00175"></a>00175
+<a name="l00176"></a>00176 <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">operator++</a>();
+<a name="l00177"></a>00177 <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">operator--</a>();
+<a name="l00178"></a>00178 <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">operator++</a>(<span class="keywordtype">int</span>);
+<a name="l00179"></a>00179 <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">operator--</a>(<span class="keywordtype">int</span>);
+<a name="l00180"></a>00180
+<a name="l00181"></a>00181 <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">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);
+<a name="l00182"></a>00182 <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">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);
+<a name="l00183"></a>00183 <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">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);
+<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="classboost_1_1xint_1_1integer.html#abc90075da0adaef0da2d0083e59af414">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>;
+<a name="l00185"></a>00185 <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">operator&gt;&gt;</a>(<span class="keywordtype">size_t</span> shift) <span class="keyword">const</span>;
+<a name="l00186"></a>00186 <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">operator&lt;&lt;=</a>(<span class="keywordtype">size_t</span> shift);
+<a name="l00187"></a>00187 <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">operator&gt;&gt;=</a>(<span class="keywordtype">size_t</span> shift);
+<a name="l00189"></a>00189
+<a name="l00198"></a>00198 <span class="keyword">static</span> <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">zero</a>();
+<a name="l00199"></a>00199 <span class="keyword">static</span> <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">one</a>();
+<a name="l00201"></a>00201
+<a name="l00204"></a>00204 <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.">odd</a>() <span class="keyword">const</span>;
+<a name="l00205"></a>00205 <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.">even</a>() <span class="keyword">const</span>;
+<a name="l00206"></a>00206 <span class="keywordtype">int</span> <a class="code" href="classboost_1_1xint_1_1integer.html#aea1bfa7f915f8d2a1e493aedb22bdd12" title="Tests the sign of *this.">sign</a>() <span class="keyword">const</span>;
+<a name="l00207"></a>00207 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a65fb2696f8506a6db16b8fb422c98ff5" title="Tests *this for Not-a-Number.">is_nan</a>() <span class="keyword">const</span>;
+<a name="l00208"></a>00208
+<a name="l00209"></a>00209 <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.">hex_digits</a>() <span class="keyword">const</span>;
 <a name="l00210"></a>00210
-<a name="l00216"></a><a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">00216</a> <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">detail::data_t</a> *<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>() { <span class="keywordflow">return</span> data; }
-<a name="l00217"></a><a class="code" href="classxint_1_1integer.html#aff99f7868567ae0dd4666a985873a5a7">00217</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.">detail::data_t</a> *<a class="code" href="classxint_1_1integer.html#aff99f7868567ae0dd4666a985873a5a7">_get_data</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data; }
-<a name="l00218"></a>00218 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> <a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(<span class="keywordtype">size_t</span> index) <span class="keyword">const</span>;
-<a name="l00219"></a>00219 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> <a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(<span class="keywordtype">size_t</span> index, <span class="keywordtype">bool</span>) <span class="keyword">const</span>;
-<a name="l00220"></a>00220 <span class="keywordtype">size_t</span> <a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>() <span class="keyword">const</span>;
-<a name="l00221"></a>00221 <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">_set_negative</a>(<span class="keywordtype">bool</span> negative);
-<a name="l00222"></a>00222 <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00223"></a>00223 <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>() <span class="keyword">const</span>;
-<a name="l00225"></a>00225
-<a name="l00226"></a>00226 <span class="keyword">private</span>:
-<a name="l00227"></a>00227 <span class="keywordtype">void</span> _init(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> init=0);
-<a name="l00228"></a>00228 <span class="keywordtype">void</span> _init(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> &amp;c);
-<a name="l00229"></a>00229 <span class="keywordtype">void</span> _init(boost::uintmax_t n);
-<a name="l00230"></a>00230 <span class="keywordtype">void</span> _attach();
-<a name="l00231"></a>00231 <span class="keywordtype">void</span> _detach();
-<a name="l00232"></a>00232
-<a name="l00233"></a>00233 <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="l00234"></a>00234 };
-<a name="l00235"></a>00235
-<a name="l00237"></a>00237
-<a name="l00245"></a><a class="code" href="classxint_1_1strong__random__generator.html">00245</a> <span class="keyword">class </span><a class="code" href="classxint_1_1strong__random__generator.html" title="A convenience class for cryptographically-secure random numbers.">strong_random_generator</a> {
-<a name="l00246"></a>00246 <span class="keyword">public</span>:
-<a name="l00247"></a><a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">00247</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">result_type</a>;
-<a name="l00248"></a>00248
-<a name="l00249"></a>00249 <a class="code" href="classxint_1_1strong__random__generator.html#a8841d21b6614967e0520f55c3093871a">strong_random_generator</a>();
-<a name="l00250"></a>00250 <a class="code" href="classxint_1_1strong__random__generator.html#ac75f659c2adb7c822d49fe534b2d76a4">~strong_random_generator</a>();
-<a name="l00251"></a>00251 <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">result_type</a> <a class="code" href="classxint_1_1strong__random__generator.html#a2bbb1944511585f66e5daec4737bd4e7">operator()</a>();
-<a name="l00252"></a>00252
-<a name="l00253"></a><a class="code" href="classxint_1_1strong__random__generator.html#a1a808cca9189eb64f420e4745ca5122d">00253</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1strong__random__generator.html#a1a808cca9189eb64f420e4745ca5122d">has_fixed_range</a>;
-<a name="l00254"></a><a class="code" href="classxint_1_1strong__random__generator.html#a4bea7dba7f086441548dfee576e54fce">00254</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">result_type</a> <a class="code" href="classxint_1_1strong__random__generator.html#a4bea7dba7f086441548dfee576e54fce">min_value</a>;
-<a name="l00255"></a><a class="code" href="classxint_1_1strong__random__generator.html#aea47e4fbf8b0fe5914ade7ce2704a3c3">00255</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">result_type</a> <a class="code" href="classxint_1_1strong__random__generator.html#aea47e4fbf8b0fe5914ade7ce2704a3c3">max_value</a>;
-<a name="l00256"></a>00256 <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">result_type</a> <a class="code" href="classxint_1_1strong__random__generator.html#a5ec89070a7a7338c2b7318086efef701">min</a>() <span class="keyword">const</span>;
-<a name="l00257"></a>00257 <a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">result_type</a> <a class="code" href="classxint_1_1strong__random__generator.html#a1327ad0fe9d6f1f1c851456592b178db">max</a>() <span class="keyword">const</span>;
-<a name="l00258"></a>00258 <span class="keywordtype">double</span> <a class="code" href="classxint_1_1strong__random__generator.html#a57ff17a9c2b36775acfedd53f5a0b30e">entropy</a>() <span class="keyword">const</span>;
-<a name="l00259"></a>00259
-<a name="l00260"></a>00260 <span class="keyword">private</span>:
-<a name="l00261"></a>00261 <span class="keyword">struct </span>impl_t;
-<a name="l00262"></a>00262 impl_t *impl;
-<a name="l00263"></a>00263 };
-<a name="l00264"></a>00264
-<a name="l00266"></a>00266
-<a name="l00272"></a>00272
-<a name="l00273"></a>00273 <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="l00274"></a>00274 <a class="code" href="structxint_1_1detail_1_1token.html" title="An empty struct, used in xint::token.">token</a> <a class="code" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c" title="Temporarily prevent the library from throwing blockable exceptions.">block_exceptions</a>();
-<a name="l00275"></a>00275 <a class="code" href="structxint_1_1detail_1_1token.html" title="An empty struct, used in xint::token.">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="l00277"></a>00277
-<a name="l00279"></a>00279
-<a name="l00282"></a>00282 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba" title="Returns the absolute value of an integer.">abs</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n);
-<a name="l00283"></a>00283 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#ab393826381b1abd9f1aca1cdb45f41f6" title="Return the additive inverse of an integer.">negate</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n);
-<a name="l00284"></a>00284 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163" title="Calculate the sum of two integers.">add</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">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; addend);
-<a name="l00285"></a>00285 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80" title="Calculate the difference between two integers.">subtract</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">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; subtrahend);
-<a name="l00286"></a>00286 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d" title="Calculate the product of two integers.">multiply</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">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; multiplicand);
-<a name="l00287"></a>00287 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44" title="Calculate how many dividends would fit into divisor.">divide</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; dividend, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; divisor);
-<a name="l00288"></a>00288 std::pair&lt;integer, integer&gt; <a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d" title="Calculate how many dividends would fit into divisor, with the remainder.">divide_r</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; dividend, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp;
-<a name="l00289"></a>00289 divisor);
-<a name="l00291"></a>00291
-<a name="l00293"></a>00293
-<a name="l00296"></a>00296 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b" title="Calculate the value of n2.">sqr</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n);
-<a name="l00297"></a>00297 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a186b14f991b32a818abd553b56a13a62" title="Calculate the value of ne.">pow</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">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; exponent);
-<a name="l00298"></a>00298 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a6b723c30c28eb57f611442e0b512f551" title="Calculate the value of 2e.">pow2</a>(<span class="keywordtype">size_t</span> exponent);
-<a name="l00299"></a>00299 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#aba188df925c87a0f33a79328e31e1a50" title="Calculate the value of n! ">factorial</a>(<span class="keywordtype">size_t</span> n);
-<a name="l00300"></a>00300 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a" title="Calculate the square root of an integer.">sqrt</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n);
-<a name="l00302"></a>00302
-<a name="l00304"></a>00304
-<a name="l00307"></a>00307 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; T <a class="code" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5" title="Efficiently converts from an xint::integer to a built-in integer type.">to</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n);
-<a name="l00308"></a>00308 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> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keywordtype">size_t</span> base=10, <span class="keywordtype">bool</span> upperCase=<span class="keyword">false</span>);
-<a name="l00309"></a>00309 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <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=10);
-<a name="l00310"></a>00310 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> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n);
-<a name="l00311"></a>00311 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <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; s);
-<a name="l00313"></a>00313
-<a name="l00315"></a>00315
-<a name="l00318"></a>00318 <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="l00319"></a>00319 <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="l00320"></a>00320 <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="l00321"></a>00321 <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=0);
-<a name="l00322"></a>00322 <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=0);
-<a name="l00323"></a>00323 <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="l00324"></a>00324 <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="l00325"></a>00325 <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="l00326"></a>00326 <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="l00327"></a>00327 <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="l00328"></a>00328 <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="l00330"></a>00330
-<a name="l00332"></a>00332
-<a name="l00338"></a>00338
-<a name="l00339"></a>00339 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#ad5a8cc6e57ee8abdc21be98275657cc8" title="Get the remainder after dividing a number by another.">mod</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">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; modBy);
-<a name="l00340"></a>00340 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#adbbde6cc4b65e9a3df8c52adad9c540f" title="Get the modular product of two integers.">mulmod</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">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; by, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; modulus);
-<a name="l00341"></a>00341 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#aa5564979e78556afdc68dbbd744a0bcb" title="Get the modular product of squaring an integer.">sqrmod</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">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; modulus);
-<a name="l00342"></a>00342 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <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> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; exponent, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp;
-<a name="l00343"></a>00343 modulus, <span class="keywordtype">bool</span> noMontgomery=<span class="keyword">false</span>);
-<a name="l00344"></a>00344 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <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> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; modulus);
-<a name="l00346"></a>00346
-<a name="l00348"></a>00348
-<a name="l00351"></a>00351 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a9c50302b216b64d17d9c1d6350e88036" title="Change the random generator that the library uses.">set_random_generator</a>(T *gen);
-<a name="l00352"></a>00352 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a5da6e81cb78913cc61c9f14857700b5e" title="Generates a random integer with specific attributes.">random_by_size</a>(<span class="keywordtype">size_t</span> sizeInBits, <span class="keywordtype">bool</span> highBitOn=<span class="keyword">false</span>, <span class="keywordtype">bool</span>
-<a name="l00353"></a>00353 lowBitOn=<span class="keyword">false</span>, <span class="keywordtype">bool</span> canBeNegative=<span class="keyword">false</span>);
-<a name="l00355"></a>00355
-<a name="l00357"></a>00357
-<a name="l00360"></a>00360 <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> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> callback=<a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">no_callback</a>);
-<a name="l00361"></a>00361 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <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> sizeInBits, <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> callback=<a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">no_callback</a>);
-<a name="l00363"></a>00363
-<a name="l00365"></a>00365
-<a name="l00370"></a>00370
-<a name="l00371"></a>00371 <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.">integer</a>&amp; n1);
-<a name="l00372"></a>00372 <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.">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="l00373"></a>00373 <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.">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="l00374"></a>00374 <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.">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="l00375"></a>00375 <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.">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="l00376"></a>00376 <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.">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="l00377"></a>00377 <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.">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="l00378"></a>00378
-<a name="l00379"></a>00379 <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="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">operator+</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; a);
-<a name="l00380"></a>00380 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">operator-</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; a);
-<a name="l00381"></a>00381 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">operator+</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="l00382"></a>00382 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">operator-</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="l00383"></a>00383 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#aea36ad9037f109576d4f95ec72b5c825">operator*</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="l00384"></a>00384 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a701217f7824c3e935fca25147da23807">operator/</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="l00385"></a>00385 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#ae0505757986a9c7133552552471aae24">operator%</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="l00386"></a>00386 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a742550f1c62ac8c2bde8e1ceab2a466c">operator&amp;</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="l00387"></a>00387 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#afa8f2a0ac996ad45efc73b2aa056cae2">operator|</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="l00388"></a>00388 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a81722cd257bc950ba7c56a202492544f">operator^</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="l00390"></a>00390
-<a name="l00392"></a>00392
-<a name="l00395"></a>00395 <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="l00396"></a>00396 <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="l00397"></a>00397 <span class="keywordtype">int</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06" title="Compare two integer objects.">compare</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, <span class="keywordtype">bool</span> ignoresign=<span class="keyword">false</span>);
-<a name="l00398"></a>00398 <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> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n);
-<a name="l00399"></a>00399 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; num2);
-<a name="l00400"></a>00400 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a> <a class="code" href="namespacexint.html#a17c5e4e807cfa425f48d9f5b464bc8dc" title="Calculate the Least Common Multiple of two integers.">lcm</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; num2);
-<a name="l00402"></a>00402
-<a name="l00404"></a>00404 <span class="comment">// Exception classes</span>
-<a name="l00405"></a>00405
-<a name="l00408"></a>00408
-<a name="l00412"></a><a class="code" href="classxint_1_1invalid__base.html">00412</a> <span class="keyword">class </span><a class="code" href="classxint_1_1invalid__base.html" title="Exception class.">invalid_base</a>: <span class="keyword">public</span> std::invalid_argument {
-<a name="l00413"></a>00413 <span class="keyword">public</span>:
-<a name="l00414"></a><a class="code" href="classxint_1_1invalid__base.html#a16a577d5584652ca358450cbb55b5d55">00414</a> <a class="code" href="classxint_1_1invalid__base.html#a16a577d5584652ca358450cbb55b5d55">invalid_base</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid base&quot;</span>): invalid_argument(what)
-<a name="l00415"></a>00415 { }
-<a name="l00416"></a>00416 };
-<a name="l00417"></a>00417
-<a name="l00422"></a><a class="code" href="classxint_1_1invalid__digit.html">00422</a> <span class="keyword">class </span><a class="code" href="classxint_1_1invalid__digit.html" title="Exception class.">invalid_digit</a>: <span class="keyword">public</span> std::range_error {
-<a name="l00423"></a>00423 <span class="keyword">public</span>:
-<a name="l00424"></a><a class="code" href="classxint_1_1invalid__digit.html#a832283e75569bd7e9d09f38ebae87a27">00424</a> <a class="code" href="classxint_1_1invalid__digit.html#a832283e75569bd7e9d09f38ebae87a27">invalid_digit</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid digit&quot;</span>): range_error(what)
-<a name="l00425"></a>00425 { }
-<a name="l00426"></a>00426 };
-<a name="l00427"></a>00427
-<a name="l00432"></a><a class="code" href="classxint_1_1invalid__modulus.html">00432</a> <span class="keyword">class </span><a class="code" href="classxint_1_1invalid__modulus.html" title="Exception class.">invalid_modulus</a>: <span class="keyword">public</span> std::invalid_argument {
-<a name="l00433"></a>00433 <span class="keyword">public</span>:
-<a name="l00434"></a><a class="code" href="classxint_1_1invalid__modulus.html#a691026e352d38fc5120c12d6d134e854">00434</a> <a class="code" href="classxint_1_1invalid__modulus.html#a691026e352d38fc5120c12d6d134e854">invalid_modulus</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid modulus&quot;</span>):
-<a name="l00435"></a>00435 invalid_argument(what) { }
-<a name="l00436"></a>00436 };
-<a name="l00437"></a>00437
-<a name="l00442"></a><a class="code" href="classxint_1_1divide__by__zero.html">00442</a> <span class="keyword">class </span><a class="code" href="classxint_1_1divide__by__zero.html" title="Exception class.">divide_by_zero</a>: <span class="keyword">public</span> std::invalid_argument {
-<a name="l00443"></a>00443 <span class="keyword">public</span>:
-<a name="l00444"></a><a class="code" href="classxint_1_1divide__by__zero.html#a31233d42a45ca6ef7078e700fa114ad2">00444</a> <a class="code" href="classxint_1_1divide__by__zero.html#a31233d42a45ca6ef7078e700fa114ad2">divide_by_zero</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;divide by zero error&quot;</span>):
-<a name="l00445"></a>00445 invalid_argument(what) { }
-<a name="l00446"></a>00446 };
-<a name="l00447"></a>00447
-<a name="l00452"></a><a class="code" href="classxint_1_1cannot__represent.html">00452</a> <span class="keyword">class </span><a class="code" href="classxint_1_1cannot__represent.html" title="Exception class.">cannot_represent</a>: <span class="keyword">public</span> std::invalid_argument {
-<a name="l00453"></a>00453 <span class="keyword">public</span>:
-<a name="l00454"></a><a class="code" href="classxint_1_1cannot__represent.html#ae551af601d2ab445a380a9c48e2a1db9">00454</a> <a class="code" href="classxint_1_1cannot__represent.html#ae551af601d2ab445a380a9c48e2a1db9">cannot_represent</a>(<span class="keyword">const</span> std::string&amp; what=
-<a name="l00455"></a>00455 <span class="stringliteral">&quot;cannot represent the requested value&quot;</span>): invalid_argument(what) { }
-<a name="l00456"></a>00456 };
-<a name="l00457"></a>00457
-<a name="l00462"></a><a class="code" href="classxint_1_1too__big.html">00462</a> <span class="keyword">class </span><a class="code" href="classxint_1_1too__big.html" title="Exception class.">too_big</a>: <span class="keyword">public</span> std::range_error {
-<a name="l00463"></a>00463 <span class="keyword">public</span>:
-<a name="l00464"></a><a class="code" href="classxint_1_1too__big.html#af57a30cd18f06bef869c35b9c98f6115">00464</a> <a class="code" href="classxint_1_1too__big.html#af57a30cd18f06bef869c35b9c98f6115">too_big</a>(<span class="keyword">const</span> std::string&amp; what=
-<a name="l00465"></a>00465 <span class="stringliteral">&quot;value out of range for requested conversion&quot;</span>): range_error(what) { }
-<a name="l00466"></a>00466 };
-<a name="l00467"></a>00467
-<a name="l00485"></a><a class="code" href="classxint_1_1not__a__number.html">00485</a> <span class="keyword">class </span><a class="code" href="classxint_1_1not__a__number.html" title="Exception class.">not_a_number</a>: <span class="keyword">public</span> std::runtime_error {
-<a name="l00486"></a>00486 <span class="keyword">public</span>:
-<a name="l00487"></a><a class="code" href="classxint_1_1not__a__number.html#a4ecc5bcc06a5d660176d51fc63c996cd">00487</a> <a class="code" href="classxint_1_1not__a__number.html#a4ecc5bcc06a5d660176d51fc63c996cd">not_a_number</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;attempted to use a Not-a-Number&quot;</span>):
-<a name="l00488"></a>00488 runtime_error(what) { }
-<a name="l00489"></a>00489 };
-<a name="l00490"></a>00490
-<a name="l00497"></a><a class="code" href="classxint_1_1no__strong__random.html">00497</a> <span class="keyword">class </span><a class="code" href="classxint_1_1no__strong__random.html" title="Exception class.">no_strong_random</a>: <span class="keyword">public</span> std::runtime_error {
-<a name="l00498"></a>00498 <span class="keyword">public</span>:
-<a name="l00499"></a><a class="code" href="classxint_1_1no__strong__random.html#a1ed9b4ac87613e636ad8f87bacf25544">00499</a> <a class="code" href="classxint_1_1no__strong__random.html#a1ed9b4ac87613e636ad8f87bacf25544">no_strong_random</a>(<span class="keyword">const</span> std::string&amp; what=
-<a name="l00500"></a>00500 <span class="stringliteral">&quot;system does not have a strong random generator&quot;</span>):
-<a name="l00501"></a>00501 runtime_error(what) { }
-<a name="l00502"></a>00502 };
-<a name="l00503"></a>00503
-<a name="l00516"></a><a class="code" href="classxint_1_1overflow__error.html">00516</a> <span class="keyword">class </span><a class="code" href="classxint_1_1overflow__error.html" title="Exception class.">overflow_error</a>: <span class="keyword">public</span> std::<a class="code" href="classxint_1_1overflow__error.html" title="Exception class.">overflow_error</a> {
-<a name="l00517"></a>00517 <span class="keyword">public</span>:
-<a name="l00518"></a><a class="code" href="classxint_1_1overflow__error.html#a126d839e9138532447e0de9e39d1b4c8">00518</a> <a class="code" href="classxint_1_1overflow__error.html#a126d839e9138532447e0de9e39d1b4c8">overflow_error</a>(<span class="keyword">const</span> std::string&amp; what=
-<a name="l00519"></a>00519 <span class="stringliteral">&quot;overflow error: can&apos;t obtain enough memory to represent the requested number&quot;</span>):
-<a name="l00520"></a>00520 std::<a class="code" href="classxint_1_1overflow__error.html" title="Exception class.">overflow_error</a>(what) { }
-<a name="l00521"></a>00521 };
-<a name="l00523"></a>00523
-<a name="l00525"></a>00525 <span class="comment">// Template function definitions</span>
-<a name="l00526"></a>00526
-<a name="l00540"></a><a class="code" href="classxint_1_1integer.html#a67db70248d9890990c257a1d069192e3">00540</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <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> T&amp; n,
-<a name="l00541"></a>00541 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_integral&lt;T&gt; &gt;::type*,
-<a name="l00542"></a>00542 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_signed&lt;T&gt; &gt;::type*)
-<a name="l00543"></a>00543 {
-<a name="l00544"></a>00544 <span class="keywordflow">if</span> (n &gt;= 0) {
-<a name="l00545"></a>00545 <span class="keywordflow">if</span> (static_cast&lt;T&gt;(n &amp; <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">detail::digit_mask</a>) == n)
-<a name="l00546"></a>00546 _init(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a>(n));
-<a name="l00547"></a>00547 <span class="keywordflow">else</span> _init(boost::uintmax_t(n));
-<a name="l00548"></a>00548 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == (std::numeric_limits&lt;T&gt;::min)()) {
-<a name="l00549"></a>00549 <span class="comment">// Have to treat the minimum number carefully, because -n is not</span>
-<a name="l00550"></a>00550 <span class="comment">// what you&apos;d think it is.</span>
-<a name="l00551"></a>00551 _init(boost::uintmax_t(-(n+1)));
-<a name="l00552"></a>00552 <a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">_set_negative</a>(<span class="keyword">true</span>);
-<a name="l00553"></a>00553 --(*this);
-<a name="l00554"></a>00554 } <span class="keywordflow">else</span> {
-<a name="l00555"></a>00555 _init(boost::uintmax_t(-n));
-<a name="l00556"></a>00556 <a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">_set_negative</a>(<span class="keyword">true</span>);
-<a name="l00557"></a>00557 }
-<a name="l00558"></a>00558 }
-<a name="l00559"></a>00559
-<a name="l00573"></a><a class="code" href="classxint_1_1integer.html#a0cad684bc9d7032497c7178edb91a5eb">00573</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <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> T&amp; n,
-<a name="l00574"></a>00574 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_integral&lt;T&gt; &gt;::type*,
-<a name="l00575"></a>00575 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_unsigned&lt;T&gt; &gt;::type*)
-<a name="l00576"></a>00576 {
-<a name="l00577"></a>00577 <span class="keywordflow">if</span> (static_cast&lt;T&gt;(n &amp; <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">detail::digit_mask</a>) == n)
-<a name="l00578"></a>00578 _init(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a>(n));
-<a name="l00579"></a>00579 <span class="keywordflow">else</span> _init(boost::uintmax_t(n));
-<a name="l00580"></a>00580 }
-<a name="l00581"></a>00581
-<a name="l00592"></a>00592 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00593"></a><a class="code" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">00593</a> T <a class="code" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5" title="Efficiently converts from an xint::integer to a built-in integer type.">to</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n) {
-<a name="l00594"></a>00594 n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00595"></a>00595 <span class="keywordflow">if</span> (n &lt; (std::numeric_limits&lt;T&gt;::min)()
-<a name="l00596"></a>00596 || n &gt; (std::numeric_limits&lt;T&gt;::max)())
-<a name="l00597"></a>00597 <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1too__big.html" title="Exception class.">too_big</a>(<span class="stringliteral">&quot;value out of range for requested conversion&quot;</span>);
-<a name="l00598"></a>00598
-<a name="l00599"></a>00599 T rval=0;
-<a name="l00600"></a>00600 <span class="keywordtype">size_t</span> len=n.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>();
-<a name="l00601"></a>00601 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> x=0; x&lt;len; ++x)
-<a name="l00602"></a>00602 rval=static_cast&lt;T&gt;((rval * <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">detail::digit_overflowbit</a>)
-<a name="l00603"></a>00603 + n.<a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(len-x-1));
-<a name="l00604"></a>00604 <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">sign</a>() &lt; 0) rval *= -1;
-<a name="l00605"></a>00605 <span class="keywordflow">return</span> rval;
-<a name="l00606"></a>00606 }
-<a name="l00607"></a>00607
-<a name="l00621"></a>00621 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00622"></a><a class="code" href="namespacexint.html#a9c50302b216b64d17d9c1d6350e88036">00622</a> <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a9c50302b216b64d17d9c1d6350e88036" title="Change the random generator that the library uses.">set_random_generator</a>(T *gen) {
-<a name="l00623"></a>00623 <a class="code" href="structxint_1_1detail_1_1random__generator.html" title="Support class for the random generator code.">detail::random_generator&lt;T&gt;</a> *obj=<span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1random__generator.html" title="Support class for the random generator code.">detail::random_generator&lt;T&gt;</a>(gen);
-<a name="l00624"></a>00624 <a class="code" href="namespacexint_1_1detail.html#a5f8bba03a6f615a82ebcf94ad7cd4353" title="Support function.">detail::set_random_generator</a>(obj);
-<a name="l00625"></a>00625 }
-<a name="l00626"></a>00626
-<a name="l00629"></a>00629 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits&gt;
-<a name="l00630"></a><a class="code" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">00630</a> <span class="keyword">inline</span> std::basic_ostream&lt;charT,traits&gt;&amp; <a class="code" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">operator&lt;&lt;</a>(std::basic_ostream&lt;charT,
-<a name="l00631"></a>00631 traits&gt;&amp; out, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>&amp; n)
-<a name="l00632"></a>00632 {
-<a name="l00633"></a>00633 <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#a0bca68386478755dc787f981d9cd5606" title="Tests *this for Not-a-Number.">is_nan</a>()) {
-<a name="l00634"></a>00634 out &lt;&lt; <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="l00635"></a>00635 } <span class="keywordflow">else</span> {
-<a name="l00636"></a>00636 <span class="keywordtype">int</span> base=((out.flags() &amp; std::ios::hex) ? 16
-<a name="l00637"></a>00637 : (out.flags() &amp; std::ios::oct) ? 8
-<a name="l00638"></a>00638 : 10);
-<a name="l00639"></a>00639 <span class="keywordtype">bool</span> upperCase=(out.flags() &amp; std::ios::uppercase ? <span class="keyword">true</span> : <span class="keyword">false</span>);
-<a name="l00640"></a>00640
-<a name="l00641"></a>00641 <span class="keywordflow">if</span> (out.flags() &amp; std::ios::showbase) {
-<a name="l00642"></a>00642 <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2" title="Tests the sign of *this.">sign</a>() &lt; 0) out &lt;&lt; <span class="stringliteral">&quot;-&quot;</span>;
-<a name="l00643"></a>00643
-<a name="l00644"></a>00644 <span class="keywordflow">if</span> (base==16 &amp;&amp; upperCase) out &lt;&lt; <span class="stringliteral">&quot;0X&quot;</span>;
-<a name="l00645"></a>00645 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base==16) out &lt;&lt; <span class="stringliteral">&quot;0x&quot;</span>;
-<a name="l00646"></a>00646 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base==8) out &lt;&lt; <span class="stringliteral">&quot;0&quot;</span>;
-<a name="l00647"></a>00647
-<a name="l00648"></a>00648 out &lt;&lt; <a class="code" href="namespacexint.html#a016c9573ff48411847edf86c406946a0" title="Creates a string representation of the specified integer.">xint::to_string</a>(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba" title="Returns the absolute value of an integer.">abs</a>(n), base, upperCase);
-<a name="l00649"></a>00649 } <span class="keywordflow">else</span> {
-<a name="l00650"></a>00650 out &lt;&lt; <a class="code" href="namespacexint.html#a016c9573ff48411847edf86c406946a0" title="Creates a string representation of the specified integer.">xint::to_string</a>(n, base, upperCase);
-<a name="l00651"></a>00651 }
-<a name="l00652"></a>00652 }
-<a name="l00653"></a>00653 <span class="keywordflow">return</span> out;
-<a name="l00654"></a>00654 }
-<a name="l00655"></a>00655
-<a name="l00656"></a>00656 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits&gt;
-<a name="l00657"></a><a class="code" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">00657</a> <span class="keyword">inline</span> std::basic_istream&lt;charT,traits&gt;&amp; <a class="code" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">operator&gt;&gt;</a>(std::basic_istream&lt;charT,
-<a name="l00658"></a>00658 traits&gt;&amp; in, <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>&amp; n)
-<a name="l00659"></a>00659 {
-<a name="l00660"></a>00660 <span class="keywordtype">int</span> hex=(in.flags() &amp; std::ios::hex) ? 1 : 0;
-<a name="l00661"></a>00661 <span class="keywordtype">int</span> dec=(in.flags() &amp; std::ios::dec) ? 1 : 0;
-<a name="l00662"></a>00662 <span class="keywordtype">int</span> oct=(in.flags() &amp; std::ios::oct) ? 1 : 0;
-<a name="l00663"></a>00663 <span class="keywordtype">int</span> count=hex+dec+oct;
-<a name="l00664"></a>00664
-<a name="l00665"></a>00665 <span class="keywordtype">size_t</span> base=<a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a>;
-<a name="l00666"></a>00666 <span class="keywordflow">if</span> (count==1) {
-<a name="l00667"></a>00667 <span class="keywordflow">if</span> (hex) base=16;
-<a name="l00668"></a>00668 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (oct) base=8;
-<a name="l00669"></a>00669 <span class="keywordflow">else</span> base=10;
-<a name="l00670"></a>00670 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count&gt;1) base=10;
-<a name="l00671"></a>00671 <span class="comment">// else auto-base</span>
-<a name="l00672"></a>00672
-<a name="l00673"></a>00673 std::string s;
-<a name="l00674"></a>00674 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">&apos;+&apos;</span>) {
-<a name="l00675"></a>00675 in.ignore();
-<a name="l00676"></a>00676 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">&apos;-&apos;</span>) {
-<a name="l00677"></a>00677 in.ignore();
-<a name="l00678"></a>00678 s.push_back(<span class="charliteral">&apos;-&apos;</span>);
-<a name="l00679"></a>00679 }
-<a name="l00680"></a>00680
-<a name="l00681"></a>00681 <span class="keywordflow">if</span> (base==<a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a>) {
-<a name="l00682"></a>00682 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">&apos;0&apos;</span>) {
-<a name="l00683"></a>00683 in.ignore();
-<a name="l00684"></a>00684 <span class="keywordtype">int</span> c=in.peek();
-<a name="l00685"></a>00685 <span class="keywordflow">if</span> (c==<span class="charliteral">&apos;x&apos;</span> || c==<span class="charliteral">&apos;X&apos;</span>) {
-<a name="l00686"></a>00686 in.ignore();
-<a name="l00687"></a>00687 base=16;
-<a name="l00688"></a>00688 } <span class="keywordflow">else</span> base=8;
-<a name="l00689"></a>00689 } <span class="keywordflow">else</span> base=10;
-<a name="l00690"></a>00690 }
-<a name="l00691"></a>00691
-<a name="l00692"></a>00692 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">&apos;#&apos;</span>) {
-<a name="l00693"></a>00693 <span class="comment">// Must be either #NaN# or an error</span>
-<a name="l00694"></a>00694 <span class="keywordtype">char</span> buffer[6];
-<a name="l00695"></a>00695 std::streamsize size=in.readsome(buffer, 5);
-<a name="l00696"></a>00696 buffer[size]=0;
-<a name="l00697"></a>00697 std::string str(buffer);
-<a name="l00698"></a>00698
-<a name="l00699"></a>00699 <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>) n=<a class="code" href="classxint_1_1integer.html" title="The extended integer class.">integer</a>(<a class="code" href="classxint_1_1not__a__number.html" title="Exception class.">not_a_number</a>());
-<a name="l00700"></a>00700 <span class="keywordflow">else</span> in.setstate(std::ios::failbit);
-<a name="l00701"></a>00701 } <span class="keywordflow">else</span> {
-<a name="l00702"></a>00702 <span class="keywordflow">while</span> (in) {
-<a name="l00703"></a>00703 <span class="keywordtype">int</span> c=in.peek();
-<a name="l00704"></a>00704 <span class="keywordflow">if</span> ((base==8 &amp;&amp; (c&gt;=<span class="charliteral">&apos;0&apos;</span> &amp;&amp; c&lt;=<span class="charliteral">&apos;7&apos;</span>)) ||
-<a name="l00705"></a>00705 (base==10 &amp;&amp; (c&gt;=<span class="charliteral">&apos;0&apos;</span> &amp;&amp; c&lt;=<span class="charliteral">&apos;9&apos;</span>)) ||
-<a name="l00706"></a>00706 (base==16 &amp;&amp; ((c&gt;=<span class="charliteral">&apos;0&apos;</span> &amp;&amp; c&lt;=<span class="charliteral">&apos;9&apos;</span>) || (c&gt;=<span class="charliteral">&apos;a&apos;</span> &amp;&amp; c&lt;=<span class="charliteral">&apos;f&apos;</span>) ||
-<a name="l00707"></a>00707 (c&gt;=<span class="charliteral">&apos;A&apos;</span> &amp;&amp; c&lt;=<span class="charliteral">&apos;F&apos;</span>))))
-<a name="l00708"></a>00708 {
-<a name="l00709"></a>00709 in.ignore();
-<a name="l00710"></a>00710 s.push_back(<span class="keywordtype">char</span>(c));
-<a name="l00711"></a>00711 } <span class="keywordflow">else</span> <span class="keywordflow">break</span>;
-<a name="l00712"></a>00712 }
-<a name="l00713"></a>00713
-<a name="l00714"></a>00714 <a class="code" href="structxint_1_1detail_1_1token.html" title="An empty struct, used in xint::token.">token</a> allow=<a class="code" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e" title="Temprarily counteract an xint::block_exceptions token to allow all exceptions.">allow_exceptions</a>();
-<a name="l00715"></a>00715 <span class="keywordflow">try</span> {
-<a name="l00716"></a>00716 <a class="code" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a> testValue=<a class="code" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0" title="Converts a string into an integer.">xint::from_string</a>(s, base);
-<a name="l00717"></a>00717 n=testValue;
-<a name="l00718"></a>00718 } <span class="keywordflow">catch</span> (<a class="code" href="classxint_1_1invalid__digit.html" title="Exception class.">xint::invalid_digit</a>&amp;) {
-<a name="l00719"></a>00719 <span class="comment">// Catch invalid strings</span>
-<a name="l00720"></a>00720 in.setstate(std::ios::failbit);
-<a name="l00721"></a>00721 }
-<a name="l00722"></a>00722 }
-<a name="l00723"></a>00723
-<a name="l00724"></a>00724 <span class="keywordflow">return</span> in;
-<a name="l00725"></a>00725 }
-<a name="l00727"></a>00727
-<a name="l00728"></a>00728 } <span class="comment">// namespace xint</span>
-<a name="l00729"></a>00729
-<a name="l00730"></a>00730 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_H</span>
+<a name="l00211"></a>00211
+<a name="l00217"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">00217</a> <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> *<a class="code" href="classboost_1_1xint_1_1integer.html#a638bbe92022faee60d3009b60cc1e556">_get_data</a>() { <span class="keywordflow">return</span> data; }
+<a name="l00218"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a0e1746983d1ee61685a09a052278866e">00218</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.">detail::data_t</a> *<a class="code" href="classboost_1_1xint_1_1integer.html#a0e1746983d1ee61685a09a052278866e">_get_data</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data; }
+<a name="l00219"></a>00219 <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">_get_digit</a>(<span class="keywordtype">size_t</span> index) <span class="keyword">const</span>;
+<a name="l00220"></a>00220 <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">_get_digit</a>(<span class="keywordtype">size_t</span> index, <span class="keywordtype">bool</span>) <span class="keyword">const</span>;
+<a name="l00221"></a>00221 <span class="keywordtype">size_t</span> <a class="code" href="classboost_1_1xint_1_1integer.html#ad4a65fa154847321803888988d18d244">_get_length</a>() <span class="keyword">const</span>;
+<a name="l00222"></a>00222 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1integer.html#ae19edd0d1ee7ecc2d7115b3d489fed55">_set_negative</a>(<span class="keywordtype">bool</span> negative);
+<a name="l00223"></a>00223 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a04331a88bb2a975a7349e0c04cb230de">_make_unique</a>();
+<a name="l00224"></a>00224 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>() <span class="keyword">const</span>;
+<a name="l00226"></a>00226
+<a name="l00227"></a>00227 <span class="keyword">private</span>:
+<a name="l00228"></a>00228 <span class="keywordtype">void</span> _init(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> init=0);
+<a name="l00229"></a>00229 <span class="keywordtype">void</span> _init(<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="l00230"></a>00230 <span class="keywordtype">void</span> _init(boost::uintmax_t n);
+<a name="l00231"></a>00231 <span class="keywordtype">void</span> _attach();
+<a name="l00232"></a>00232 <span class="keywordtype">void</span> _detach();
+<a name="l00233"></a>00233
+<a name="l00234"></a>00234 <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="l00235"></a>00235 };
+<a name="l00236"></a>00236
+<a name="l00238"></a>00238
+<a name="l00246"></a><a class="code" href="classboost_1_1xint_1_1strong__random__generator.html">00246</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1strong__random__generator.html" title="A convenience class for cryptographically-secure random numbers.">strong_random_generator</a> {
+<a name="l00247"></a>00247 <span class="keyword">public</span>:
+<a name="l00248"></a><a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">00248</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">result_type</a>;
+<a name="l00249"></a>00249
+<a name="l00250"></a>00250 <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a03606cc093b70870d2661aedccf12c26">strong_random_generator</a>();
+<a name="l00251"></a>00251 <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a38abfddb5372dc090429ba1c4132ad9c">~strong_random_generator</a>();
+<a name="l00252"></a>00252 <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">result_type</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#ae2afe16256095db48543b859530990b8">operator()</a>();
+<a name="l00253"></a>00253
+<a name="l00254"></a><a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a1fec38eaf8f94dbcb866e9ee495a1eef">00254</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a1fec38eaf8f94dbcb866e9ee495a1eef">has_fixed_range</a>;
+<a name="l00255"></a><a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a487dc7bc2b00f9e692957fc7f7b2da25">00255</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">result_type</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a487dc7bc2b00f9e692957fc7f7b2da25">min_value</a>;
+<a name="l00256"></a><a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#ab1ae2657dfc2cbce1511d9991c21a68b">00256</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">result_type</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#ab1ae2657dfc2cbce1511d9991c21a68b">max_value</a>;
+<a name="l00257"></a>00257 <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">result_type</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a6a7fac4a372011d55494e3b5dc7f3471">min</a>() <span class="keyword">const</span>;
+<a name="l00258"></a>00258 <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#afb7490db5d65e0998290663ab7f5e688">result_type</a> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a4fa01769bdeb04ec7c55a7e8cb297922">max</a>() <span class="keyword">const</span>;
+<a name="l00259"></a>00259 <span class="keywordtype">double</span> <a class="code" href="classboost_1_1xint_1_1strong__random__generator.html#a1faed1bfa2b68731ecc2cb15f78e035b">entropy</a>() <span class="keyword">const</span>;
+<a name="l00260"></a>00260
+<a name="l00261"></a>00261 <span class="keyword">private</span>:
+<a name="l00262"></a>00262 <span class="keyword">struct </span>impl_t;
+<a name="l00263"></a>00263 impl_t *impl;
+<a name="l00264"></a>00264 };
+<a name="l00265"></a>00265
+<a name="l00267"></a>00267
+<a name="l00273"></a>00273
+<a name="l00274"></a>00274 <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="l00275"></a>00275 <a class="code" href="structboost_1_1xint_1_1detail_1_1token.html" title="An empty struct, used in xint::token.">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="l00276"></a>00276 <a class="code" href="structboost_1_1xint_1_1detail_1_1token.html" title="An empty struct, used in xint::token.">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="l00278"></a>00278
+<a name="l00280"></a>00280
+<a name="l00283"></a>00283 <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#a19a0491b2825f010e9dd66ca50ab5672" title="Returns the absolute value of an integer.">abs</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);
+<a name="l00284"></a>00284 <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#a84190f7b286de191e8026e440f104731" title="Return the additive inverse of an integer.">negate</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);
+<a name="l00285"></a>00285 <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#a5f82fa6b23e9af01292440248b89210d" title="Calculate the sum of two integers.">add</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">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; addend);
+<a name="l00286"></a>00286 <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#a86eb0099596fe66bd46be244323f44e5" title="Calculate the difference between two integers.">subtract</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">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; subtrahend);
+<a name="l00287"></a>00287 <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#a9e0d6ad947fa3e979ed6e26d7e81ab7f" title="Calculate the product of two integers.">multiply</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">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; multiplicand);
+<a name="l00288"></a>00288 <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#a4892543bb8ccfa8acb188a63a3d4723b" title="Calculate how many dividends would fit into divisor.">divide</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; dividend, <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; divisor);
+<a name="l00289"></a>00289 std::pair&lt;integer, integer&gt; <a class="code" href="namespaceboost_1_1xint.html#a0fff3b235a18c0b3243a1ccc01a68f23" title="Calculate how many dividends would fit into divisor, with the remainder.">divide_r</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; dividend, <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp;
+<a name="l00290"></a>00290 divisor);
+<a name="l00292"></a>00292
+<a name="l00294"></a>00294
+<a name="l00297"></a>00297 <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#afbba1eeb86e4e7610a75afbb89d594e3" title="Calculate the value of n2.">sqr</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);
+<a name="l00298"></a>00298 <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#aa7d7b30f587c98ad31b8d421b8813c61" title="Calculate the value of ne.">pow</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">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; exponent);
+<a name="l00299"></a>00299 <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#af710e4b39cfa66096c202f17d12cc7b7" title="Calculate the value of 2e.">pow2</a>(<span class="keywordtype">size_t</span> exponent);
+<a name="l00300"></a>00300 <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#a942e346f6e6d069dc19c28e7e56634ab" title="Calculate the value of n! ">factorial</a>(<span class="keywordtype">size_t</span> n);
+<a name="l00301"></a>00301 <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#afdf79cc57e434b9c7f4cb3b6bd68dbd6" title="Calculate the square root of an integer.">sqrt</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);
+<a name="l00303"></a>00303
+<a name="l00305"></a>00305
+<a name="l00308"></a>00308 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; T <a class="code" href="namespaceboost_1_1xint.html#ae90546b0cb6cf2f27fc5ce65bb43a21e" title="Efficiently converts from an xint::integer to a built-in integer type.">to</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);
+<a name="l00309"></a>00309 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> <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> base=10, <span class="keywordtype">bool</span> upperCase=<span class="keyword">false</span>);
+<a name="l00310"></a>00310 <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#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=10);
+<a name="l00311"></a>00311 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> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n);
+<a name="l00312"></a>00312 <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#a58aa7dc532f0d8a1557c9ec8f512602e" title="Converts a binary representation of a number into an integer.">from_binary</a>(<span class="keyword">const</span> std::string&amp; s);
+<a name="l00314"></a>00314
+<a name="l00316"></a>00316
+<a name="l00319"></a>00319 <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="l00320"></a>00320 <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="l00321"></a>00321 <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="l00322"></a>00322 <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=0);
+<a name="l00323"></a>00323 <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=0);
+<a name="l00324"></a>00324 <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="l00325"></a>00325 <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="l00326"></a>00326 <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="l00327"></a>00327 <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="l00328"></a>00328 <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="l00329"></a>00329 <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="l00331"></a>00331
+<a name="l00333"></a>00333
+<a name="l00339"></a>00339
+<a name="l00340"></a>00340 <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#a9b8c31b64eb9700beea8b95edec31a73" title="Get the remainder after dividing a number by another.">mod</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">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; modBy);
+<a name="l00341"></a>00341 <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#ac9af74aa79d9cc7f51c57cc7707824ba" title="Get the modular product of two integers.">mulmod</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">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; by, <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; modulus);
+<a name="l00342"></a>00342 <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#adb9a9cb117e7346a3b56c369cd438b0e" title="Get the modular product of squaring an integer.">sqrmod</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">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; modulus);
+<a name="l00343"></a>00343 <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#a35e7556e9f2d8fb944dbf732ed3f96cd" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</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">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; exponent, <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp;
+<a name="l00344"></a>00344 modulus, <span class="keywordtype">bool</span> noMontgomery=<span class="keyword">false</span>);
+<a name="l00345"></a>00345 <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#a1e2477157ea768d8c57fac1c31a8f7ca" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; modulus);
+<a name="l00347"></a>00347
+<a name="l00349"></a>00349
+<a name="l00352"></a>00352 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a201d33fafe577133130cd16dec3422b6" title="Change the random generator that the library uses.">set_random_generator</a>(T *gen);
+<a name="l00353"></a>00353 <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#ac8d879e19a6608b21184236e00806be5" title="Generates a random integer with specific attributes.">random_by_size</a>(<span class="keywordtype">size_t</span> sizeInBits, <span class="keywordtype">bool</span> highBitOn=<span class="keyword">false</span>, <span class="keywordtype">bool</span>
+<a name="l00354"></a>00354 lowBitOn=<span class="keyword">false</span>, <span class="keywordtype">bool</span> canBeNegative=<span class="keyword">false</span>);
+<a name="l00356"></a>00356
+<a name="l00358"></a>00358
+<a name="l00361"></a>00361 <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> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a> callback=<a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">no_callback</a>);
+<a name="l00362"></a>00362 <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#aaf58d56e1a47ac55e0aa97a55e6fb2c9" title="Generate a randomly-generated prime number of a particular bit-size.">random_prime</a>(<span class="keywordtype">size_t</span> sizeInBits, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a> callback=<a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">no_callback</a>);
+<a name="l00364"></a>00364
+<a name="l00366"></a>00366
+<a name="l00371"></a>00371
+<a name="l00372"></a>00372 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac2d1ae62e7e6d741531d6e232b851935">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; n1);
+<a name="l00373"></a>00373 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a0497944d7fa977eca5e5f6a140db07c3">operator&lt;</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="l00374"></a>00374 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#aa378abd0c3687df031cd2fc314a27940">operator&gt;</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="l00375"></a>00375 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a0af77b5d4ce9b3b997794b28ae0d4a8b">operator&lt;=</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="l00376"></a>00376 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a7666d6d0603654e5c43a807e8907177c">operator&gt;=</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="l00377"></a>00377 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ae95207d18c8f5159d57807726676f6d6">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; 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="l00378"></a>00378 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#abf694043a7a1d64f35e90a275208ff2a">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; 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="l00379"></a>00379
+<a name="l00380"></a>00380 <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="namespaceboost_1_1xint.html#af0e2812ac56a264cd9a86243306ec0fb">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; a);
+<a name="l00381"></a>00381 <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#a92ee4f1138215a36f4374a356fa5a359">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; a);
+<a name="l00382"></a>00382 <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#af0e2812ac56a264cd9a86243306ec0fb">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; 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="l00383"></a>00383 <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#a92ee4f1138215a36f4374a356fa5a359">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; 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="l00384"></a>00384 <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#ae3770c0e356d50b5f3e2be573e6100cd">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; 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="l00385"></a>00385 <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#a9a2859e7b5e532eaa0cc51aba4f958c2">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; 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="l00386"></a>00386 <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#a115e84b56b4e5e00d0b2b5c8a407ef97">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; 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="l00387"></a>00387 <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#ab054d123a003a31c06bac92a1f325805">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; 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="l00388"></a>00388 <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#a4896e1fc3c8d0adb4911cf5b78304f49">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; 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="l00389"></a>00389 <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#a9524e5e34757cb10a146012bc4192643">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; 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="l00391"></a>00391
+<a name="l00393"></a>00393
+<a name="l00396"></a>00396 <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="l00397"></a>00397 <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="l00398"></a>00398 <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> <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, <span class="keywordtype">bool</span> ignoresign=<span class="keyword">false</span>);
+<a name="l00399"></a>00399 <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> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; n);
+<a name="l00400"></a>00400 <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#ab551ac5968fdbcc639318b6f294da2cd" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; num2);
+<a name="l00401"></a>00401 <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#a0096ae57d50e4fe8b5413ea7a4e60495" title="Calculate the Least Common Multiple of two integers.">lcm</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; num1, <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">integer</a>&amp; num2);
+<a name="l00403"></a>00403
+<a name="l00405"></a>00405 <span class="comment">// Exception classes</span>
+<a name="l00406"></a>00406
+<a name="l00409"></a>00409
+<a name="l00413"></a><a class="code" href="classboost_1_1xint_1_1invalid__base.html">00413</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1invalid__base.html" title="Exception class.">invalid_base</a>: <span class="keyword">public</span> std::invalid_argument {
+<a name="l00414"></a>00414 <span class="keyword">public</span>:
+<a name="l00415"></a><a class="code" href="classboost_1_1xint_1_1invalid__base.html#a73c7125da5b1425c27b9f20aa3845078">00415</a> <a class="code" href="classboost_1_1xint_1_1invalid__base.html#a73c7125da5b1425c27b9f20aa3845078">invalid_base</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid base&quot;</span>): invalid_argument(what)
+<a name="l00416"></a>00416 { }
+<a name="l00417"></a>00417 };
+<a name="l00418"></a>00418
+<a name="l00423"></a><a class="code" href="classboost_1_1xint_1_1invalid__digit.html">00423</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1invalid__digit.html" title="Exception class.">invalid_digit</a>: <span class="keyword">public</span> std::range_error {
+<a name="l00424"></a>00424 <span class="keyword">public</span>:
+<a name="l00425"></a><a class="code" href="classboost_1_1xint_1_1invalid__digit.html#a02be633b5225e22839b547c4b0e8d4ca">00425</a> <a class="code" href="classboost_1_1xint_1_1invalid__digit.html#a02be633b5225e22839b547c4b0e8d4ca">invalid_digit</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid digit&quot;</span>): range_error(what)
+<a name="l00426"></a>00426 { }
+<a name="l00427"></a>00427 };
+<a name="l00428"></a>00428
+<a name="l00433"></a><a class="code" href="classboost_1_1xint_1_1invalid__modulus.html">00433</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1invalid__modulus.html" title="Exception class.">invalid_modulus</a>: <span class="keyword">public</span> std::invalid_argument {
+<a name="l00434"></a>00434 <span class="keyword">public</span>:
+<a name="l00435"></a><a class="code" href="classboost_1_1xint_1_1invalid__modulus.html#aab32f87b83c6d8deca7d3ce4e887e03b">00435</a> <a class="code" href="classboost_1_1xint_1_1invalid__modulus.html#aab32f87b83c6d8deca7d3ce4e887e03b">invalid_modulus</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid modulus&quot;</span>):
+<a name="l00436"></a>00436 invalid_argument(what) { }
+<a name="l00437"></a>00437 };
+<a name="l00438"></a>00438
+<a name="l00443"></a><a class="code" href="classboost_1_1xint_1_1divide__by__zero.html">00443</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1divide__by__zero.html" title="Exception class.">divide_by_zero</a>: <span class="keyword">public</span> std::invalid_argument {
+<a name="l00444"></a>00444 <span class="keyword">public</span>:
+<a name="l00445"></a><a class="code" href="classboost_1_1xint_1_1divide__by__zero.html#a67f133dc2856d38d2664f3c8d8c73fe4">00445</a> <a class="code" href="classboost_1_1xint_1_1divide__by__zero.html#a67f133dc2856d38d2664f3c8d8c73fe4">divide_by_zero</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;divide by zero error&quot;</span>):
+<a name="l00446"></a>00446 invalid_argument(what) { }
+<a name="l00447"></a>00447 };
+<a name="l00448"></a>00448
+<a name="l00453"></a><a class="code" href="classboost_1_1xint_1_1cannot__represent.html">00453</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1cannot__represent.html" title="Exception class.">cannot_represent</a>: <span class="keyword">public</span> std::invalid_argument {
+<a name="l00454"></a>00454 <span class="keyword">public</span>:
+<a name="l00455"></a><a class="code" href="classboost_1_1xint_1_1cannot__represent.html#a940b731d15c77c43abef5d6053fd5d75">00455</a> <a class="code" href="classboost_1_1xint_1_1cannot__represent.html#a940b731d15c77c43abef5d6053fd5d75">cannot_represent</a>(<span class="keyword">const</span> std::string&amp; what=
+<a name="l00456"></a>00456 <span class="stringliteral">&quot;cannot represent the requested value&quot;</span>): invalid_argument(what) { }
+<a name="l00457"></a>00457 };
+<a name="l00458"></a>00458
+<a name="l00463"></a><a class="code" href="classboost_1_1xint_1_1too__big.html">00463</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1too__big.html" title="Exception class.">too_big</a>: <span class="keyword">public</span> std::range_error {
+<a name="l00464"></a>00464 <span class="keyword">public</span>:
+<a name="l00465"></a><a class="code" href="classboost_1_1xint_1_1too__big.html#a91ca4f8a23e008c2ffc13608179226f3">00465</a> <a class="code" href="classboost_1_1xint_1_1too__big.html#a91ca4f8a23e008c2ffc13608179226f3">too_big</a>(<span class="keyword">const</span> std::string&amp; what=
+<a name="l00466"></a>00466 <span class="stringliteral">&quot;value out of range for requested conversion&quot;</span>): range_error(what) { }
+<a name="l00467"></a>00467 };
+<a name="l00468"></a>00468
+<a name="l00486"></a><a class="code" href="classboost_1_1xint_1_1not__a__number.html">00486</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1not__a__number.html" title="Exception class.">not_a_number</a>: <span class="keyword">public</span> std::runtime_error {
+<a name="l00487"></a>00487 <span class="keyword">public</span>:
+<a name="l00488"></a><a class="code" href="classboost_1_1xint_1_1not__a__number.html#a61a42fa00f7424f0e04e1f859fd40632">00488</a> <a class="code" href="classboost_1_1xint_1_1not__a__number.html#a61a42fa00f7424f0e04e1f859fd40632">not_a_number</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;attempted to use a Not-a-Number&quot;</span>):
+<a name="l00489"></a>00489 runtime_error(what) { }
+<a name="l00490"></a>00490 };
+<a name="l00491"></a>00491
+<a name="l00498"></a><a class="code" href="classboost_1_1xint_1_1no__strong__random.html">00498</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1no__strong__random.html" title="Exception class.">no_strong_random</a>: <span class="keyword">public</span> std::runtime_error {
+<a name="l00499"></a>00499 <span class="keyword">public</span>:
+<a name="l00500"></a><a class="code" href="classboost_1_1xint_1_1no__strong__random.html#a4c6cd31c06363212c0f1e21ba6718d58">00500</a> <a class="code" href="classboost_1_1xint_1_1no__strong__random.html#a4c6cd31c06363212c0f1e21ba6718d58">no_strong_random</a>(<span class="keyword">const</span> std::string&amp; what=
+<a name="l00501"></a>00501 <span class="stringliteral">&quot;system does not have a strong random generator&quot;</span>):
+<a name="l00502"></a>00502 runtime_error(what) { }
+<a name="l00503"></a>00503 };
+<a name="l00504"></a>00504
+<a name="l00517"></a><a class="code" href="classboost_1_1xint_1_1overflow__error.html">00517</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1overflow__error.html" title="Exception class.">overflow_error</a>: <span class="keyword">public</span> std::<a class="code" href="classboost_1_1xint_1_1overflow__error.html" title="Exception class.">overflow_error</a> {
+<a name="l00518"></a>00518 <span class="keyword">public</span>:
+<a name="l00519"></a><a class="code" href="classboost_1_1xint_1_1overflow__error.html#a6f37c836a5c2083a7be660c0bf1aeb00">00519</a> <a class="code" href="classboost_1_1xint_1_1overflow__error.html#a6f37c836a5c2083a7be660c0bf1aeb00">overflow_error</a>(<span class="keyword">const</span> std::string&amp; what=
+<a name="l00520"></a>00520 <span class="stringliteral">&quot;overflow error: can&apos;t obtain enough memory to represent the requested number&quot;</span>):
+<a name="l00521"></a>00521 std::<a class="code" href="classboost_1_1xint_1_1overflow__error.html" title="Exception class.">overflow_error</a>(what) { }
+<a name="l00522"></a>00522 };
+<a name="l00524"></a>00524
+<a name="l00526"></a>00526 <span class="comment">// Template function definitions</span>
+<a name="l00527"></a>00527
+<a name="l00541"></a><a class="code" href="classboost_1_1xint_1_1integer.html#acf287891cafa7f5b20f5e56476fa1fc6">00541</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <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> T&amp; n,
+<a name="l00542"></a>00542 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_integral&lt;T&gt; &gt;::type*,
+<a name="l00543"></a>00543 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_signed&lt;T&gt; &gt;::type*)
+<a name="l00544"></a>00544 {
+<a name="l00545"></a>00545 <span class="keywordflow">if</span> (n &gt;= 0) {
+<a name="l00546"></a>00546 <span class="keywordflow">if</span> (static_cast&lt;T&gt;(n &amp; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">detail::digit_mask</a>) == n)
+<a name="l00547"></a>00547 _init(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a>(n));
+<a name="l00548"></a>00548 <span class="keywordflow">else</span> _init(boost::uintmax_t(n));
+<a name="l00549"></a>00549 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == (std::numeric_limits&lt;T&gt;::min)()) {
+<a name="l00550"></a>00550 <span class="comment">// Have to treat the minimum number carefully, because -n is not</span>
+<a name="l00551"></a>00551 <span class="comment">// what you&apos;d think it is.</span>
+<a name="l00552"></a>00552 _init(boost::uintmax_t(-(n+1)));
+<a name="l00553"></a>00553 <a class="code" href="classboost_1_1xint_1_1integer.html#ae19edd0d1ee7ecc2d7115b3d489fed55">_set_negative</a>(<span class="keyword">true</span>);
+<a name="l00554"></a>00554 --(*this);
+<a name="l00555"></a>00555 } <span class="keywordflow">else</span> {
+<a name="l00556"></a>00556 _init(boost::uintmax_t(-n));
+<a name="l00557"></a>00557 <a class="code" href="classboost_1_1xint_1_1integer.html#ae19edd0d1ee7ecc2d7115b3d489fed55">_set_negative</a>(<span class="keyword">true</span>);
+<a name="l00558"></a>00558 }
+<a name="l00559"></a>00559 }
+<a name="l00560"></a>00560
+<a name="l00574"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a9941bbf92bcfa48233110c451e676f64">00574</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <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> T&amp; n,
+<a name="l00575"></a>00575 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_integral&lt;T&gt; &gt;::type*,
+<a name="l00576"></a>00576 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_unsigned&lt;T&gt; &gt;::type*)
+<a name="l00577"></a>00577 {
+<a name="l00578"></a>00578 <span class="keywordflow">if</span> (static_cast&lt;T&gt;(n &amp; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">detail::digit_mask</a>) == n)
+<a name="l00579"></a>00579 _init(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a>(n));
+<a name="l00580"></a>00580 <span class="keywordflow">else</span> _init(boost::uintmax_t(n));
+<a name="l00581"></a>00581 }
+<a name="l00582"></a>00582
+<a name="l00593"></a>00593 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00594"></a><a class="code" href="namespaceboost_1_1xint.html#ae90546b0cb6cf2f27fc5ce65bb43a21e">00594</a> T <a class="code" href="namespaceboost_1_1xint.html#ae90546b0cb6cf2f27fc5ce65bb43a21e" title="Efficiently converts from an xint::integer to a built-in integer type.">to</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) {
+<a name="l00595"></a>00595 n.<a class="code" href="classboost_1_1xint_1_1integer.html#a488e6040ec9bd3cd97279ef53c014773">_throw_if_nan</a>();
+<a name="l00596"></a>00596 <span class="keywordflow">if</span> (n &lt; (std::numeric_limits&lt;T&gt;::min)()
+<a name="l00597"></a>00597 || n &gt; (std::numeric_limits&lt;T&gt;::max)())
+<a name="l00598"></a>00598 <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1too__big.html" title="Exception class.">too_big</a>(<span class="stringliteral">&quot;value out of range for requested conversion&quot;</span>);
+<a name="l00599"></a>00599
+<a name="l00600"></a>00600 T rval=0;
+<a name="l00601"></a>00601 <span class="keywordtype">size_t</span> len=n.<a class="code" href="classboost_1_1xint_1_1integer.html#ad4a65fa154847321803888988d18d244">_get_length</a>();
+<a name="l00602"></a>00602 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> x=0; x&lt;len; ++x)
+<a name="l00603"></a>00603 rval=static_cast&lt;T&gt;((rval * <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">detail::digit_overflowbit</a>)
+<a name="l00604"></a>00604 + n.<a class="code" href="classboost_1_1xint_1_1integer.html#acb5a0571dc9544921e603c00a0c6c93a">_get_digit</a>(len-x-1));
+<a name="l00605"></a>00605 <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>() &lt; 0) rval *= -1;
+<a name="l00606"></a>00606 <span class="keywordflow">return</span> rval;
+<a name="l00607"></a>00607 }
+<a name="l00608"></a>00608
+<a name="l00622"></a>00622 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00623"></a><a class="code" href="namespaceboost_1_1xint.html#a201d33fafe577133130cd16dec3422b6">00623</a> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a201d33fafe577133130cd16dec3422b6" title="Change the random generator that the library uses.">set_random_generator</a>(T *gen) {
+<a name="l00624"></a>00624 <a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html" title="Support class for the random generator code.">detail::random_generator&lt;T&gt;</a> *obj=<span class="keyword">new</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1random__generator.html" title="Support class for the random generator code.">detail::random_generator&lt;T&gt;</a>(gen);
+<a name="l00625"></a>00625 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a17e1b4fcb11ff18fd2641dc43ee905b8" title="Support function.">detail::set_random_generator</a>(obj);
+<a name="l00626"></a>00626 }
+<a name="l00627"></a>00627
+<a name="l00630"></a>00630 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits&gt;
+<a name="l00631"></a><a class="code" href="namespaceboost_1_1xint.html#ade3e222abd81f9935cd0c003f345ed57">00631</a> <span class="keyword">inline</span> std::basic_ostream&lt;charT,traits&gt;&amp; <a class="code" href="namespaceboost_1_1xint.html#ade3e222abd81f9935cd0c003f345ed57">operator&lt;&lt;</a>(std::basic_ostream&lt;charT,
+<a name="l00632"></a>00632 traits&gt;&amp; out, <span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">xint::integer</a>&amp; n)
+<a name="l00633"></a>00633 {
+<a name="l00634"></a>00634 <span class="keywordflow">if</span> (n.<a class="code" href="classboost_1_1xint_1_1integer.html#a65fb2696f8506a6db16b8fb422c98ff5" title="Tests *this for Not-a-Number.">is_nan</a>()) {
+<a name="l00635"></a>00635 out &lt;&lt; <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="l00636"></a>00636 } <span class="keywordflow">else</span> {
+<a name="l00637"></a>00637 <span class="keywordtype">int</span> base=((out.flags() &amp; std::ios::hex) ? 16
+<a name="l00638"></a>00638 : (out.flags() &amp; std::ios::oct) ? 8
+<a name="l00639"></a>00639 : 10);
+<a name="l00640"></a>00640 <span class="keywordtype">bool</span> upperCase=(out.flags() &amp; std::ios::uppercase ? <span class="keyword">true</span> : <span class="keyword">false</span>);
+<a name="l00641"></a>00641
+<a name="l00642"></a>00642 <span class="keywordflow">if</span> (out.flags() &amp; std::ios::showbase) {
+<a name="l00643"></a>00643 <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>() &lt; 0) out &lt;&lt; <span class="stringliteral">&quot;-&quot;</span>;
+<a name="l00644"></a>00644
+<a name="l00645"></a>00645 <span class="keywordflow">if</span> (base==16 &amp;&amp; upperCase) out &lt;&lt; <span class="stringliteral">&quot;0X&quot;</span>;
+<a name="l00646"></a>00646 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base==16) out &lt;&lt; <span class="stringliteral">&quot;0x&quot;</span>;
+<a name="l00647"></a>00647 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base==8) out &lt;&lt; <span class="stringliteral">&quot;0&quot;</span>;
+<a name="l00648"></a>00648
+<a name="l00649"></a>00649 out &lt;&lt; <a class="code" href="namespaceboost_1_1xint.html#ac0454fdc47e70a493c7bf5d92dda33d4" title="Creates a string representation of the specified integer.">xint::to_string</a>(<a class="code" href="namespaceboost_1_1xint.html#a19a0491b2825f010e9dd66ca50ab5672" title="Returns the absolute value of an integer.">abs</a>(n), base, upperCase);
+<a name="l00650"></a>00650 } <span class="keywordflow">else</span> {
+<a name="l00651"></a>00651 out &lt;&lt; <a class="code" href="namespaceboost_1_1xint.html#ac0454fdc47e70a493c7bf5d92dda33d4" title="Creates a string representation of the specified integer.">xint::to_string</a>(n, base, upperCase);
+<a name="l00652"></a>00652 }
+<a name="l00653"></a>00653 }
+<a name="l00654"></a>00654 <span class="keywordflow">return</span> out;
+<a name="l00655"></a>00655 }
+<a name="l00656"></a>00656
+<a name="l00657"></a>00657 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits&gt;
+<a name="l00658"></a><a class="code" href="namespaceboost_1_1xint.html#a6828d3d928f3a859f82a04b70634e4b3">00658</a> <span class="keyword">inline</span> std::basic_istream&lt;charT,traits&gt;&amp; <a class="code" href="namespaceboost_1_1xint.html#a6828d3d928f3a859f82a04b70634e4b3">operator&gt;&gt;</a>(std::basic_istream&lt;charT,
+<a name="l00659"></a>00659 traits&gt;&amp; in, <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">xint::integer</a>&amp; n)
+<a name="l00660"></a>00660 {
+<a name="l00661"></a>00661 <span class="keywordtype">int</span> hex=(in.flags() &amp; std::ios::hex) ? 1 : 0;
+<a name="l00662"></a>00662 <span class="keywordtype">int</span> dec=(in.flags() &amp; std::ios::dec) ? 1 : 0;
+<a name="l00663"></a>00663 <span class="keywordtype">int</span> oct=(in.flags() &amp; std::ios::oct) ? 1 : 0;
+<a name="l00664"></a>00664 <span class="keywordtype">int</span> count=hex+dec+oct;
+<a name="l00665"></a>00665
+<a name="l00666"></a>00666 <span class="keywordtype">size_t</span> base=<a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">autobase</a>;
+<a name="l00667"></a>00667 <span class="keywordflow">if</span> (count==1) {
+<a name="l00668"></a>00668 <span class="keywordflow">if</span> (hex) base=16;
+<a name="l00669"></a>00669 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (oct) base=8;
+<a name="l00670"></a>00670 <span class="keywordflow">else</span> base=10;
+<a name="l00671"></a>00671 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count&gt;1) base=10;
+<a name="l00672"></a>00672 <span class="comment">// else auto-base</span>
+<a name="l00673"></a>00673
+<a name="l00674"></a>00674 std::string s;
+<a name="l00675"></a>00675 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">&apos;+&apos;</span>) {
+<a name="l00676"></a>00676 in.ignore();
+<a name="l00677"></a>00677 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">&apos;-&apos;</span>) {
+<a name="l00678"></a>00678 in.ignore();
+<a name="l00679"></a>00679 s.push_back(<span class="charliteral">&apos;-&apos;</span>);
+<a name="l00680"></a>00680 }
+<a name="l00681"></a>00681
+<a name="l00682"></a>00682 <span class="keywordflow">if</span> (base==<a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">autobase</a>) {
+<a name="l00683"></a>00683 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">&apos;0&apos;</span>) {
+<a name="l00684"></a>00684 in.ignore();
+<a name="l00685"></a>00685 <span class="keywordtype">int</span> c=in.peek();
+<a name="l00686"></a>00686 <span class="keywordflow">if</span> (c==<span class="charliteral">&apos;x&apos;</span> || c==<span class="charliteral">&apos;X&apos;</span>) {
+<a name="l00687"></a>00687 in.ignore();
+<a name="l00688"></a>00688 base=16;
+<a name="l00689"></a>00689 } <span class="keywordflow">else</span> base=8;
+<a name="l00690"></a>00690 } <span class="keywordflow">else</span> base=10;
+<a name="l00691"></a>00691 }
+<a name="l00692"></a>00692
+<a name="l00693"></a>00693 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">&apos;#&apos;</span>) {
+<a name="l00694"></a>00694 <span class="comment">// Must be either #NaN# or an error</span>
+<a name="l00695"></a>00695 <span class="keywordtype">char</span> buffer[6];
+<a name="l00696"></a>00696 std::streamsize size=in.readsome(buffer, 5);
+<a name="l00697"></a>00697 buffer[size]=0;
+<a name="l00698"></a>00698 std::string str(buffer);
+<a name="l00699"></a>00699
+<a name="l00700"></a>00700 <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>) n=<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_1not__a__number.html" title="Exception class.">not_a_number</a>());
+<a name="l00701"></a>00701 <span class="keywordflow">else</span> in.setstate(std::ios::failbit);
+<a name="l00702"></a>00702 } <span class="keywordflow">else</span> {
+<a name="l00703"></a>00703 <span class="keywordflow">while</span> (in) {
+<a name="l00704"></a>00704 <span class="keywordtype">int</span> c=in.peek();
+<a name="l00705"></a>00705 <span class="keywordflow">if</span> ((base==8 &amp;&amp; (c&gt;=<span class="charliteral">&apos;0&apos;</span> &amp;&amp; c&lt;=<span class="charliteral">&apos;7&apos;</span>)) ||
+<a name="l00706"></a>00706 (base==10 &amp;&amp; (c&gt;=<span class="charliteral">&apos;0&apos;</span> &amp;&amp; c&lt;=<span class="charliteral">&apos;9&apos;</span>)) ||
+<a name="l00707"></a>00707 (base==16 &amp;&amp; ((c&gt;=<span class="charliteral">&apos;0&apos;</span> &amp;&amp; c&lt;=<span class="charliteral">&apos;9&apos;</span>) || (c&gt;=<span class="charliteral">&apos;a&apos;</span> &amp;&amp; c&lt;=<span class="charliteral">&apos;f&apos;</span>) ||
+<a name="l00708"></a>00708 (c&gt;=<span class="charliteral">&apos;A&apos;</span> &amp;&amp; c&lt;=<span class="charliteral">&apos;F&apos;</span>))))
+<a name="l00709"></a>00709 {
+<a name="l00710"></a>00710 in.ignore();
+<a name="l00711"></a>00711 s.push_back(<span class="keywordtype">char</span>(c));
+<a name="l00712"></a>00712 } <span class="keywordflow">else</span> <span class="keywordflow">break</span>;
+<a name="l00713"></a>00713 }
+<a name="l00714"></a>00714
+<a name="l00715"></a>00715 <a class="code" href="structboost_1_1xint_1_1detail_1_1token.html" title="An empty struct, used in xint::token.">token</a> allow=<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="l00716"></a>00716 <span class="keywordflow">try</span> {
+<a name="l00717"></a>00717 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">xint::integer</a> testValue=<a class="code" href="namespaceboost_1_1xint.html#af263105e57d48eff5fe14d4d03ca10e1" title="Converts a string into an integer.">xint::from_string</a>(s, base);
+<a name="l00718"></a>00718 n=testValue;
+<a name="l00719"></a>00719 } <span class="keywordflow">catch</span> (<a class="code" href="classboost_1_1xint_1_1invalid__digit.html" title="Exception class.">xint::invalid_digit</a>&amp;) {
+<a name="l00720"></a>00720 <span class="comment">// Catch invalid strings</span>
+<a name="l00721"></a>00721 in.setstate(std::ios::failbit);
+<a name="l00722"></a>00722 }
+<a name="l00723"></a>00723 }
+<a name="l00724"></a>00724
+<a name="l00725"></a>00725 <span class="keywordflow">return</span> in;
+<a name="l00726"></a>00726 }
+<a name="l00728"></a>00728
+<a name="l00729"></a>00729 } <span class="comment">// namespace xint</span>
+<a name="l00730"></a>00730 } <span class="comment">// namespace boost</span>
+<a name="l00731"></a>00731
+<a name="l00732"></a>00732 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_H</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/xint__data__t_8hpp.html
==============================================================================
--- sandbox/xint/doc/xint__data__t_8hpp.html (original)
+++ sandbox/xint/doc/xint__data__t_8hpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -27,36 +27,37 @@
 </div>
 <div class="contents">
 <h1>xint_data_t.hpp File Reference</h1>
-<p>Internal details of an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>.
+<p>Internal details of an xint::integer.
 <a href="#_details">More...</a></p>
 <code>#include &lt;vector&gt;</code><br/>
 
 <p>Go to the source code of this file.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td colspan="2"><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the internal details of an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>. More...<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds information determining how many quick-digits to use. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html">boost::xint::detail::data_t</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the internal details of an <a class="el" href="classboost_1_1xint_1_1integer.html" title="The extended integer class.">xint::integer</a>. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html">boost::xint::detail::data_t::QuickDigits</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds information determining how many quick-digits to use. More...<br/></td></tr>
 <tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="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>Internal details of an <a class="el" href="classxint_1_1integer.html" title="The extended integer class.">xint::integer</a>. </p>
-<p>This file contains the declaration for the <a class="el" href="namespacexint.html" title="All of the functions in the XInt library are within this namespace.">xint</a> data structure. It should only be used by the library itself. </p>
+<p>Internal details of an xint::integer. </p>
+<p>This file contains the declaration for the xint data structure. It should only be used by the library itself. </p>
 
 <p>Definition in file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</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/xint__data__t_8hpp_source.html
==============================================================================
--- sandbox/xint/doc/xint__data__t_8hpp_source.html (original)
+++ sandbox/xint/doc/xint__data__t_8hpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -44,65 +44,67 @@
 <a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor"> #include &lt;vector&gt;</span>
 <a name="l00026"></a>00026 <span class="preprocessor">#endif</span>
 <a name="l00027"></a>00027 <span class="preprocessor"></span>
-<a name="l00028"></a>00028 <span class="keyword">namespace </span>xint {
-<a name="l00029"></a>00029 <span class="keyword">namespace </span>detail {
-<a name="l00030"></a>00030
-<a name="l00036"></a><a class="code" href="structxint_1_1detail_1_1data__t.html">00036</a> <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">data_t</a> {
-<a name="l00044"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">00044</a> <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html" title="Holds information determining how many quick-digits to use.">QuickDigits</a> {
-<a name="l00045"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#af5323a8fbfdfaa3cae371872ec865fc5">00045</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#af5323a8fbfdfaa3cae371872ec865fc5">intbits</a>=std::numeric_limits&lt;unsigned int&gt;::digits;
-<a name="l00046"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092">00046</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092" title="We want at least enough QuickDigits to hold two standard int types.">suggested</a>=(2*<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#af5323a8fbfdfaa3cae371872ec865fc5">intbits</a>/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
-<a name="l00047"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">00047</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f" title="The library&amp;#39;s code is written to depend on this value, don&amp;#39;t change it.">minimum</a>=3;
-<a name="l00048"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">00048</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">count</a>=(<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092" title="We want at least enough QuickDigits to hold two standard int types.">suggested</a> &lt; <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f" title="The library&amp;#39;s code is written to depend on this value, don&amp;#39;t change it.">minimum</a> ? <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f" title="The library&amp;#39;s code is written to depend on this value, don&amp;#39;t change it.">minim
um</a> : <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092" title="We want at least enough QuickDigits to hold two standard int types.">suggested</a>);
-<a name="l00049"></a>00049 };
-<a name="l00050"></a>00050
-<a name="l00051"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">00051</a> <span class="keywordtype">size_t</span> <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>;
-<a name="l00052"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">00052</a> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
-<a name="l00053"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">00053</a> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</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="l00054"></a>00054
-<a name="l00055"></a>00055 <span class="preprocessor"> #if !defined(XINT_SECURE)</span>
-<a name="l00056"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">00056</a> <span class="preprocessor"></span> std::vector&lt;digit_t&gt; <a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>;
-<a name="l00057"></a>00057 <span class="preprocessor"> #endif</span>
-<a name="l00058"></a>00058 <span class="preprocessor"></span>
-<a name="l00059"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">00059</a> <span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>;
-<a name="l00060"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">00060</a> <span class="keywordtype">bool</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>;
-<a name="l00061"></a>00061
-<a name="l00062"></a>00062 <span class="keyword">public</span>:
-<a name="l00063"></a>00063 <a class="code" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">data_t</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial1=0, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial2=0, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial3=0);
-<a name="l00064"></a>00064 <a class="code" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">data_t</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">data_t</a> *c);
-<a name="l00065"></a>00065
-<a name="l00066"></a>00066 <span class="preprocessor"> #if defined(XINT_SECURE)</span>
-<a name="l00067"></a>00067 <span class="preprocessor"></span> ~<a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">data_t</a>();
-<a name="l00068"></a>00068 <span class="preprocessor"> #endif</span>
-<a name="l00069"></a>00069 <span class="preprocessor"></span>
-<a name="l00070"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">00070</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">attach</a>() { ++<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>; }
-<a name="l00071"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">00071</a> <span class="keywordtype">bool</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">detach</a>() { <span class="keywordflow">return</span> (--<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==0); }
-<a name="l00072"></a>00072 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a>(<span class="keywordtype">size_t</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <span class="keywordtype">bool</span> copydigits=<span class="keyword">false</span>);
-<a name="l00073"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a2bb2c79d47f2fda3605f34b80cb58b8b">00073</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a2bb2c79d47f2fda3605f34b80cb58b8b">realloc</a>(<span class="keywordtype">size_t</span> newdigits) { <a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a>(newdigits, <span class="keyword">true</span>); }
-<a name="l00074"></a>00074 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00075"></a>00075 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a66862f94545c953f6604b4347205277b">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=0);
-<a name="l00076"></a>00076 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *p, <span class="keywordtype">size_t</span> count);
-<a name="l00077"></a>00077
-<a name="l00078"></a>00078 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a57fc3966c44d09daeede53899673cde3">quickset</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d1, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d2=0, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d3=0);
-<a name="l00079"></a>00079
-<a name="l00080"></a>00080 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#aaf6f202db416ad8fe18ec8a6c8c48904">invert</a>();
-<a name="l00081"></a>00081 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">negate</a>();
-<a name="l00082"></a>00082
-<a name="l00083"></a>00083 <span class="comment">// These primitives ignore the signs of the parameters, and their results</span>
-<a name="l00084"></a>00084 <span class="comment">// are calculated in place.</span>
-<a name="l00085"></a>00085 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">add</a>(<span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">data_t</a>&amp; addend);
-<a name="l00086"></a>00086 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">subtract</a>(<span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html" title="Holds the internal details of an xint::integer.">data_t</a>&amp; subtrahend);
-<a name="l00087"></a>00087
-<a name="l00088"></a>00088 <span class="comment">// These are also calculated in place, for maximum speed.</span>
-<a name="l00089"></a>00089 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a72785130c7c6490af874f450cf6e0086">shift_left</a>(<span class="keywordtype">size_t</span> byBits);
-<a name="l00090"></a>00090 <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a432ace7094bca306dcba254f862e2428">shift_right</a>(<span class="keywordtype">size_t</span> byBits);
-<a name="l00091"></a>00091 };
-<a name="l00092"></a>00092
-<a name="l00093"></a>00093 } <span class="comment">// namespace detail</span>
-<a name="l00094"></a>00094 } <span class="comment">// namespace xint</span>
-<a name="l00095"></a>00095
-<a name="l00096"></a>00096 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_DATA_T_H</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 <span class="keyword">namespace </span>detail {
+<a name="l00031"></a>00031
+<a name="l00037"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html">00037</a> <span class="keyword">struct </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> {
+<a name="l00045"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html">00045</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html" title="Holds information determining how many quick-digits to use.">QuickDigits</a> {
+<a name="l00046"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#adbe737b8debc83a5a1fc0f92e39c6aa7">00046</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#adbe737b8debc83a5a1fc0f92e39c6aa7">intbits</a>=std::numeric_limits&lt;unsigned int&gt;::digits;
+<a name="l00047"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#aef1507c481b9f7d7326a7bee422906ae">00047</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#aef1507c481b9f7d7326a7bee422906ae" title="We want at least enough QuickDigits to hold two standard int types.">suggested</a>=(2*<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#adbe737b8debc83a5a1fc0f92e39c6aa7">intbits</a>/<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>);
+<a name="l00048"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#a8f2061e90bb9e89949f10f57accc1bbb">00048</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#a8f2061e90bb9e89949f10f57accc1bbb" title="The library&amp;#39;s code is written to depend on this value, don&amp;#39;t change it.">minimum</a>=3;
+<a name="l00049"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#ae820a83ad097f0cc70ba3f53ea00ab70">00049</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#ae820a83ad097f0cc70ba3f53ea00ab70">count</a>=(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#aef1507c481b9f7d7326a7bee422906ae" title="We want at least enough QuickDigits to hold two standard int types.">suggested</a> &lt; <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#a8f2061e90bb9e89949f10f57accc1bbb" title="The library&amp;#39;s code is written to depend on this value, don&amp;#39;t change it.">minimum</a> ? <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#a8f2061e90bb9e89949f10f57accc1bbb" title="The library&amp;#39;s code is written to depend o
n this value, don&amp;#39;t change it.">minimum</a> : <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html#aef1507c481b9f7d7326a7bee422906ae" title="We want at least enough QuickDigits to hold two standard int types.">suggested</a>);
+<a name="l00050"></a>00050 };
+<a name="l00051"></a>00051
+<a name="l00052"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3b494184a00a17108f8bb80d8f07a3a4">00052</a> <span class="keywordtype">size_t</span> <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>;
+<a name="l00053"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">00053</a> <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#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>;
+<a name="l00054"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af91f399a0533e8cdf46ac021616e2500">00054</a> <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#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="l00055"></a>00055
+<a name="l00056"></a>00056 <span class="preprocessor"> #if !defined(XINT_SECURE)</span>
+<a name="l00057"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8867fdad2325f390790c1188e6f71219">00057</a> <span class="preprocessor"></span> std::vector&lt;digit_t&gt; <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8867fdad2325f390790c1188e6f71219">mStorage</a>;
+<a name="l00058"></a>00058 <span class="preprocessor"> #endif</span>
+<a name="l00059"></a>00059 <span class="preprocessor"></span>
+<a name="l00060"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">00060</a> <span class="keywordtype">int</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">mCopies</a>;
+<a name="l00061"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">00061</a> <span class="keywordtype">bool</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abd6528e0c4f7674b4421cc7f1e2aba09">mIsNegative</a>;
+<a name="l00062"></a>00062
+<a name="l00063"></a>00063 <span class="keyword">public</span>:
+<a name="l00064"></a>00064 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a37dee31093efc13f9ad64171fd9c373a">data_t</a>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> initial1=0, <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> initial2=0, <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> initial3=0);
+<a name="l00065"></a>00065 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a37dee31093efc13f9ad64171fd9c373a">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="l00066"></a>00066
+<a name="l00067"></a>00067 <span class="preprocessor"> #if defined(XINT_SECURE)</span>
+<a name="l00068"></a>00068 <span class="preprocessor"></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>();
+<a name="l00069"></a>00069 <span class="preprocessor"> #endif</span>
+<a name="l00070"></a>00070 <span class="preprocessor"></span>
+<a name="l00071"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ae5e0fb03bd1a93e834bbbcbb11dcf845">00071</a> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ae5e0fb03bd1a93e834bbbcbb11dcf845">attach</a>() { ++<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">mCopies</a>; }
+<a name="l00072"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aca622bc945c157c65cf5042b70eabd83">00072</a> <span class="keywordtype">bool</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aca622bc945c157c65cf5042b70eabd83">detach</a>() { <span class="keywordflow">return</span> (--<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a6ee92e12f6b7de91f7ad85fcd481bd74">mCopies</a>==0); }
+<a name="l00073"></a>00073 <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a05165b7f45dea3e2459739d856d78288">alloc</a>(<span class="keywordtype">size_t</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a0e65a16488bd7a9d0b1c2a42cc258da3">digits</a>, <span class="keywordtype">bool</span> copydigits=<span class="keyword">false</span>);
+<a name="l00074"></a><a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3bdd8e8ef7c5b8bc888b96725aac9dfe">00074</a> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a3bdd8e8ef7c5b8bc888b96725aac9dfe">realloc</a>(<span class="keywordtype">size_t</span> newdigits) { <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a05165b7f45dea3e2459739d856d78288">alloc</a>(newdigits, <span class="keyword">true</span>); }
+<a name="l00075"></a>00075 <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a284e2618d908796987c624311a42625d">skipLeadingZeros</a>();
+<a name="l00076"></a>00076 <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a8fd5f934c3ad8c1f9d38bb38ac89cfcd">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=0);
+<a name="l00077"></a>00077 <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#abc03de358802a588b87fe666dd8f7c43">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="l00078"></a>00078
+<a name="l00079"></a>00079 <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a231dab01a05e0c7f64e9c592537ddb14">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=0, <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> d3=0);
+<a name="l00080"></a>00080
+<a name="l00081"></a>00081 <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ad082d802e78dab68eb7409e09386e974">invert</a>();
+<a name="l00082"></a>00082 <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a1207c8b514f44886ae98f6632b9726a1">negate</a>();
+<a name="l00083"></a>00083
+<a name="l00084"></a>00084 <span class="comment">// These primitives ignore the signs of the parameters, and their results</span>
+<a name="l00085"></a>00085 <span class="comment">// are calculated in place.</span>
+<a name="l00086"></a>00086 <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ac723d73bc8845e6df77f3c439128b939">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="l00087"></a>00087 <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a138ee1d91bfa37d248c43ef66371e590">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="l00088"></a>00088
+<a name="l00089"></a>00089 <span class="comment">// These are also calculated in place, for maximum speed.</span>
+<a name="l00090"></a>00090 <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aaa43f067c7f1a7772276cf9a57ab653c">shift_left</a>(<span class="keywordtype">size_t</span> byBits);
+<a name="l00091"></a>00091 <span class="keywordtype">void</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ad28012e618ecab56b69ceac7585d1741">shift_right</a>(<span class="keywordtype">size_t</span> byBits);
+<a name="l00092"></a>00092 };
+<a name="l00093"></a>00093
+<a name="l00094"></a>00094 } <span class="comment">// namespace detail</span>
+<a name="l00095"></a>00095 } <span class="comment">// namespace xint</span>
+<a name="l00096"></a>00096 } <span class="comment">// namespace boost</span>
+<a name="l00097"></a>00097
+<a name="l00098"></a>00098 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_DATA_T_H</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/xint__monty_8hpp.html
==============================================================================
--- sandbox/xint/doc/xint__monty_8hpp.html (original)
+++ sandbox/xint/doc/xint__monty_8hpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -33,7 +33,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>
@@ -42,26 +43,26 @@
 <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 declares the functions that use the Montgomery Reduction. They are used internally to speed up the <a class="el" href="namespacexint.html#ac54e9be3a8b131f882f88e57b0ef1c9c" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">xint::powmod</a> function for odd modulii. </p>
+<p>This file declares the functions that use the Montgomery Reduction. They are used internally to speed up the xint::powmod function for odd modulii. </p>
 
 <p>Definition in file <a class="el" href="xint__monty_8hpp_source.html">xint_monty.hpp</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/xint__monty_8hpp_source.html
==============================================================================
--- sandbox/xint/doc/xint__monty_8hpp_source.html (original)
+++ sandbox/xint/doc/xint__monty_8hpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -40,21 +40,23 @@
 <a name="l00021"></a>00021 <span class="preprocessor">#ifndef BOOST_INCLUDED_XINT_MONTY_H</span>
 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_INCLUDED_XINT_MONTY_H</span>
 <a name="l00023"></a>00023 <span class="preprocessor"></span>
-<a name="l00024"></a>00024 <span class="keyword">namespace </span>xint {
-<a name="l00025"></a>00025
-<a name="l00028"></a>00028 <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::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="l00029"></a>00029 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="l00030"></a>00030 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="l00031"></a>00031 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="l00032"></a>00032 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; x, <span class="keyword">const</span> integer&amp; y, <span class="keyword">const</span> integer&amp;
-<a name="l00033"></a>00033 m, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> nPrime0);
-<a name="l00034"></a>00034 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; x, <span class="keyword">const</span> integer&amp; e, <span class="keyword">const</span> integer&amp; m);
-<a name="l00036"></a>00036
-<a name="l00037"></a>00037 } <span class="comment">// namespace xint</span>
-<a name="l00038"></a>00038
-<a name="l00039"></a>00039 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MONTY_H</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="l00029"></a>00029 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::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="l00030"></a>00030 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="l00031"></a>00031 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="l00032"></a>00032 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="l00033"></a>00033 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; x, <span class="keyword">const</span> integer&amp; y, <span class="keyword">const</span> integer&amp;
+<a name="l00034"></a>00034 m, <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> nPrime0);
+<a name="l00035"></a>00035 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; x, <span class="keyword">const</span> integer&amp; e, <span class="keyword">const</span> integer&amp; m);
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038 } <span class="comment">// namespace xint</span>
+<a name="l00039"></a>00039 } <span class="comment">// namespace boost</span>
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MONTY_H</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/xint__test_8hpp.html
==============================================================================
--- sandbox/xint/doc/xint__test_8hpp.html (original)
+++ sandbox/xint/doc/xint__test_8hpp.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -33,7 +33,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>
@@ -42,21 +43,21 @@
 <tr><td colspan="2"><div class="groupHeader">Self-Testing Functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpe91fba8935c0c10717694cc0393febf3"></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#a509778d505a3c8a0b335817150eaead2">xint::testBitManipulations</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a6b7f5122683b6d924bf86c7d1507206b">xint::testAddSubtract</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#affe2e221777d4263a420d014fa9640d0">xint::testMultiply</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4ed78ff75865ae44a00d3709dd88c3a1">xint::testDivideMod</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae4ef5f20964fa995df7828f27bd7adbe">xint::testConvert</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae3305f62ca9be58fbc11dbd4c703f38b">xint::testStreams</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac40068d64f8c4d9002a0687935888c42">xint::testMontyMultiply</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a9cce0401174b9ae173671b0800c5f457">xint::testMontyPowerMod</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a9d062367dfe2a79e4471c97d1ee101b2">boost::xint::testBitManipulations</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a8b1647a9b23f45407df6d402852d06ae">boost::xint::testAddSubtract</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a87d760db18932efaafb906c0ebbdb50f">boost::xint::testMultiply</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aabf845d8d592d3576d7223fc29362b3a">boost::xint::testDivideMod</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aca8ead732f9dac3f23f53095eacd762e">boost::xint::testConvert</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ace6d9f008e78329286fc9003896667cd">boost::xint::testStreams</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a6073c3037b644655bc752120b144e804">boost::xint::testMontyMultiply</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a099082cd8bbd0e994870ad89859e18c1">boost::xint::testMontyPowerMod</a> ()</td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Declares the library's self-testing functions. </p>
 
 <p>Definition in file <a class="el" href="xint__test_8hpp_source.html">xint_test.hpp</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/xint__test_8hpp_source.html
==============================================================================
--- sandbox/xint/doc/xint__test_8hpp_source.html (original)
+++ sandbox/xint/doc/xint__test_8hpp_source.html 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -40,22 +40,24 @@
 <a name="l00018"></a>00018 <span class="preprocessor">#ifndef BOOST_INCLUDED_XINT_TEST_H</span>
 <a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_INCLUDED_XINT_TEST_H</span>
 <a name="l00020"></a>00020 <span class="preprocessor"></span>
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>xint {
-<a name="l00022"></a>00022
-<a name="l00025"></a>00025 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a509778d505a3c8a0b335817150eaead2">testBitManipulations</a>();
-<a name="l00026"></a>00026 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a6b7f5122683b6d924bf86c7d1507206b">testAddSubtract</a>();
-<a name="l00027"></a>00027 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#affe2e221777d4263a420d014fa9640d0">testMultiply</a>();
-<a name="l00028"></a>00028 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a4ed78ff75865ae44a00d3709dd88c3a1">testDivideMod</a>();
-<a name="l00029"></a>00029 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ae4ef5f20964fa995df7828f27bd7adbe">testConvert</a>();
-<a name="l00030"></a>00030 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ae3305f62ca9be58fbc11dbd4c703f38b">testStreams</a>();
-<a name="l00031"></a>00031 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ac40068d64f8c4d9002a0687935888c42">testMontyMultiply</a>();
-<a name="l00032"></a>00032 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a9cce0401174b9ae173671b0800c5f457">testMontyPowerMod</a>();
-<a name="l00034"></a>00034
-<a name="l00035"></a>00035 } <span class="comment">// namespace xint</span>
-<a name="l00036"></a>00036
-<a name="l00037"></a>00037 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_TEST_H</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="l00026"></a>00026 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a9d062367dfe2a79e4471c97d1ee101b2">testBitManipulations</a>();
+<a name="l00027"></a>00027 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a8b1647a9b23f45407df6d402852d06ae">testAddSubtract</a>();
+<a name="l00028"></a>00028 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a87d760db18932efaafb906c0ebbdb50f">testMultiply</a>();
+<a name="l00029"></a>00029 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#aabf845d8d592d3576d7223fc29362b3a">testDivideMod</a>();
+<a name="l00030"></a>00030 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#aca8ead732f9dac3f23f53095eacd762e">testConvert</a>();
+<a name="l00031"></a>00031 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ace6d9f008e78329286fc9003896667cd">testStreams</a>();
+<a name="l00032"></a>00032 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a6073c3037b644655bc752120b144e804">testMontyMultiply</a>();
+<a name="l00033"></a>00033 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a099082cd8bbd0e994870ad89859e18c1">testMontyPowerMod</a>();
+<a name="l00035"></a>00035
+<a name="l00036"></a>00036 } <span class="comment">// namespace xint</span>
+<a name="l00037"></a>00037 } <span class="comment">// namespace boost</span>
+<a name="l00038"></a>00038
+<a name="l00039"></a>00039 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_TEST_H</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/src/bit_manipulations.cpp
==============================================================================
--- sandbox/xint/src/bit_manipulations.cpp (original)
+++ sandbox/xint/src/bit_manipulations.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -18,6 +18,7 @@
 #include "../boost/xint/xint.hpp"
 #include "../boost/xint/xint_data_t.hpp"
 
+namespace boost {
 namespace xint {
 
 using namespace detail;
@@ -251,4 +252,5 @@
     return nn;
 }
 
-} // namespace detail
+} // namespace xint
+} // namespace boost

Modified: sandbox/xint/src/compare.cpp
==============================================================================
--- sandbox/xint/src/compare.cpp (original)
+++ sandbox/xint/src/compare.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -18,6 +18,7 @@
 #include "../boost/xint/xint.hpp"
 #include "../boost/xint/xint_data_t.hpp"
 
+namespace boost {
 namespace xint {
 
 /*! \brief Compare two integer objects.
@@ -73,3 +74,4 @@
 bool operator>=(const xint::integer& num1, const xint::integer& num2) { return xint::compare(num1, num2)>=0; }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/src/convert.cpp
==============================================================================
--- sandbox/xint/src/convert.cpp (original)
+++ sandbox/xint/src/convert.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -30,6 +30,7 @@
 #include <algorithm>
 #include <sstream>
 
+namespace boost {
 namespace xint {
 
 using namespace detail;
@@ -267,3 +268,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/src/data_t.cpp
==============================================================================
--- sandbox/xint/src/data_t.cpp (original)
+++ sandbox/xint/src/data_t.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -20,6 +20,7 @@
 
 #include <cassert>
 
+namespace boost {
 namespace xint {
 namespace detail {
 
@@ -320,3 +321,4 @@
 
 } // namespace detail
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/src/exception_blocker.cpp
==============================================================================
--- sandbox/xint/src/exception_blocker.cpp (original)
+++ sandbox/xint/src/exception_blocker.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -22,6 +22,7 @@
     #include <boost/thread.hpp>
 #endif
 
+namespace boost {
 namespace xint {
 namespace {
 
@@ -106,4 +107,4 @@
 }
 
 } // namespace xint
-
+} // namespace boost

Modified: sandbox/xint/src/gcd.cpp
==============================================================================
--- sandbox/xint/src/gcd.cpp (original)
+++ sandbox/xint/src/gcd.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -19,6 +19,7 @@
 
 #include "../boost/xint/xint.hpp"
 
+namespace boost {
 namespace xint {
 
 namespace {
@@ -141,3 +142,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/src/integer.cpp
==============================================================================
--- sandbox/xint/src/integer.cpp (original)
+++ sandbox/xint/src/integer.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -22,6 +22,7 @@
     #define XINT_DISABLE_COPY_ON_WRITE
 #endif
 
+namespace boost {
 namespace xint {
 
 namespace {
@@ -304,3 +305,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/src/misc.cpp
==============================================================================
--- sandbox/xint/src/misc.cpp (original)
+++ sandbox/xint/src/misc.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -17,6 +17,7 @@
 
 #include "../boost/xint/xint.hpp"
 
+namespace boost {
 namespace xint {
 
 /*! \brief Tells whether the library was compiled with \link securemode Secure
@@ -73,3 +74,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/src/modular.cpp
==============================================================================
--- sandbox/xint/src/modular.cpp (original)
+++ sandbox/xint/src/modular.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -21,6 +21,7 @@
 #include "../boost/xint/xint.hpp"
 #include "../boost/xint/xint_monty.hpp"
 
+namespace boost {
 namespace xint {
 
 /*! \brief Get the remainder after dividing a number by another.
@@ -131,3 +132,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/src/monty.cpp
==============================================================================
--- sandbox/xint/src/monty.cpp (original)
+++ sandbox/xint/src/monty.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -25,6 +25,7 @@
 
 #include <vector>
 
+namespace boost {
 namespace xint {
 
 using namespace detail;
@@ -285,3 +286,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/src/operators.cpp
==============================================================================
--- sandbox/xint/src/operators.cpp (original)
+++ sandbox/xint/src/operators.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -17,6 +17,7 @@
 
 #include "../boost/xint/xint.hpp"
 
+namespace boost {
 namespace xint {
 
 const integer& operator+(const integer& a) { return a; }
@@ -31,3 +32,4 @@
 integer operator^(const integer& n1, const integer& n2) { return bitwise_xor(n1, n2); }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/src/powers.cpp
==============================================================================
--- sandbox/xint/src/powers.cpp (original)
+++ sandbox/xint/src/powers.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -20,6 +20,7 @@
 
 #include <vector>
 
+namespace boost {
 namespace xint {
 
 using namespace detail;
@@ -160,3 +161,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/src/primes.cpp
==============================================================================
--- sandbox/xint/src/primes.cpp (original)
+++ sandbox/xint/src/primes.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -19,6 +19,7 @@
 
 #include <vector>
 
+namespace boost {
 namespace xint {
 
 namespace {
@@ -168,3 +169,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/src/primitives.cpp
==============================================================================
--- sandbox/xint/src/primitives.cpp (original)
+++ sandbox/xint/src/primitives.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -19,6 +19,7 @@
 #include "../boost/xint/xint_data_t.hpp"
 #include <cassert>
 
+namespace boost {
 namespace xint {
 
 using namespace detail;
@@ -313,3 +314,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/src/random.cpp
==============================================================================
--- sandbox/xint/src/random.cpp (original)
+++ sandbox/xint/src/random.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -34,6 +34,7 @@
     #include <boost/thread.hpp>
 #endif
 
+namespace boost {
 namespace xint {
 
 using namespace detail;
@@ -232,3 +233,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/src/roots.cpp
==============================================================================
--- sandbox/xint/src/roots.cpp (original)
+++ sandbox/xint/src/roots.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -17,6 +17,7 @@
 
 #include "../boost/xint/xint.hpp"
 
+namespace boost {
 namespace xint {
 
 /*! \brief Calculate the square root of \c an integer.
@@ -52,3 +53,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/test/test_add.cpp
==============================================================================
--- sandbox/xint/test/test_add.cpp (original)
+++ sandbox/xint/test/test_add.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -18,6 +18,7 @@
 
 #include <iostream>
 
+namespace boost {
 namespace xint {
 
 using std::endl;
@@ -89,3 +90,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/test/test_bit_manipulations.cpp
==============================================================================
--- sandbox/xint/test/test_bit_manipulations.cpp (original)
+++ sandbox/xint/test/test_bit_manipulations.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -19,6 +19,7 @@
 #include <iostream>
 #include <iomanip>
 
+namespace boost {
 namespace xint {
 
 using std::hex;
@@ -109,3 +110,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/test/test_convert.cpp
==============================================================================
--- sandbox/xint/test/test_convert.cpp (original)
+++ sandbox/xint/test/test_convert.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -24,6 +24,7 @@
 
 using std::endl;
 
+namespace boost {
 namespace xint {
 
 BOOST_AUTO_TEST_CASE(testConvert) {
@@ -96,3 +97,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/test/test_divide.cpp
==============================================================================
--- sandbox/xint/test/test_divide.cpp (original)
+++ sandbox/xint/test/test_divide.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -22,6 +22,7 @@
 #include <boost/tuple/tuple.hpp>
 #include <boost/random.hpp>
 
+namespace boost {
 namespace xint {
 
 using std::endl;
@@ -91,3 +92,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/test/test_monty.cpp
==============================================================================
--- sandbox/xint/test/test_monty.cpp (original)
+++ sandbox/xint/test/test_monty.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -21,6 +21,7 @@
 #include <iomanip>
 #include <boost/random/mersenne_twister.hpp>
 
+namespace boost {
 namespace xint {
 
 using std::endl;
@@ -133,3 +134,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/test/test_multiply.cpp
==============================================================================
--- sandbox/xint/test/test_multiply.cpp (original)
+++ sandbox/xint/test/test_multiply.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -19,6 +19,7 @@
 
 #include <iostream>
 
+namespace boost {
 namespace xint {
 
 using std::endl;
@@ -78,3 +79,4 @@
 }
 
 } // namespace xint
+} // namespace boost

Modified: sandbox/xint/test/test_streams.cpp
==============================================================================
--- sandbox/xint/test/test_streams.cpp (original)
+++ sandbox/xint/test/test_streams.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
@@ -20,6 +20,7 @@
 #include <iomanip>
 #include <sstream>
 
+namespace boost {
 namespace xint {
 
 namespace {
@@ -171,4 +172,39 @@
     }
 }
 
+// The following is copyright Paul A. Bristow 2010
+
+//! Compare stream output with expected.
+#define BOOST_XINT_TEST_OUTPUT(v, expected) \
+{ \
+ std::ostringstream ss; \
+ ss FORMATTERS << v; \
+ BOOST_CHECK_EQUAL(ss.str(), expected); \
+}
+
+BOOST_AUTO_TEST_CASE(test_formatting_none)
+{ // No formatting
+#define FORMATTERS
+ xint::integer my_int2(2);
+ BOOST_XINT_TEST_OUTPUT(my_int2, "2");
+#undef FORMATTERS
+}
+
+BOOST_AUTO_TEST_CASE(test_formatting_showpos_negative)
+{ // Formatting
+#define FORMATTERS << std::showpos
+ xint::integer my_int2(-2);
+ BOOST_XINT_TEST_OUTPUT(my_int2, "-2");
+#undef FORMATTERS
+}
+
+BOOST_AUTO_TEST_CASE(test_formatting_showpos_positive)
+{ // Formatting
+#define FORMATTERS << std::showpos
+ xint::integer my_int2(2);
+ BOOST_XINT_TEST_OUTPUT(my_int2, "+2");
+#undef FORMATTERS
+}
+
 } // namespace xint
+} // namespace boost

Deleted: sandbox/xint/test/xint_test.cpp
==============================================================================
--- sandbox/xint/test/xint_test.cpp 2010-04-06 15:25:42 EDT (Tue, 06 Apr 2010)
+++ (empty file)
@@ -1,76 +0,0 @@
-// xint_test.cpp
-
-// Copyright Paul A. Bristow 2010
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-/**
-\file
-\brief Test xint stream output.
-\details
-Tests for output to a std:: stream.
-**/
-
-#include <boost/xint/xint.hpp>
-
-#define BOOST_TEST_MAIN
-#include <boost/test/unit_test.hpp>
-
-#include <iostream>
-#include <sstream>
-#include <limits>
-
-//! Compare stream output with expected.
-#define BOOST_XINT_TEST_OUTPUT(v, expected) \
-{ \
- std::ostringstream ss; \
- ss FORMATTERS << v; \
- BOOST_CHECK_EQUAL(ss.str(), expected); \
-}
-
-BOOST_AUTO_TEST_CASE(test_output_1)
-{ // No formatting
-#define FORMATTERS
- xint::integer my_int2(2);
- BOOST_XINT_TEST_OUTPUT(my_int2, "2"); //
-#undef FORMATTERS
-}
-
-//BOOST_AUTO_TEST_CASE(test_output_2)
-//{ // Formatting
-//#define FORMATTERS << std::showpos
-// xint::integer my_int2(-2);
-// BOOST_XINT_TEST_OUTPUT(my_int2, "-2");//
-//#undef FORMATTERS
-//}
-
-
-//BOOST_AUTO_TEST_CASE(test_output_2)
-//{ // Formatting
-//#define FORMATTERS << std::showpos
-// xint::integer my_int2(2);
-// BOOST_XINT_TEST_OUTPUT(my_int2, "+2");//
-//#undef FORMATTERS
-//}
-
-
-/*
-
-Output
-
-Autorun "j:\Cpp\Misc\debug\xint_test.exe"
-Running 2 test cases...
-./xint_test.cpp(45): error in "test_output_2": check ss.str() == "+2" failed [2 != +2]
-*** 1 failure detected in test suite "Master Test Suite"
-Detected memory leaks!
-Dumping objects ->
-{397} normal block at 0x00232038, 52 bytes long.
- Data: < D # > 01 00 00 00 03 00 00 00 44 20 23 00 00 00 00 00
-{396} normal block at 0x00021FA0, 4 bytes long.
- Data: <8 # > 38 20 23 00
-Object dump complete.
-Project : error PRJ0019: A tool returned an error code from "Autorun "j:\Cpp\Misc\debug\xint_test.exe""
-Build Time 0:03
-*/


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk