$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r60973 - sandbox/xint/libs/xint/doc/doxygen/html
From: pbristow_at_[hidden]
Date: 2010-03-31 10:48:32
Author: pbristow
Date: 2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
New Revision: 60973
URL: http://svn.boost.org/trac/boost/changeset/60973
Log:
rebuild
Text files modified: 
   sandbox/xint/libs/xint/doc/doxygen/html/annotated.html                                                |    12                                         
   sandbox/xint/libs/xint/doc/doxygen/html/bit__manipulations_8cpp.html                                  |    11                                         
   sandbox/xint/libs/xint/doc/doxygen/html/bit__manipulations_8cpp_source.html                           |    30                                         
   sandbox/xint/libs/xint/doc/doxygen/html/classes.html                                                  |    24                                         
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1divide__by__zero-members.html                    |     5                                         
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1divide__by__zero.html                            |     9                                         
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1integer-members.html                             |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1integer.html                                     |   290 +++++++-----                            
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__base-members.html                       |     5                                         
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__base.html                               |     9                                         
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__digit-members.html                      |     5                                         
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__digit.html                              |     9                                         
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__modulus-members.html                    |     5                                         
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__modulus.html                            |     9                                         
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1not__a__number-members.html                      |     5                                         
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1not__a__number.html                              |     9                                         
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1too__big-members.html                            |     5                                         
   sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1too__big.html                                    |     9                                         
   sandbox/xint/libs/xint/doc/doxygen/html/compare_8cpp.html                                             |   231 ----------                              
   sandbox/xint/libs/xint/doc/doxygen/html/compare_8cpp_source.html                                      |    24                                         
   sandbox/xint/libs/xint/doc/doxygen/html/convert_8cpp.html                                             |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/convert_8cpp_source.html                                      |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/data__t_8cpp.html                                             |    12                                         
   sandbox/xint/libs/xint/doc/doxygen/html/data__t_8cpp_source.html                                      |   253 +++++-----                              
   sandbox/xint/libs/xint/doc/doxygen/html/exception__blocker_8cpp.html                                  |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/exception__blocker_8cpp_source.html                           |     4                                         
   sandbox/xint/libs/xint/doc/doxygen/html/files.html                                                    |     4                                         
   sandbox/xint/libs/xint/doc/doxygen/html/functions.html                                                |    97 +++                                     
   sandbox/xint/libs/xint/doc/doxygen/html/functions_func.html                                           |    56 ++                                      
   sandbox/xint/libs/xint/doc/doxygen/html/functions_vars.html                                           |    36 +                                       
   sandbox/xint/libs/xint/doc/doxygen/html/gcd_8cpp.html                                                 |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/gcd_8cpp_source.html                                          |    90 ++-                                     
   sandbox/xint/libs/xint/doc/doxygen/html/globals.html                                                  |   114 ----                                    
   sandbox/xint/libs/xint/doc/doxygen/html/globals_defs.html                                             |     4                                         
   sandbox/xint/libs/xint/doc/doxygen/html/globals_func.html                                             |    79 ---                                     
   sandbox/xint/libs/xint/doc/doxygen/html/globals_vars.html                                             |    22                                         
   sandbox/xint/libs/xint/doc/doxygen/html/index.html                                                    |    15                                         
   sandbox/xint/libs/xint/doc/doxygen/html/integer_8cpp.html                                             |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/integer_8cpp_source.html                                      |   374 ++++++++--------                        
   sandbox/xint/libs/xint/doc/doxygen/html/misc_8cpp.html                                                |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/misc_8cpp_source.html                                         |     4                                         
   sandbox/xint/libs/xint/doc/doxygen/html/modular_8cpp.html                                             |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/modular_8cpp_source.html                                      |    18                                         
   sandbox/xint/libs/xint/doc/doxygen/html/monty_8cpp.html                                               |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/monty_8cpp_source.html                                        |    22                                         
   sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers.html                                         |    78 ++                                      
   sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_func.html                                    |    75 ++                                      
   sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_type.html                                    |     7                                         
   sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_vars.html                                    |     4                                         
   sandbox/xint/libs/xint/doc/doxygen/html/namespaces.html                                               |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/namespacexint.html                                            |   651 +++++++++++++++++++++--------           
   sandbox/xint/libs/xint/doc/doxygen/html/namespacexint_1_1detail.html                                  |   102 +++                                     
   sandbox/xint/libs/xint/doc/doxygen/html/operators_8cpp.html                                           |   317 -------------                           
   sandbox/xint/libs/xint/doc/doxygen/html/operators_8cpp_source.html                                    |    28                                         
   sandbox/xint/libs/xint/doc/doxygen/html/powers_8cpp.html                                              |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/powers_8cpp_source.html                                       |    16                                         
   sandbox/xint/libs/xint/doc/doxygen/html/primes_8cpp.html                                              |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/primes_8cpp_source.html                                       |    10                                         
   sandbox/xint/libs/xint/doc/doxygen/html/primitives_8cpp.html                                          |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/primitives_8cpp_source.html                                   |   481 ++++++++++-----------                   
   sandbox/xint/libs/xint/doc/doxygen/html/random_8cpp.html                                              |    70 --                                      
   sandbox/xint/libs/xint/doc/doxygen/html/random_8cpp_source.html                                       |   396 ++++++++---------                       
   sandbox/xint/libs/xint/doc/doxygen/html/roots_8cpp.html                                               |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/roots_8cpp_source.html                                        |    43 +                                       
   sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t-members.html                  |    19                                         
   sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t.html                          |    91 ++--                                    
   sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t_1_1_quick_digits-members.html |    13                                         
   sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t_1_1_quick_digits.html         |    29                                         
   sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1token.html                            |     7                                         
   sandbox/xint/libs/xint/doc/doxygen/html/xint_8hpp.html                                                |   571 +------------------------               
   sandbox/xint/libs/xint/doc/doxygen/html/xint_8hpp_source.html                                         |   885 +++++++++++++++++++++------------------ 
   sandbox/xint/libs/xint/doc/doxygen/html/xint__data__t_8hpp.html                                       |    12                                         
   sandbox/xint/libs/xint/doc/doxygen/html/xint__data__t_8hpp_source.html                                |    26                                         
   sandbox/xint/libs/xint/doc/doxygen/html/xint__fibonacci_8cpp.html                                     |     9                                         
   sandbox/xint/libs/xint/doc/doxygen/html/xint__fibonacci_8cpp_source.html                              |   100 ++--                                    
   sandbox/xint/libs/xint/doc/doxygen/html/xint__monty_8hpp.html                                         |     8                                         
   sandbox/xint/libs/xint/doc/doxygen/html/xint__monty_8hpp_source.html                                  |     4                                         
   sandbox/xint/libs/xint/doc/doxygen/html/xint__simple_8cpp.html                                        |     4                                         
   sandbox/xint/libs/xint/doc/doxygen/html/xint__simple_8cpp_source.html                                 |     4                                         
   sandbox/xint/libs/xint/doc/doxygen/html/xint__test_8hpp.html                                          |     9                                         
   sandbox/xint/libs/xint/doc/doxygen/html/xint__test_8hpp_source.html                                   |    17                                         
   81 files changed, 2744 insertions(+), 3364 deletions(-)
Modified: sandbox/xint/libs/xint/doc/doxygen/html/annotated.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/annotated.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/annotated.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,20 +51,28 @@
   <div class="tabs">
     <ul>
       <li class="current">Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
 </div>
 <div class="contents">
 <h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
+  <tr><td class="indexkey"><a class="el" href="structxint_1_1detail_1_1base__random__generator.html">xint::detail::base_random_generator</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="classxint_1_1cannot__represent.html">xint::cannot_represent</a></td><td class="indexvalue"></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"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classxint_1_1divide__by__zero.html">xint::divide_by_zero</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structxint_1_1strong__random__generator_1_1impl__t.html">xint::strong_random_generator::impl_t</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classxint_1_1invalid__base.html">xint::invalid_base</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classxint_1_1invalid__digit.html">xint::invalid_digit</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classxint_1_1invalid__modulus.html">xint::invalid_modulus</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="classxint_1_1no__strong__random.html">xint::no_strong_random</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classxint_1_1not__a__number.html">xint::not_a_number</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="classxint_1_1overflow__error.html">xint::overflow_error</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structxint_1_1detail_1_1random__generator.html">xint::detail::random_generator< T ></a></td><td class="indexvalue"></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"></td></tr>
   <tr><td class="indexkey"><a class="el" href="structxint_1_1detail_1_1token.html">xint::detail::token</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classxint_1_1too__big.html">xint::too_big</a></td><td class="indexvalue"></td></tr>
 </table>
@@ -87,7 +95,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/bit__manipulations_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/bit__manipulations_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/bit__manipulations_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -66,17 +66,16 @@
 <code>#include <boost/integer.hpp></code><br/>
 <code>#include <boost/cstdint.hpp></code><br/>
 <code>#include <boost/function.hpp></code><br/>
+<code>#include <boost/type_traits.hpp></code><br/>
 <code>#include <boost/static_assert.hpp></code><br/>
+<code>#include <boost/random/uniform_int.hpp></code><br/>
+<code>#include <boost/random/variate_generator.hpp></code><br/>
 <code>#include <vector></code><br/>
 
 <p>Go to the source code of this file.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td colspan="2"><h2>Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952">xint::getbit</a> (const integer &n, size_t bit)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#adf2652627e78682c17e120816987984a">xint::setbit</a> (integer &n, size_t bit)</td></tr>
@@ -109,7 +108,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/bit__manipulations_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/bit__manipulations_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/bit__manipulations_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -89,7 +89,7 @@
 <a name="l00033"></a>00033     <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *ndata=n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
 <a name="l00034"></a>00034 
 <a name="l00035"></a>00035     <span class="keywordtype">size_t</span> index=bit/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>;
-<a name="l00036"></a>00036     <span class="keywordflow">if</span> (index >= n.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>()) ndata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">realloc</a>(index+1);
+<a name="l00036"></a>00036     <span class="keywordflow">if</span> (index >= n.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>()) ndata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a2bb2c79d47f2fda3605f34b80cb58b8b">realloc</a>(index+1);
 <a name="l00037"></a>00037 
 <a name="l00038"></a>00038     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> mask=(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(1) << (bit % <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>));
 <a name="l00039"></a>00039     ndata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[index] |= mask;
@@ -111,7 +111,7 @@
 <a name="l00055"></a>00055     <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>()==0) <span class="keywordflow">return</span> defaultValue;
 <a name="l00056"></a>00056 
 <a name="l00057"></a>00057     <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *ndata=n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
-<a name="l00058"></a>00058     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *p=ndata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *pe=p+ndata-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00058"></a>00058     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *p=ndata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *pe=p+ndata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
 <a name="l00059"></a>00059     <span class="keywordflow">while</span> (p!=pe && *p==0) ++p;
 <a name="l00060"></a>00060 
 <a name="l00061"></a>00061     <span class="keywordtype">size_t</span> index=(p - ndata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>);
@@ -136,13 +136,13 @@
 <a name="l00080"></a>00080     n2.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
 <a name="l00081"></a>00081 
 <a name="l00082"></a>00082     <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *smaller=n1.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>(), *larger=n2.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
-<a name="l00083"></a>00083     <span class="keywordflow">if</span> (smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> > larger->mLength) std::swap(smaller, larger);
+<a name="l00083"></a>00083     <span class="keywordflow">if</span> (smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> > larger->mLength) std::swap(smaller, larger);
 <a name="l00084"></a>00084 
 <a name="l00085"></a>00085     <a class="code" href="classxint_1_1integer.html">integer</a> r;
 <a name="l00086"></a>00086     <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *rdata=r.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
-<a name="l00087"></a>00087     rdata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>);
+<a name="l00087"></a>00087     rdata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a>(smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>);
 <a name="l00088"></a>00088 
-<a name="l00089"></a>00089     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s1=smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *s1e=s1+smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>, *s2=larger->digits;
+<a name="l00089"></a>00089     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s1=smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *s1e=s1+smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>, *s2=larger->digits;
 <a name="l00090"></a>00090     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *t=rdata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
 <a name="l00091"></a>00091 
 <a name="l00092"></a>00092     <span class="keywordflow">while</span> (s1 < s1e) *t++ = *s1++ & *s2++;
@@ -156,13 +156,13 @@
 <a name="l00100"></a>00100     n2.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
 <a name="l00101"></a>00101 
 <a name="l00102"></a>00102     <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *smaller=n1.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>(), *larger=n2.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
-<a name="l00103"></a>00103     <span class="keywordflow">if</span> (smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> > larger->mLength) std::swap(smaller, larger);
+<a name="l00103"></a>00103     <span class="keywordflow">if</span> (smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> > larger->mLength) std::swap(smaller, larger);
 <a name="l00104"></a>00104 
 <a name="l00105"></a>00105     <a class="code" href="classxint_1_1integer.html">integer</a> r;
 <a name="l00106"></a>00106     <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *rdata=r.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
-<a name="l00107"></a>00107     rdata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(larger->mLength);
+<a name="l00107"></a>00107     rdata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a>(larger->mLength);
 <a name="l00108"></a>00108 
-<a name="l00109"></a>00109     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s1=smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *s1e=s1+smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00109"></a>00109     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s1=smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *s1e=s1+smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
 <a name="l00110"></a>00110     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s2=larger->digits, *s2e=s2+larger->mLength;
 <a name="l00111"></a>00111     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *t=rdata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
 <a name="l00112"></a>00112 
@@ -178,13 +178,13 @@
 <a name="l00122"></a>00122     n2.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
 <a name="l00123"></a>00123 
 <a name="l00124"></a>00124     <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *smaller=n1.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>(), *larger=n2.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
-<a name="l00125"></a>00125     <span class="keywordflow">if</span> (smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> > larger->mLength) std::swap(smaller, larger);
+<a name="l00125"></a>00125     <span class="keywordflow">if</span> (smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> > larger->mLength) std::swap(smaller, larger);
 <a name="l00126"></a>00126 
 <a name="l00127"></a>00127     <a class="code" href="classxint_1_1integer.html">integer</a> r;
 <a name="l00128"></a>00128     <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *rdata=r.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
-<a name="l00129"></a>00129     rdata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(larger->mLength);
+<a name="l00129"></a>00129     rdata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a>(larger->mLength);
 <a name="l00130"></a>00130 
-<a name="l00131"></a>00131     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s1=smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *s1e=s1+smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00131"></a>00131     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s1=smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *s1e=s1+smaller-><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
 <a name="l00132"></a>00132     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s2=larger->digits, *s2e=s2+larger->mLength;
 <a name="l00133"></a>00133     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *t=rdata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
 <a name="l00134"></a>00134 
@@ -207,7 +207,7 @@
 <a name="l00151"></a>00151 
 <a name="l00152"></a>00152     <a class="code" href="classxint_1_1integer.html">integer</a> n(_n);
 <a name="l00153"></a>00153     n.<a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00154"></a>00154     n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>()-><a class="code" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">shift_left</a>(byBits);
+<a name="l00154"></a>00154     n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>()-><a class="code" href="structxint_1_1detail_1_1data__t.html#a72785130c7c6490af874f450cf6e0086">shift_left</a>(byBits);
 <a name="l00155"></a>00155     <span class="keywordflow">return</span> n;
 <a name="l00156"></a>00156 }
 <a name="l00157"></a>00157 
@@ -218,7 +218,7 @@
 <a name="l00162"></a>00162 
 <a name="l00163"></a>00163     <a class="code" href="classxint_1_1integer.html">integer</a> n(_n);
 <a name="l00164"></a>00164     n.<a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00165"></a>00165     n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>()-><a class="code" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">shift_right</a>(byBits);
+<a name="l00165"></a>00165     n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>()-><a class="code" href="structxint_1_1detail_1_1data__t.html#a432ace7094bca306dcba254f862e2428">shift_right</a>(byBits);
 <a name="l00166"></a>00166     <span class="keywordflow">return</span> n;
 <a name="l00167"></a>00167 }
 <a name="l00168"></a>00168 
@@ -242,7 +242,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classes.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classes.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classes.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,19 +51,25 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
 </div>
 <div class="contents">
-<h1>Class Index</h1><div class="qindex"><a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_I">I</a> | <a class="qindex" href="#letter_N">N</a> | <a class="qindex" href="#letter_Q">Q</a> | <a class="qindex" href="#letter_T">T</a></div>
+<h1>Class Index</h1><div class="qindex"><a class="qindex" href="#letter_B">B</a> | <a class="qindex" href="#letter_C">C</a> | <a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_I">I</a> | <a class="qindex" href="#letter_N">N</a> | <a class="qindex" href="#letter_O">O</a> | <a class="qindex" href="#letter_Q">Q</a> | <a class="qindex" href="#letter_R">R</a> | <a class="qindex" href="#letter_S">S</a> | <a class="qindex" href="#letter_T">T</a></div>
 <table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
-<tr><td><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  D  </div></td></tr></table>
-</td><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  I  </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>)   </td><td><a class="el" href="classxint_1_1not__a__number.html">not_a_number</a> (<a class="el" href="namespacexint.html">xint</a>)   </td><td><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  T  </div></td></tr></table>
-</td></tr><tr><td><a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> (<a class="el" href="namespacexint_1_1detail.html">xint::detail</a>)   </td><td><a class="el" href="classxint_1_1integer.html">integer</a> (<a class="el" href="namespacexint.html">xint</a>)   </td><td><a class="el" href="classxint_1_1invalid__modulus.html">invalid_modulus</a> (<a class="el" href="namespacexint.html">xint</a>)   </td><td><a name="letter_Q"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  Q  </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>)   </td></tr><tr><td><a class="el" href="classxint_1_1divide__by__zero.html">divide_by_zero</a> (<a class="el" href="namespacexint.html">xint</a>)   </td><td><a class="el" href="classxint_1_1invalid__base.html">invalid_base</a> (<a class="el" href="namespacexint.html">xint</a>)   </td><td><a name="letter_N"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  N  </div></td></tr></table>
-</td><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">data_t::QuickDigits</a> (<a class="el" href="namespacexint_1_1detail.html">xint::detail</a>)   </td><td><a class="el" href="classxint_1_1too__big.html">too_big</a> (<a class="el" href="namespacexint.html">xint</a>)   </td></tr></table><div class="qindex"><a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_I">I</a> | <a class="qindex" href="#letter_N">N</a> | <a class="qindex" href="#letter_Q">Q</a> | <a class="qindex" href="#letter_T">T</a></div>
+<tr><td><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  B  </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>)   </td><td><a class="el" href="classxint_1_1invalid__modulus.html">invalid_modulus</a> (<a class="el" href="namespacexint.html">xint</a>)   </td><td><a class="el" href="classxint_1_1overflow__error.html">overflow_error</a> (<a class="el" href="namespacexint.html">xint</a>)   </td><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  S  </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>)   </td><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  I  </div></td></tr></table>
+</td><td><a name="letter_N"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  N  </div></td></tr></table>
+</td><td><a name="letter_Q"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  Q  </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>)   </td></tr><tr><td><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  C  </div></td></tr></table>
+</td><td><a class="el" href="structxint_1_1strong__random__generator_1_1impl__t.html">strong_random_generator::impl_t</a> (<a class="el" href="namespacexint.html">xint</a>)   </td><td><a class="el" href="classxint_1_1no__strong__random.html">no_strong_random</a> (<a class="el" href="namespacexint.html">xint</a>)   </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>)   </td><td><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  T  </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>)   </td><td><a class="el" href="classxint_1_1integer.html">integer</a> (<a class="el" href="namespacexint.html">xint</a>)   </td><td><a class="el" href="classxint_1_1not__a__number.html">not_a_number</a> (<a class="el" href="namespacexint.html">xint</a>)   </td><td><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  R  </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>)   </td></tr><tr><td><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  D  </div></td></tr></table>
+</td><td><a class="el" href="classxint_1_1invalid__base.html">invalid_base</a> (<a class="el" href="namespacexint.html">xint</a>)   </td><td><a name="letter_O"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  O  </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>)   </td><td><a class="el" href="classxint_1_1too__big.html">too_big</a> (<a class="el" href="namespacexint.html">xint</a>)   </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>)   </td><td><a class="el" href="classxint_1_1invalid__digit.html">invalid_digit</a> (<a class="el" href="namespacexint.html">xint</a>)   </td></tr></table><div class="qindex"><a class="qindex" href="#letter_B">B</a> | <a class="qindex" href="#letter_C">C</a> | <a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_I">I</a> | <a class="qindex" href="#letter_N">N</a> | <a class="qindex" href="#letter_O">O</a> | <a class="qindex" href=
"#letter_Q">Q</a> | <a class="qindex" href="#letter_R">R</a> | <a class="qindex" href="#letter_S">S</a> | <a class="qindex" href="#letter_T">T</a></div>
 </div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -83,7 +89,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1divide__by__zero-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1divide__by__zero-members.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1divide__by__zero-members.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -77,7 +78,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1divide__by__zero.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1divide__by__zero.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1divide__by__zero.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -68,7 +69,7 @@
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00297">297</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00306">306</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 <hr/><h2>Constructor & Destructor Documentation</h2>
 <a class="anchor" id="a31233d42a45ca6ef7078e700fa114ad2"></a><!-- doxytag: member="xint::divide_by_zero::divide_by_zero" ref="a31233d42a45ca6ef7078e700fa114ad2" args="(const std::string &what="divide by zero error")" -->
 <div class="memitem">
@@ -86,7 +87,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00299">299</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00308">308</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
 </div>
 </div>
@@ -112,7 +113,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1integer-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1integer-members.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1integer-members.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -76,7 +77,8 @@
   <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">hex_digits</a>() const </td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer</a>()</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#aa123fb47accd778f87e2866c9d986bb7">integer</a>(const integer &b)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a65df30415a5d2f91a72fb2c55d7cd33c">integer</a>(const T &n)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a67db70248d9890990c257a1d069192e3">integer</a>(const T &n, typename boost::enable_if< boost::is_integral< T > >::type *=0, typename boost::enable_if< boost::is_signed< T > >::type *=0)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a0cad684bc9d7032497c7178edb91a5eb">integer</a>(const T &n, typename boost::enable_if< boost::is_integral< T > >::type *=0, typename boost::enable_if< boost::is_unsigned< T > >::type *=0)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a6dfc86dfc539cfda1062ef1bc24aa526">integer</a>(const std::string &str, size_t base=10)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [explicit]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#a1211c9298c3281815bc9b709439d031a">integer</a>(const not_a_number &)</td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td><code> [explicit]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a>() const </td><td><a class="el" href="classxint_1_1integer.html">xint::integer</a></td><td></td></tr>
@@ -121,7 +123,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1integer.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1integer.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1integer.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -65,15 +66,13 @@
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer</a> ()</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">The extended integer class.  <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#aa123fb47accd778f87e2866c9d986bb7">integer</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &b)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">(Can throw std::overflow_error if not enough memory to construct a new integer).  <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a65df30415a5d2f91a72fb2c55d7cd33c">integer</a> (const T &n)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a67db70248d9890990c257a1d069192e3">integer</a> (const T &n, typename boost::enable_if< boost::is_integral< T > >::type *=0, typename boost::enable_if< boost::is_signed< T > >::type *=0)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a0cad684bc9d7032497c7178edb91a5eb">integer</a> (const T &n, typename boost::enable_if< boost::is_integral< T > >::type *=0, typename boost::enable_if< boost::is_unsigned< T > >::type *=0)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a6dfc86dfc539cfda1062ef1bc24aa526">integer</a> (const std::string &str, size_t base=10)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Copy constructs a integer from a digits string (decimal by default).  <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a1211c9298c3281815bc9b709439d031a">integer</a> (const <a class="el" href="classxint_1_1not__a__number.html">not_a_number</a> &)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructs an extended integer with the NotANumber value;.  <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">~integer</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">odd</a> () const </td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">even</a> () const </td></tr>
@@ -106,9 +105,7 @@
 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a> () const </td></tr>
 <tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classxint_1_1integer.html">integer</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">zero</a> ()</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Extended integer holding zero.  <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classxint_1_1integer.html">integer</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">one</a> ()</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Extended integer holding one.  <br/></td></tr>
 <tr><td colspan="2"><h2>Private Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a> (<a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> init=0)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#adaaff26c817fec0bef3cf903773e3f7b">_init</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &c)</td></tr>
@@ -117,14 +114,13 @@
 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a> ()</td></tr>
 <tr><td colspan="2"><h2>Private Attributes</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Raw data representing an extended integer.  <br/></td></tr>
 <tr><td colspan="2"><h2>Static Private Attributes</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classxint_1_1integer.html">integer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a> = 0</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classxint_1_1integer.html">integer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a> = 0</td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00093">93</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00086">86</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 <hr/><h2>Constructor & Destructor Documentation</h2>
 <a class="anchor" id="ad32b3b13167c61e48aede083a3e1c7a8"></a><!-- doxytag: member="xint::integer::integer" ref="ad32b3b13167c61e48aede083a3e1c7a8" args="()" -->
 <div class="memitem">
@@ -141,14 +137,11 @@
 </div>
 <div class="memdoc">
 
-<p>The extended integer class. </p>
-<p>Constructs a default integer, value zero. (Can throw std::overflow_error if not enough memory to construct a new integer). </p>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00022">22</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00026">26</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00043">_init()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00047">_init()</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00205">one()</a>, and <a class="el" href="integer_8cpp_source.html#l00200">zero()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00209">one()</a>, and <a class="el" href="integer_8cpp_source.html#l00204">zero()</a>.</p>
 
 </div>
 </div>
@@ -168,16 +161,52 @@
 </div>
 <div class="memdoc">
 
-<p>(Can throw std::overflow_error if not enough memory to construct a new integer). </p>
-<p>Copy constructs a integer from another integer. </p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00030">30</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00026">26</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00047">_init()</a>, <a class="el" href="xint_8hpp_source.html#l00152">data</a>, and <a class="el" href="integer_8cpp_source.html#l00126">nan()</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00043">_init()</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="integer_8cpp_source.html#l00122">nan()</a>.</p>
+</div>
+</div>
+<a class="anchor" id="a67db70248d9890990c257a1d069192e3"></a><!-- doxytag: member="xint::integer::integer" ref="a67db70248d9890990c257a1d069192e3" args="(const T &n, typename boost::enable_if< boost::is_integral< T > >::type *=0, typename boost::enable_if< boost::is_signed< T > >::type *=0)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<typename T > </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">xint::integer::integer </td>
+          <td>(</td>
+          <td class="paramtype">const T & </td>
+          <td class="paramname"> <em>n</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">typename boost::enable_if< boost::is_integral< T > >::type * </td>
+          <td class="paramname"> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">typename boost::enable_if< boost::is_signed< T > >::type * </td>
+          <td class="paramname"> = <code>0</code></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00345">345</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>References <a class="el" href="integer_8cpp_source.html#l00047">_init()</a>, <a class="el" href="integer_8cpp_source.html#l00105">_set_negative()</a>, and <a class="el" href="xint_8hpp_source.html#l00046">xint::detail::digit_mask</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a65df30415a5d2f91a72fb2c55d7cd33c"></a><!-- doxytag: member="xint::integer::integer" ref="a65df30415a5d2f91a72fb2c55d7cd33c" args="(const T &n)" -->
+<a class="anchor" id="a0cad684bc9d7032497c7178edb91a5eb"></a><!-- doxytag: member="xint::integer::integer" ref="a0cad684bc9d7032497c7178edb91a5eb" args="(const T &n, typename boost::enable_if< boost::is_integral< T > >::type *=0, typename boost::enable_if< boost::is_unsigned< T > >::type *=0)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -187,17 +216,32 @@
           <td class="memname">xint::integer::integer </td>
           <td>(</td>
           <td class="paramtype">const T & </td>
-          <td class="paramname"> <em>n</em></td>
-          <td> ) </td>
-          <td><code> [inline]</code></td>
+          <td class="paramname"> <em>n</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">typename boost::enable_if< boost::is_integral< T > >::type * </td>
+          <td class="paramname"> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">typename boost::enable_if< boost::is_unsigned< T > >::type * </td>
+          <td class="paramname"> = <code>0</code></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00319">319</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00365">365</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00043">_init()</a>, <a class="el" href="integer_8cpp_source.html#l00101">_set_negative()</a>, and <a class="el" href="xint_8hpp_source.html#l00073">xint::detail::digit_mask</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00047">_init()</a>, and <a class="el" href="xint_8hpp_source.html#l00046">xint::detail::digit_mask</a>.</p>
 
 </div>
 </div>
@@ -226,11 +270,9 @@
 </div>
 <div class="memdoc">
 
-<p>Copy constructs a integer from a digits string (decimal by default). </p>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00031">31</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00035">35</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00043">_init()</a>, and <a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">xint::from_string()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00047">_init()</a>, and <a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">xint::from_string()</a>.</p>
 
 </div>
 </div>
@@ -250,11 +292,9 @@
 </div>
 <div class="memdoc">
 
-<p>Constructs an extended integer with the NotANumber value;. </p>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00035">35</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00039">39</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+<p>References <a class="el" href="xint_8hpp_source.html#l00152">data</a>.</p>
 
 </div>
 </div>
@@ -273,9 +313,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00039">39</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00043">43</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00084">_detach()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00088">_detach()</a>.</p>
 
 </div>
 </div>
@@ -295,11 +335,11 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00080">80</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00084">84</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="xint__data__t_8hpp_source.html#l00059">xint::detail::data_t::attach()</a>, and <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+<p>References <a class="el" href="xint__data__t_8hpp_source.html#l00059">xint::detail::data_t::attach()</a>, and <a class="el" href="xint_8hpp_source.html#l00152">data</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00043">_init()</a>, <a class="el" href="integer_8cpp_source.html#l00088">_make_unique()</a>, and <a class="el" href="integer_8cpp_source.html#l00158">operator=()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00047">_init()</a>, <a class="el" href="integer_8cpp_source.html#l00092">_make_unique()</a>, and <a class="el" href="integer_8cpp_source.html#l00162">operator=()</a>.</p>
 
 </div>
 </div>
@@ -318,11 +358,11 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00084">84</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00088">88</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00060">xint::detail::data_t::detach()</a>.</p>
+<p>References <a class="el" href="xint_8hpp_source.html#l00152">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00060">xint::detail::data_t::detach()</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00088">_make_unique()</a>, <a class="el" href="integer_8cpp_source.html#l00158">operator=()</a>, and <a class="el" href="integer_8cpp_source.html#l00039">~integer()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00092">_make_unique()</a>, <a class="el" href="integer_8cpp_source.html#l00162">operator=()</a>, and <a class="el" href="integer_8cpp_source.html#l00043">~integer()</a>.</p>
 
 </div>
 </div>
@@ -341,9 +381,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00142">142</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00136">136</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
-<p>References <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+<p>References <a class="el" href="xint_8hpp_source.html#l00152">data</a>.</p>
 
 </div>
 </div>
@@ -362,12 +402,9 @@
 </div>
 <div class="memdoc">
 
-<p><dl class="return"><dt><b>Returns:</b></dt><dd>raw data representing an extended integer. </dd></dl>
-</p>
-
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00138">138</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00135">135</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
-<p>References <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+<p>References <a class="el" href="xint_8hpp_source.html#l00152">data</a>.</p>
 
 </div>
 </div>
@@ -387,11 +424,11 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00210">210</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00214">214</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00042">xint::detail::data_t::digits</a>.</p>
+<p>References <a class="el" href="xint_8hpp_source.html#l00152">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00042">xint::detail::data_t::digits</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00110">even()</a>, <a class="el" href="integer_8cpp_source.html#l00105">odd()</a>, <a class="el" href="integer_8cpp_source.html#l00115">sign()</a>, and <a class="el" href="xint_8hpp_source.html#l00343">xint::to()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00114">even()</a>, <a class="el" href="integer_8cpp_source.html#l00109">odd()</a>, <a class="el" href="integer_8cpp_source.html#l00119">sign()</a>, and <a class="el" href="xint_8hpp_source.html#l00375">xint::to()</a>.</p>
 
 </div>
 </div>
@@ -410,11 +447,11 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00214">214</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00218">218</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00041">xint::detail::data_t::mLength</a>.</p>
+<p>References <a class="el" href="xint_8hpp_source.html#l00152">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00041">xint::detail::data_t::mLength</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00115">sign()</a>, and <a class="el" href="xint_8hpp_source.html#l00343">xint::to()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00119">sign()</a>, and <a class="el" href="xint_8hpp_source.html#l00375">xint::to()</a>.</p>
 
 </div>
 </div>
@@ -434,9 +471,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00061">61</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00065">65</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00080">_attach()</a>, <a class="el" href="data__t_8cpp_source.html#l00085">xint::detail::data_t::alloc()</a>, <a class="el" href="xint_8hpp_source.html#l00069">xint::detail::bits_per_digit</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, <a class="el" href="xint_8hpp_source.html#l00073">xint::detail::digit_mask</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">xint::detail::data_t::digits</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">xint::detail::data_t::skipLeadingZeros()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00084">_attach()</a>, <a class="el" href="data__t_8cpp_source.html#l00085">xint::detail::data_t::alloc()</a>, <a class="el" href="xint_8hpp_source.html#l00042">xint::detail::bits_per_digit</a>, <a class="el" href="xint_8hpp_source.html#l00152">data</a>, <a class="el" href="xint_8hpp_source.html#l00046">xint::detail::digit_mask</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">xint::detail::data_t::digits</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">xint::detail::data_t::skipLeadingZeros()</a>.</p>
 
 </div>
 </div>
@@ -456,9 +493,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00052">52</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00056">56</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00080">_attach()</a>, and <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00084">_attach()</a>, and <a class="el" href="xint_8hpp_source.html#l00152">data</a>.</p>
 
 </div>
 </div>
@@ -478,11 +515,11 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00043">43</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00047">47</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00080">_attach()</a>, and <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00084">_attach()</a>, and <a class="el" href="xint_8hpp_source.html#l00152">data</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00022">integer()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00026">integer()</a>.</p>
 
 </div>
 </div>
@@ -501,11 +538,11 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00088">88</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00092">92</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00080">_attach()</a>, <a class="el" href="integer_8cpp_source.html#l00084">_detach()</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00048">xint::detail::data_t::mCopies</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00084">_attach()</a>, <a class="el" href="integer_8cpp_source.html#l00088">_detach()</a>, <a class="el" href="xint_8hpp_source.html#l00152">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00048">xint::detail::data_t::mCopies</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00132">operator+=()</a>, <a class="el" href="integer_8cpp_source.html#l00146">operator-=()</a>, <a class="el" href="integer_8cpp_source.html#l00184">operator<<=()</a>, and <a class="el" href="integer_8cpp_source.html#l00192">operator>>=()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00136">operator+=()</a>, <a class="el" href="integer_8cpp_source.html#l00150">operator-=()</a>, <a class="el" href="integer_8cpp_source.html#l00188">operator<<=()</a>, and <a class="el" href="integer_8cpp_source.html#l00196">operator>>=()</a>.</p>
 
 </div>
 </div>
@@ -525,11 +562,11 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00101">101</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00105">105</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">xint::negate()</a>, and <a class="el" href="integer_8cpp_source.html#l00115">sign()</a>.</p>
+<p>References <a class="el" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">xint::negate()</a>, and <a class="el" href="integer_8cpp_source.html#l00119">sign()</a>.</p>
 
-<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00319">integer()</a>.</p>
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00345">integer()</a>.</p>
 
 </div>
 </div>
@@ -548,11 +585,11 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00218">218</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00222">222</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00122">nan()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00126">nan()</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00110">even()</a>, <a class="el" href="integer_8cpp_source.html#l00126">hex_digits()</a>, <a class="el" href="integer_8cpp_source.html#l00105">odd()</a>, <a class="el" href="integer_8cpp_source.html#l00115">sign()</a>, and <a class="el" href="xint_8hpp_source.html#l00343">xint::to()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00114">even()</a>, <a class="el" href="integer_8cpp_source.html#l00130">hex_digits()</a>, <a class="el" href="integer_8cpp_source.html#l00109">odd()</a>, <a class="el" href="integer_8cpp_source.html#l00119">sign()</a>, and <a class="el" href="xint_8hpp_source.html#l00375">xint::to()</a>.</p>
 
 </div>
 </div>
@@ -570,11 +607,10 @@
       </table>
 </div>
 <div class="memdoc">
-<dl class="return"><dt><b>Returns:</b></dt><dd>true if extended integer is even. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00110">110</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00114">114</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00210">_get_digit()</a>, and <a class="el" href="integer_8cpp_source.html#l00218">_throw_if_nan()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00214">_get_digit()</a>, and <a class="el" href="integer_8cpp_source.html#l00222">_throw_if_nan()</a>.</p>
 
 </div>
 </div>
@@ -592,11 +628,10 @@
       </table>
 </div>
 <div class="memdoc">
-<dl class="return"><dt><b>Returns:</b></dt><dd>the number of hex digits to show the integer. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00126">126</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00130">130</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00218">_throw_if_nan()</a>, and <a class="el" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">xint::log2()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00222">_throw_if_nan()</a>, and <a class="el" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">xint::log2()</a>.</p>
 
 </div>
 </div>
@@ -614,13 +649,12 @@
       </table>
 </div>
 <div class="memdoc">
-<dl class="return"><dt><b>Returns:</b></dt><dd>true if extended integer is Not-a-Number. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00122">122</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00126">126</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+<p>References <a class="el" href="xint_8hpp_source.html#l00152">data</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00218">_throw_if_nan()</a>, <a class="el" href="integer_8cpp_source.html#l00026">integer()</a>, and <a class="el" href="xint_8hpp_source.html#l00381">xint::operator<<()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00222">_throw_if_nan()</a>, <a class="el" href="integer_8cpp_source.html#l00030">integer()</a>, and <a class="el" href="xint_8hpp_source.html#l00397">xint::operator<<()</a>.</p>
 
 </div>
 </div>
@@ -638,11 +672,10 @@
       </table>
 </div>
 <div class="memdoc">
-<dl class="return"><dt><b>Returns:</b></dt><dd>true if extended integer is odd. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00105">105</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00109">109</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00210">_get_digit()</a>, and <a class="el" href="integer_8cpp_source.html#l00218">_throw_if_nan()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00214">_get_digit()</a>, and <a class="el" href="integer_8cpp_source.html#l00222">_throw_if_nan()</a>.</p>
 
 </div>
 </div>
@@ -661,13 +694,11 @@
 </div>
 <div class="memdoc">
 
-<p>Extended integer holding one. </p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00209">209</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00205">205</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>References <a class="el" href="xint_8hpp_source.html#l00150">cOne</a>, and <a class="el" href="integer_8cpp_source.html#l00026">integer()</a>.</p>
 
-<p>References <a class="el" href="xint_8hpp_source.html#l00157">cOne</a>, and <a class="el" href="integer_8cpp_source.html#l00022">integer()</a>.</p>
-
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00173">operator++()</a>, and <a class="el" href="integer_8cpp_source.html#l00174">operator--()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00177">operator++()</a>, and <a class="el" href="integer_8cpp_source.html#l00178">operator--()</a>.</p>
 
 </div>
 </div>
@@ -687,7 +718,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00171">171</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00175">175</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
 <p>References <a class="el" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">xint::mod()</a>.</p>
 
@@ -709,7 +740,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00180">180</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00184">184</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
 <p>References <a class="el" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">xint::bitwise_and()</a>.</p>
 
@@ -731,7 +762,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00169">169</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00173">173</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
 <p>References <a class="el" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">xint::multiply()</a>.</p>
 
@@ -753,9 +784,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00175">175</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00179">179</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00205">one()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00209">one()</a>.</p>
 
 </div>
 </div>
@@ -774,9 +805,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00173">173</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00177">177</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00205">one()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00209">one()</a>.</p>
 
 </div>
 </div>
@@ -796,9 +827,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00132">132</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00136">136</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00088">_make_unique()</a>, <a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint::add()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">xint::detail::data_t::add()</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">xint::detail::data_t::mLength</a>, and <a class="el" href="integer_8cpp_source.html#l00115">sign()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00092">_make_unique()</a>, <a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint::add()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">xint::detail::data_t::add()</a>, <a class="el" href="xint_8hpp_source.html#l00152">data</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">xint::detail::data_t::mLength</a>, and <a class="el" href="integer_8cpp_source.html#l00119">sign()</a>.</p>
 
 </div>
 </div>
@@ -818,9 +849,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00176">176</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00180">180</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00205">one()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00209">one()</a>.</p>
 
 </div>
 </div>
@@ -839,9 +870,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00174">174</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00178">178</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00205">one()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00209">one()</a>.</p>
 
 </div>
 </div>
@@ -861,9 +892,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00146">146</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00150">150</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00088">_make_unique()</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, <a class="el" href="integer_8cpp_source.html#l00115">sign()</a>, <a class="el" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint::subtract()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">xint::detail::data_t::subtract()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00092">_make_unique()</a>, <a class="el" href="xint_8hpp_source.html#l00152">data</a>, <a class="el" href="integer_8cpp_source.html#l00119">sign()</a>, <a class="el" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint::subtract()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">xint::detail::data_t::subtract()</a>.</p>
 
 </div>
 </div>
@@ -883,7 +914,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00170">170</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00174">174</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
 <p>References <a class="el" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">xint::divide()</a>.</p>
 
@@ -905,7 +936,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00178">178</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00182">182</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
 <p>References <a class="el" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">xint::shift_left()</a>.</p>
 
@@ -927,9 +958,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00184">184</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00188">188</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00088">_make_unique()</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="data__t_8cpp_source.html#l00251">xint::detail::data_t::shift_left()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00092">_make_unique()</a>, <a class="el" href="xint_8hpp_source.html#l00152">data</a>, and <a class="el" href="data__t_8cpp_source.html#l00252">xint::detail::data_t::shift_left()</a>.</p>
 
 </div>
 </div>
@@ -949,9 +980,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00158">158</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00162">162</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00080">_attach()</a>, <a class="el" href="integer_8cpp_source.html#l00084">_detach()</a>, and <a class="el" href="xint_8hpp_source.html#l00158">data</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00084">_attach()</a>, <a class="el" href="integer_8cpp_source.html#l00088">_detach()</a>, and <a class="el" href="xint_8hpp_source.html#l00152">data</a>.</p>
 
 </div>
 </div>
@@ -971,7 +1002,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00179">179</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00183">183</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
 <p>References <a class="el" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">xint::shift_right()</a>.</p>
 
@@ -993,9 +1024,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00192">192</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00196">196</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00088">_make_unique()</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="data__t_8cpp_source.html#l00279">xint::detail::data_t::shift_right()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00092">_make_unique()</a>, <a class="el" href="xint_8hpp_source.html#l00152">data</a>, and <a class="el" href="data__t_8cpp_source.html#l00280">xint::detail::data_t::shift_right()</a>.</p>
 
 </div>
 </div>
@@ -1015,7 +1046,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00182">182</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00186">186</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
 <p>References <a class="el" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">xint::bitwise_xor()</a>.</p>
 
@@ -1037,7 +1068,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00181">181</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00185">185</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
 <p>References <a class="el" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">xint::bitwise_or()</a>.</p>
 
@@ -1057,13 +1088,12 @@
       </table>
 </div>
 <div class="memdoc">
-<dl class="return"><dt><b>Returns:</b></dt><dd>-1 if extended integer is < 0. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00115">115</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00119">119</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00210">_get_digit()</a>, <a class="el" href="integer_8cpp_source.html#l00214">_get_length()</a>, <a class="el" href="integer_8cpp_source.html#l00218">_throw_if_nan()</a>, <a class="el" href="xint_8hpp_source.html#l00158">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00049">xint::detail::data_t::mIsNegative</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00214">_get_digit()</a>, <a class="el" href="integer_8cpp_source.html#l00218">_get_length()</a>, <a class="el" href="integer_8cpp_source.html#l00222">_throw_if_nan()</a>, <a class="el" href="xint_8hpp_source.html#l00152">data</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00049">xint::detail::data_t::mIsNegative</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00101">_set_negative()</a>, <a class="el" href="compare_8cpp_source.html#l00054">operator!()</a>, <a class="el" href="integer_8cpp_source.html#l00132">operator+=()</a>, <a class="el" href="integer_8cpp_source.html#l00146">operator-=()</a>, <a class="el" href="xint_8hpp_source.html#l00381">xint::operator<<()</a>, and <a class="el" href="xint_8hpp_source.html#l00343">xint::to()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00105">_set_negative()</a>, <a class="el" href="integer_8cpp_source.html#l00136">operator+=()</a>, <a class="el" href="integer_8cpp_source.html#l00150">operator-=()</a>, <a class="el" href="xint_8hpp_source.html#l00397">xint::operator<<()</a>, and <a class="el" href="xint_8hpp_source.html#l00375">xint::to()</a>.</p>
 
 </div>
 </div>
@@ -1082,11 +1112,9 @@
 </div>
 <div class="memdoc">
 
-<p>Extended integer holding zero. </p>
+<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00204">204</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
 
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00200">200</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-<p>References <a class="el" href="xint_8hpp_source.html#l00156">cZero</a>, and <a class="el" href="integer_8cpp_source.html#l00022">integer()</a>.</p>
+<p>References <a class="el" href="xint_8hpp_source.html#l00150">cZero</a>, and <a class="el" href="integer_8cpp_source.html#l00026">integer()</a>.</p>
 
 </div>
 </div>
@@ -1102,9 +1130,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00157">157</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00150">150</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00205">one()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00209">one()</a>.</p>
 
 </div>
 </div>
@@ -1119,9 +1147,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00156">156</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00150">150</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00200">zero()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00204">zero()</a>.</p>
 
 </div>
 </div>
@@ -1136,11 +1164,9 @@
 </div>
 <div class="memdoc">
 
-<p>Raw data representing an extended integer. </p>
-
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00158">158</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00152">152</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00080">_attach()</a>, <a class="el" href="integer_8cpp_source.html#l00084">_detach()</a>, <a class="el" href="xint_8hpp_source.html#l00138">_get_data()</a>, <a class="el" href="integer_8cpp_source.html#l00210">_get_digit()</a>, <a class="el" href="integer_8cpp_source.html#l00214">_get_length()</a>, <a class="el" href="integer_8cpp_source.html#l00043">_init()</a>, <a class="el" href="integer_8cpp_source.html#l00088">_make_unique()</a>, <a class="el" href="integer_8cpp_source.html#l00026">integer()</a>, <a class="el" href="integer_8cpp_source.html#l00122">nan()</a>, <a class="el" href="integer_8cpp_source.html#l00132">operator+=()</a>, <a class="el" href="integer_8cpp_source.html#l00146">operator-=()</a>, <a class="el" href="integer_8cpp_source.html#l00184">operator<<=()</a>, <a class="el" href="integer_8cpp_source.html#l00158">operator=()</a>, <a class="el" href="integer_8cpp_source.html#l00192">operator>>=()</a>, and <a class="el" hr
ef="integer_8cpp_source.html#l00115">sign()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00084">_attach()</a>, <a class="el" href="integer_8cpp_source.html#l00088">_detach()</a>, <a class="el" href="xint_8hpp_source.html#l00135">_get_data()</a>, <a class="el" href="integer_8cpp_source.html#l00214">_get_digit()</a>, <a class="el" href="integer_8cpp_source.html#l00218">_get_length()</a>, <a class="el" href="integer_8cpp_source.html#l00047">_init()</a>, <a class="el" href="integer_8cpp_source.html#l00092">_make_unique()</a>, <a class="el" href="integer_8cpp_source.html#l00030">integer()</a>, <a class="el" href="integer_8cpp_source.html#l00126">nan()</a>, <a class="el" href="integer_8cpp_source.html#l00136">operator+=()</a>, <a class="el" href="integer_8cpp_source.html#l00150">operator-=()</a>, <a class="el" href="integer_8cpp_source.html#l00188">operator<<=()</a>, <a class="el" href="integer_8cpp_source.html#l00162">operator=()</a>, <a class="el" href="integer_8cpp_source.html#l00196">operator>>=()</a>, and <a class="el" hr
ef="integer_8cpp_source.html#l00119">sign()</a>.</p>
 
 </div>
 </div>
@@ -1167,7 +1193,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__base-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__base-members.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__base-members.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -77,7 +78,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__base.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__base.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__base.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -68,7 +69,7 @@
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00279">279</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00288">288</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 <hr/><h2>Constructor & Destructor Documentation</h2>
 <a class="anchor" id="a16a577d5584652ca358450cbb55b5d55"></a><!-- doxytag: member="xint::invalid_base::invalid_base" ref="a16a577d5584652ca358450cbb55b5d55" args="(const std::string &what="invalid base")" -->
 <div class="memitem">
@@ -86,7 +87,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00281">281</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00290">290</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
 </div>
 </div>
@@ -112,7 +113,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__digit-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__digit-members.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__digit-members.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -77,7 +78,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__digit.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__digit.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__digit.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -68,7 +69,7 @@
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00285">285</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00294">294</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 <hr/><h2>Constructor & Destructor Documentation</h2>
 <a class="anchor" id="a832283e75569bd7e9d09f38ebae87a27"></a><!-- doxytag: member="xint::invalid_digit::invalid_digit" ref="a832283e75569bd7e9d09f38ebae87a27" args="(const std::string &what="invalid digit")" -->
 <div class="memitem">
@@ -86,7 +87,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00287">287</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00296">296</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
 </div>
 </div>
@@ -112,7 +113,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__modulus-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__modulus-members.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__modulus-members.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -77,7 +78,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__modulus.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__modulus.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1invalid__modulus.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -68,7 +69,7 @@
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00291">291</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00300">300</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 <hr/><h2>Constructor & Destructor Documentation</h2>
 <a class="anchor" id="a691026e352d38fc5120c12d6d134e854"></a><!-- doxytag: member="xint::invalid_modulus::invalid_modulus" ref="a691026e352d38fc5120c12d6d134e854" args="(const std::string &what="invalid modulus")" -->
 <div class="memitem">
@@ -86,7 +87,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00293">293</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00302">302</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
 </div>
 </div>
@@ -112,7 +113,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1not__a__number-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1not__a__number-members.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1not__a__number-members.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -77,7 +78,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1not__a__number.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1not__a__number.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1not__a__number.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -68,7 +69,7 @@
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00309">309</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00324">324</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 <hr/><h2>Constructor & Destructor Documentation</h2>
 <a class="anchor" id="a4ecc5bcc06a5d660176d51fc63c996cd"></a><!-- doxytag: member="xint::not_a_number::not_a_number" ref="a4ecc5bcc06a5d660176d51fc63c996cd" args="(const std::string &what="attempted to use a Not-a-Number")" -->
 <div class="memitem">
@@ -86,7 +87,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00311">311</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00326">326</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
 </div>
 </div>
@@ -112,7 +113,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1too__big-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1too__big-members.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1too__big-members.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -77,7 +78,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1too__big.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1too__big.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/classxint_1_1too__big.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -68,7 +69,7 @@
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00303">303</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00318">318</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 <hr/><h2>Constructor & Destructor Documentation</h2>
 <a class="anchor" id="a37a714ef8bfef8a1cf6cfa08a5db1ccc"></a><!-- doxytag: member="xint::too_big::too_big" ref="a37a714ef8bfef8a1cf6cfa08a5db1ccc" args="(const std::string &what="value out of range for requested ""conversion")" -->
 <div class="memitem">
@@ -86,7 +87,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00305">305</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00320">320</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
 </div>
 </div>
@@ -112,7 +113,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/compare_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/compare_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/compare_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -63,229 +63,16 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a> (const integer &b1, const integer &b2, bool ignoresign)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="compare_8cpp.html#ac7523d81be85d97950c95f10c17a8c9d">operator!</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="compare_8cpp.html#a8afed82c679c5a4edee2108ddbf24e76">operator==</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="compare_8cpp.html#ae28b8d9fc3781805e9bb9cfaf0dc01df">operator!=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="compare_8cpp.html#a13bf860274cbfba7049ee1109ef79ece">operator<</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="compare_8cpp.html#aafe4265378fbdfe8382de5624439cf86">operator></a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="compare_8cpp.html#aab167dd151d36a75704e98361c845e67">operator<=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="compare_8cpp.html#a3e59818919966e38b68c5af625acf65e">operator>=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </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> &num1)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </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> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </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> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4f4a4771bf443e6724abbd18173ecc86">xint::operator<</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a1229d1f1efbdf3ffeac8b2964ca66093">xint::operator></a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab9d5f34c4d4bed1c86380d4f72edcd9b">xint::operator<=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a766324a6f216f3b49a3e9aa885e9531c">xint::operator>=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
 </table>
-<hr/><h2>Function Documentation</h2>
-<a class="anchor" id="ac7523d81be85d97950c95f10c17a8c9d"></a><!-- doxytag: member="compare.cpp::operator!" ref="ac7523d81be85d97950c95f10c17a8c9d" args="(const xint::integer &num1)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool operator! </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num1</em></td>
-          <td> ) </td>
-          <td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00054">54</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
-
-<p>References <a class="el" href="integer_8cpp_source.html#l00115">xint::integer::sign()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae28b8d9fc3781805e9bb9cfaf0dc01df"></a><!-- doxytag: member="compare.cpp::operator!=" ref="ae28b8d9fc3781805e9bb9cfaf0dc01df" args="(const xint::integer &num1, const xint::integer &num2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool operator!= </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00056">56</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a13bf860274cbfba7049ee1109ef79ece"></a><!-- doxytag: member="compare.cpp::operator<" ref="a13bf860274cbfba7049ee1109ef79ece" args="(const xint::integer &num1, const xint::integer &num2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool operator< </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00057">57</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aab167dd151d36a75704e98361c845e67"></a><!-- doxytag: member="compare.cpp::operator<=" ref="aab167dd151d36a75704e98361c845e67" args="(const xint::integer &num1, const xint::integer &num2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool operator<= </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00059">59</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8afed82c679c5a4edee2108ddbf24e76"></a><!-- doxytag: member="compare.cpp::operator==" ref="a8afed82c679c5a4edee2108ddbf24e76" args="(const xint::integer &num1, const xint::integer &num2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool operator== </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00055">55</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aafe4265378fbdfe8382de5624439cf86"></a><!-- doxytag: member="compare.cpp::operator>" ref="aafe4265378fbdfe8382de5624439cf86" args="(const xint::integer &num1, const xint::integer &num2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool operator> </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00058">58</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3e59818919966e38b68c5af625acf65e"></a><!-- doxytag: member="compare.cpp::operator>=" ref="a3e59818919966e38b68c5af625acf65e" args="(const xint::integer &num1, const xint::integer &num2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool operator>= </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00060">60</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
-
-</div>
-</div>
 </div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -305,7 +92,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/compare_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/compare_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/compare_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -94,7 +94,7 @@
 <a name="l00038"></a>00038     <span class="keywordflow">if</span> (b1data->mLength != b2data->mLength) {
 <a name="l00039"></a>00039         answer=((b1data->mLength < b2data->mLength) ? -1 : 1);
 <a name="l00040"></a>00040     } <span class="keywordflow">else</span> {
-<a name="l00041"></a>00041         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = b1data->mLength - 1; x >= 0; --x) {
+<a name="l00041"></a>00041         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = <span class="keywordtype">int</span>(b1data->mLength) - 1; x >= 0; --x) {
 <a name="l00042"></a>00042             <span class="keywordflow">if</span> (b1data->digits[x] != b2data->digits[x]) {
 <a name="l00043"></a>00043                 answer=((b1data->digits[x] < b2data->digits[x]) ? -1 : 1);
 <a name="l00044"></a>00044                 <span class="keywordflow">break</span>;
@@ -105,15 +105,15 @@
 <a name="l00049"></a>00049     <span class="keywordflow">return</span> answer;
 <a name="l00050"></a>00050 }
 <a name="l00051"></a>00051 
-<a name="l00052"></a>00052 } <span class="comment">// namespace xint</span>
-<a name="l00053"></a>00053 
-<a name="l00054"></a><a class="code" href="xint_8hpp.html#aab9cb2021cb63480542f266a67c50314">00054</a> <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#ac7523d81be85d97950c95f10c17a8c9d">operator!</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a> &num1) { <span class="keywordflow">return</span> num1.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>()==0; }
-<a name="l00055"></a><a class="code" href="xint_8hpp.html#a255c817c8569ac9365878a9476bfe3b3">00055</a> <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#a8afed82c679c5a4edee2108ddbf24e76">operator==</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a> &num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a> &num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)==0; }
-<a name="l00056"></a><a class="code" href="xint_8hpp.html#a7f95e1c65d52023897d57fac225ba297">00056</a> <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#ae28b8d9fc3781805e9bb9cfaf0dc01df">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)!=0; }
-<a name="l00057"></a><a class="code" href="xint_8hpp.html#a2271282006f914e5442f53508f6c5355">00057</a> <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#a13bf860274cbfba7049ee1109ef79ece">operator<</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)<0; }
-<a name="l00058"></a><a class="code" href="xint_8hpp.html#a328006b6ca161372a3cd91ca199a56df">00058</a> <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#aafe4265378fbdfe8382de5624439cf86">operator></a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)>0; }
-<a name="l00059"></a><a class="code" href="xint_8hpp.html#aa6909705d9662396b60b7dca7193895c">00059</a> <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#aab167dd151d36a75704e98361c845e67">operator<=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)<=0; }
-<a name="l00060"></a><a class="code" href="xint_8hpp.html#a9b081858436ec650e95e857faff0cf4e">00060</a> <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#a3e59818919966e38b68c5af625acf65e">operator>=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)>=0; }
+<a name="l00052"></a>00052 <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">xint::integer</a> &num1) { <span class="keywordflow">return</span> num1.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>()==0; }
+<a name="l00053"></a>00053 <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">xint::integer</a> &num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a> &num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)==0; }
+<a name="l00054"></a>00054 <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">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)!=0; }
+<a name="l00055"></a>00055 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a4f4a4771bf443e6724abbd18173ecc86">operator<</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)<0; }
+<a name="l00056"></a>00056 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a1229d1f1efbdf3ffeac8b2964ca66093">operator></a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)>0; }
+<a name="l00057"></a>00057 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ab9d5f34c4d4bed1c86380d4f72edcd9b">operator<=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)<=0; }
+<a name="l00058"></a>00058 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a766324a6f216f3b49a3e9aa885e9531c">operator>=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare</a>(num1, num2)>=0; }
+<a name="l00059"></a>00059 
+<a name="l00060"></a>00060 } <span class="comment">// namespace xint</span>
 </pre></div></div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -133,7 +133,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/convert_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/convert_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/convert_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -66,10 +66,6 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">xint::to_string</a> (const integer &n, size_t base, bool upperCase)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">xint::from_string</a> (const std::string &str, size_t base)</td></tr>
@@ -95,7 +91,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/convert_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/convert_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/convert_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -133,7 +133,7 @@
 <a name="l00077"></a>00077         <span class="keywordflow">return</span> r;
 <a name="l00078"></a>00078     } <span class="keywordflow">else</span> {
 <a name="l00079"></a>00079         <span class="keyword">const</span> integer <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>=base;
-<a name="l00080"></a>00080         std::pair<integer, integer> a=std::make_pair(n, <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>());
+<a name="l00080"></a>00080         std::pair<integer, integer> a=std::make_pair(n, <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>());
 <a name="l00081"></a>00081         a.first._set_negative(<span class="keyword">false</span>);
 <a name="l00082"></a>00082 
 <a name="l00083"></a>00083         integer r;
@@ -209,7 +209,7 @@
 <a name="l00153"></a>00153 
 <a name="l00154"></a>00154     integer r;
 <a name="l00155"></a>00155     detail::data_t *rdata=r.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>();
-<a name="l00156"></a>00156     rdata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>((str.length() + bytesPerDigit - 1)/bytesPerDigit);
+<a name="l00156"></a>00156     rdata-><a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a>((str.length() + bytesPerDigit - 1)/bytesPerDigit);
 <a name="l00157"></a>00157     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *p=rdata->digits;
 <a name="l00158"></a>00158 
 <a name="l00159"></a>00159     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *s=(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)str.data(), *se=s+str.length();
@@ -265,7 +265,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/data__t_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/data__t_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/data__t_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -64,15 +64,7 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html">xint::detail</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>implementation details, normal users should not need to use these. </p>
-<br/></td></tr>
-</p>
 </table>
 </div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
@@ -93,7 +85,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/data__t_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/data__t_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/data__t_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -76,8 +76,8 @@
 <a name="l00020"></a><a class="code" href="namespacexint_1_1detail.html">00020</a> <span class="keyword">namespace </span>detail {
 <a name="l00021"></a>00021 
 <a name="l00022"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">00022</a> <a class="code" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">data_t::data_t</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial1, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial2, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> initial3) {
-<a name="l00023"></a>00023     <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=1;
-<a name="l00024"></a>00024     <a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>=<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>;
+<a name="l00023"></a>00023     <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=1;
+<a name="l00024"></a>00024     <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="l00025"></a>00025     <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>;
 <a name="l00026"></a>00026     <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[0]=initial1;
 <a name="l00027"></a>00027     <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[1]=initial2;
@@ -87,24 +87,24 @@
 <a name="l00031"></a>00031 }
 <a name="l00032"></a>00032 
 <a name="l00033"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#ae5afaa677468a9624ed3fb04318fd2a3">00033</a> <a class="code" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">data_t::data_t</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a> *c) {
-<a name="l00034"></a>00034     <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=c-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00034"></a>00034     <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=c-><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
 <a name="l00035"></a>00035     <span class="keywordflow">if</span> (c-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a> == c-><a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>) {
 <a name="l00036"></a>00036         <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>;
-<a name="l00037"></a>00037         <a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>=<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>;
+<a name="l00037"></a>00037         <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="l00038"></a>00038     } <span class="keywordflow">else</span> {
 <a name="l00039"></a>00039         <span class="keywordflow">try</span> {
-<a name="l00040"></a>00040             <a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>=<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00040"></a>00040             <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="l00041"></a>00041 <span class="preprocessor">            #ifdef XINT_SECURE</span>
-<a name="l00042"></a>00042 <span class="preprocessor"></span>                <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=<span class="keyword">new</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>[<a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>];
+<a name="l00042"></a>00042 <span class="preprocessor"></span>                <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=<span class="keyword">new</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>[<a class="code" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">mAllocated</a>];
 <a name="l00043"></a>00043 <span class="preprocessor">            #else</span>
-<a name="l00044"></a>00044 <span class="preprocessor"></span>                <a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>.resize(<a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>, 0);
+<a name="l00044"></a>00044 <span class="preprocessor"></span>                <a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>.resize(<a class="code" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">mAllocated</a>, 0);
 <a name="l00045"></a>00045                 <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#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>[0];
 <a name="l00046"></a>00046 <span class="preprocessor">            #endif</span>
 <a name="l00047"></a>00047 <span class="preprocessor"></span>        } <span class="keywordflow">catch</span> (std::bad_alloc&) {
-<a name="l00048"></a>00048             <span class="keywordflow">throw</span> std::overflow_error(<span class="stringliteral">"Out of memory allocating xint::integer"</span>);
+<a name="l00048"></a>00048             <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1overflow__error.html">xint::overflow_error</a>(<span class="stringliteral">"Out of memory allocating xint::integer"</span>);
 <a name="l00049"></a>00049         }
 <a name="l00050"></a>00050     }
-<a name="l00051"></a>00051     memcpy(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, c-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>));
+<a name="l00051"></a>00051     memcpy(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, c-><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="l00052"></a>00052 
 <a name="l00053"></a>00053     <a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>=0;
 <a name="l00054"></a>00054     <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>=c-><a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>;
@@ -112,16 +112,16 @@
 <a name="l00056"></a>00056 
 <a name="l00057"></a>00057 <span class="preprocessor">#ifdef XINT_SECURE</span>
 <a name="l00058"></a>00058 <span class="preprocessor"></span>data_t::~data_t() {
-<a name="l00059"></a>00059     <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>, <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>);
+<a name="l00059"></a>00059     <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>, <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">QuickDigits::count</a>);
 <a name="l00060"></a>00060     <span class="keywordflow">if</span> (<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a> != <a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>) {
-<a name="l00061"></a>00061         <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>);
+<a name="l00061"></a>00061         <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">mAllocated</a>);
 <a name="l00062"></a>00062         <span class="keyword">delete</span>[] <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
 <a name="l00063"></a>00063     }
 <a name="l00064"></a>00064 }
 <a name="l00065"></a>00065 <span class="preprocessor">#endif</span>
 <a name="l00066"></a>00066 <span class="preprocessor"></span>
 <a name="l00067"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">00067</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">data_t::skipLeadingZeros</a>() {
-<a name="l00068"></a>00068     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>-1;
+<a name="l00068"></a>00068     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>-1;
 <a name="l00069"></a>00069     <span class="keywordflow">while</span> (d><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a> && *d==0) --d;
 <a name="l00070"></a>00070     mLength=int((d-<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>)+1);
 <a name="l00071"></a>00071     <span class="keywordflow">if</span> (mLength==1 && <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't negative</span>
@@ -130,7 +130,7 @@
 <a name="l00074"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a57fc3966c44d09daeede53899673cde3">00074</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a57fc3966c44d09daeede53899673cde3">data_t::quickset</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d1, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d2, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d3) {
 <a name="l00075"></a>00075     assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
 <a name="l00076"></a>00076 
-<a name="l00077"></a>00077     <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=3;
+<a name="l00077"></a>00077     <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=3;
 <a name="l00078"></a>00078     <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[0]=d1;
 <a name="l00079"></a>00079     <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[1]=d2;
 <a name="l00080"></a>00080     <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[2]=d3;
@@ -138,18 +138,18 @@
 <a name="l00082"></a>00082     <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
 <a name="l00083"></a>00083 }
 <a name="l00084"></a>00084 
-<a name="l00085"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">00085</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">data_t::alloc</a>(<span class="keywordtype">int</span> newcount, <span class="keywordtype">bool</span> copydigits) {
-<a name="l00086"></a>00086     <span class="keywordflow">if</span> (<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>==<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a> && newcount<=<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>) {
-<a name="l00087"></a>00087         <span class="keywordflow">if</span> (!copydigits) <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>);
-<a name="l00088"></a>00088         <span class="keywordflow">else</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>, (newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>));
-<a name="l00089"></a>00089         <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=newcount;
-<a name="l00090"></a>00090     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (newcount < <a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>) {
+<a name="l00085"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">00085</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="l00086"></a>00086     <span class="keywordflow">if</span> (<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>==<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a> && newcount<=<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">QuickDigits::count</a>) {
+<a name="l00087"></a>00087         <span class="keywordflow">if</span> (!copydigits) <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">QuickDigits::count</a>);
+<a name="l00088"></a>00088         <span class="keywordflow">else</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>, (newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>));
+<a name="l00089"></a>00089         <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=newcount;
+<a name="l00090"></a>00090     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (newcount < <a class="code" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">mAllocated</a>) {
 <a name="l00091"></a>00091         <span class="keywordflow">if</span> (copydigits) {
-<a name="l00092"></a>00092             <span class="keywordflow">if</span> (newcount><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>) <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>, newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>);
-<a name="l00093"></a>00093             <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=newcount;
+<a name="l00092"></a>00092             <span class="keywordflow">if</span> (newcount><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="l00093"></a>00093             <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=newcount;
 <a name="l00094"></a>00094         } <span class="keywordflow">else</span> {
-<a name="l00095"></a>00095             <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=newcount;
-<a name="l00096"></a>00096             <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>);
+<a name="l00095"></a>00095             <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=newcount;
+<a name="l00096"></a>00096             <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>);
 <a name="l00097"></a>00097         }
 <a name="l00098"></a>00098     } <span class="keywordflow">else</span> {
 <a name="l00099"></a>00099 <span class="preprocessor">        #ifdef XINT_SECURE</span>
@@ -168,27 +168,27 @@
 <a name="l00112"></a>00112 <span class="preprocessor">                #endif</span>
 <a name="l00113"></a>00113 <span class="preprocessor"></span>            } <span class="keywordflow">catch</span> (std::bad_alloc&) {
 <a name="l00114"></a>00114                 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>; <span class="comment">// Might allow for recovery in some cases</span>
-<a name="l00115"></a>00115                 <span class="keywordflow">throw</span> std::overflow_error(<span class="stringliteral">"Out of memory allocating xint::integer"</span>);
+<a name="l00115"></a>00115                 <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1overflow__error.html">xint::overflow_error</a>(<span class="stringliteral">"Out of memory allocating xint::integer"</span>);
 <a name="l00116"></a>00116             }
 <a name="l00117"></a>00117 
-<a name="l00118"></a>00118             memcpy(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>));
-<a name="l00119"></a>00119             <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>, newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>);
+<a name="l00118"></a>00118             memcpy(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>));
+<a name="l00119"></a>00119             <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>, newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>);
 <a name="l00120"></a>00120         } <span class="keywordflow">else</span> {
 <a name="l00121"></a>00121 <span class="preprocessor">            #ifdef XINT_SECURE</span>
 <a name="l00122"></a>00122 <span class="preprocessor"></span>                <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *newDigits=0;
 <a name="l00123"></a>00123                 <span class="keywordflow">try</span> {
 <a name="l00124"></a>00124                     newDigits=<span class="keyword">new</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>[newcount];
 <a name="l00125"></a>00125                 } <span class="keywordflow">catch</span> (std::bad_alloc&) {
-<a name="l00126"></a>00126                     <span class="keywordflow">throw</span> std::overflow_error(<span class="stringliteral">"Out of memory allocating xint::integer"</span>);
+<a name="l00126"></a>00126                     <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1overflow__error.html">xint::overflow_error</a>(<span class="stringliteral">"Out of memory allocating xint::integer"</span>);
 <a name="l00127"></a>00127                 }
 <a name="l00128"></a>00128 
 <a name="l00129"></a>00129                 <span class="keywordflow">if</span> (copydigits) {
-<a name="l00130"></a>00130                     memcpy(newDigits, <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>));
-<a name="l00131"></a>00131                     <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(newDigits+<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>, newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>);
+<a name="l00130"></a>00130                     memcpy(newDigits, <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>));
+<a name="l00131"></a>00131                     <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(newDigits+<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>, newcount-<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>);
 <a name="l00132"></a>00132                 } <span class="keywordflow">else</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(newDigits, newcount);
 <a name="l00133"></a>00133 
 <a name="l00134"></a>00134                 <span class="keywordflow">if</span> (<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>!=<a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>) {
-<a name="l00135"></a>00135                     <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>);
+<a name="l00135"></a>00135                     <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">mAllocated</a>);
 <a name="l00136"></a>00136                     <span class="keyword">delete</span>[] <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
 <a name="l00137"></a>00137                 }
 <a name="l00138"></a>00138                 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=newDigits;
@@ -196,22 +196,22 @@
 <a name="l00140"></a>00140 <span class="preprocessor"></span>                <span class="keywordflow">try</span> {
 <a name="l00141"></a>00141                     <a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>.resize(newcount);
 <a name="l00142"></a>00142                 } <span class="keywordflow">catch</span> (std::bad_alloc&) {
-<a name="l00143"></a>00143                     <span class="keywordflow">throw</span> std::overflow_error(<span class="stringliteral">"Out of memory allocating xint::integer"</span>);
+<a name="l00143"></a>00143                     <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1overflow__error.html">xint::overflow_error</a>(<span class="stringliteral">"Out of memory allocating xint::integer"</span>);
 <a name="l00144"></a>00144                 }
 <a name="l00145"></a>00145                 <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=&<a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>[0];
 <a name="l00146"></a>00146                 <span class="keywordflow">if</span> (!copydigits) <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, newcount);
 <a name="l00147"></a>00147 <span class="preprocessor">            #endif</span>
 <a name="l00148"></a>00148 <span class="preprocessor"></span>        }
-<a name="l00149"></a>00149         <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=<a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>=newcount;
+<a name="l00149"></a>00149         <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="l00150"></a>00150     }
 <a name="l00151"></a>00151 }
 <a name="l00152"></a>00152 
-<a name="l00153"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#acc02d0c3b8c867ff12af155dae8445dd">00153</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#acc02d0c3b8c867ff12af155dae8445dd">data_t::copy</a>(<span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a> *c, <span class="keywordtype">int</span> extraDigits) {
-<a name="l00154"></a>00154     <a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(c-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>+extraDigits);
+<a name="l00153"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a66862f94545c953f6604b4347205277b">00153</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">data_t</a> *c, <span class="keywordtype">size_t</span> extraDigits) {
+<a name="l00154"></a>00154     <a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a>(c-><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>+extraDigits);
 <a name="l00155"></a>00155 
-<a name="l00156"></a>00156     <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=c-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
-<a name="l00157"></a>00157     <span class="keywordflow">if</span> (c-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>==1) *<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a> = *c-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
-<a name="l00158"></a>00158     <span class="keywordflow">else</span> memcpy(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, c-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>*<span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>));
+<a name="l00156"></a>00156     <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=c-><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
+<a name="l00157"></a>00157     <span class="keywordflow">if</span> (c-><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-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>;
+<a name="l00158"></a>00158     <span class="keywordflow">else</span> memcpy(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, c-><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="l00159"></a>00159 
 <a name="l00160"></a>00160     <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>=c-><a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>;
 <a name="l00161"></a>00161 
@@ -228,7 +228,7 @@
 <a name="l00172"></a>00172 
 <a name="l00173"></a>00173     <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>=!<a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>;
 <a name="l00174"></a>00174 
-<a name="l00175"></a>00175     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *e=d+<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00175"></a>00175     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *e=d+<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
 <a name="l00176"></a>00176     <span class="keywordflow">while</span> (d<e) {
 <a name="l00177"></a>00177         *d=<span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a> - 1 - *d);
 <a name="l00178"></a>00178         ++d;
@@ -248,21 +248,21 @@
 <a name="l00192"></a>00192     assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
 <a name="l00193"></a>00193 
 <a name="l00194"></a>00194     <span class="comment">// If it's zero, don't change the sign</span>
-<a name="l00195"></a>00195     <span class="keywordflow">if</span> (<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>>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="l00195"></a>00195     <span class="keywordflow">if</span> (<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>[0]!=0) <a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>=!<a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>;
 <a name="l00196"></a>00196 }
 <a name="l00197"></a>00197 
 <a name="l00198"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">00198</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">data_t::add</a>(<span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>& addend) {
 <a name="l00199"></a>00199     assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
-<a name="l00200"></a>00200     assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> >= addend.<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>);
+<a name="l00200"></a>00200     assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> >= addend.<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>);
 <a name="l00201"></a>00201 
 <a name="l00202"></a>00202     <span class="comment">// The answer to any addition problem contains, at most, one digit more</span>
 <a name="l00203"></a>00203     <span class="comment">// than the largest addend.</span>
-<a name="l00204"></a>00204     <a class="code" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">realloc</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>+1);
+<a name="l00204"></a>00204     <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="l00205"></a>00205 
 <a name="l00206"></a>00206     <span class="comment">// Now add the digits, starting at the least-significant digit.</span>
 <a name="l00207"></a>00207     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> carry=0;
-<a name="l00208"></a>00208     <span class="keywordtype">int</span> x=0;
-<a name="l00209"></a>00209     <span class="keywordflow">for</span> (; x<addend.<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>; ++x) {
+<a name="l00208"></a>00208     <span class="keywordtype">size_t</span> x=0;
+<a name="l00209"></a>00209     <span class="keywordflow">for</span> (; x<addend.<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>; ++x) {
 <a name="l00210"></a>00210         <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> t=<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x])+addend.<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]+carry;
 <a name="l00211"></a>00211         <span class="keywordflow">if</span> (t>=<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) { carry=1; t-=<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>; } <span class="keywordflow">else</span> carry=0;
 <a name="l00212"></a>00212         <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]=<span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(t);
@@ -280,92 +280,93 @@
 <a name="l00224"></a>00224 
 <a name="l00225"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">00225</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">data_t::subtract</a>(<span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>& subtrahend) {
 <a name="l00226"></a>00226     assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
-<a name="l00227"></a>00227     assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> >= subtrahend.<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>);
+<a name="l00227"></a>00227     assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> >= subtrahend.<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>);
 <a name="l00228"></a>00228 
 <a name="l00229"></a>00229     <span class="comment">// For subtraction, the answer will always be less than or equal to the</span>
 <a name="l00230"></a>00230     <span class="comment">// size of the longest operand, so we've already got enough room.</span>
 <a name="l00231"></a>00231 
 <a name="l00232"></a>00232     <span class="comment">// Now subtract the digits, starting at the least-significant one.</span>
-<a name="l00233"></a>00233     <span class="keywordtype">int</span> borrow=0, x;
-<a name="l00234"></a>00234     <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> t;
-<a name="l00235"></a>00235     <span class="keywordflow">for</span> (x=0; x<subtrahend.<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>; ++x) {
-<a name="l00236"></a>00236         t=(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]+<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>)-subtrahend.<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]-borrow;
-<a name="l00237"></a>00237         if (t<<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) borrow=1; <span class="keywordflow">else</span> { borrow=0; t-=<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>; }
-<a name="l00238"></a>00238         <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]=<span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(t);
-<a name="l00239"></a>00239     }
-<a name="l00240"></a>00240 
-<a name="l00241"></a>00241     <span class="keywordflow">for</span> (; x<<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> && borrow; ++x) {
-<a name="l00242"></a>00242         t=(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]+<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>)-borrow;
-<a name="l00243"></a>00243         <span class="keywordflow">if</span> (t<<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) borrow=1; <span class="keywordflow">else</span> { borrow=0; t-=<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>; }
-<a name="l00244"></a>00244         <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]=<span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(t);
-<a name="l00245"></a>00245     }
-<a name="l00246"></a>00246 
-<a name="l00247"></a>00247     <span class="keywordflow">if</span> (borrow) <a class="code" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">negate</a>();
-<a name="l00248"></a>00248     <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00249"></a>00249 }
-<a name="l00250"></a>00250 
-<a name="l00251"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">00251</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">data_t::shift_left</a>(<span class="keywordtype">int</span> byBits) {
-<a name="l00252"></a>00252     assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
-<a name="l00253"></a>00253     assert(byBits>0);
-<a name="l00254"></a>00254 
-<a name="l00255"></a>00255     <span class="keywordtype">int</span> bytes=byBits / <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>, bits=byBits % <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>;
-<a name="l00256"></a>00256     <span class="keywordtype">int</span> oldLength=<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
-<a name="l00257"></a>00257 
-<a name="l00258"></a>00258     <a class="code" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">realloc</a>(<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>+bytes+1);
-<a name="l00259"></a>00259 
-<a name="l00260"></a>00260     <span class="keywordflow">if</span> (bits != 0) {
-<a name="l00261"></a>00261         <span class="comment">// Handle both bits and bytes in one pass</span>
-<a name="l00262"></a>00262         <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *s=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+oldLength-1, *t=s+bytes+1;
-<a name="l00263"></a>00263 
-<a name="l00264"></a>00264         *t-- = *s >> (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bits);
-<a name="l00265"></a>00265         <span class="keywordflow">while</span> (s > <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>) {
-<a name="l00266"></a>00266             *t = (*s-- << bits);
-<a name="l00267"></a>00267             *t-- |= (*s >> (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bits));
-<a name="l00268"></a>00268         }
-<a name="l00269"></a>00269         *t = (*s << bits);
-<a name="l00270"></a>00270 
-<a name="l00271"></a>00271         <span class="keywordflow">if</span> (bytes != 0) memset(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>) * bytes);
-<a name="l00272"></a>00272     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bytes != 0) {
-<a name="l00273"></a>00273         memmove(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+bytes, <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>) * oldLength);
-<a name="l00274"></a>00274         memset(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>) * bytes);
-<a name="l00275"></a>00275     }
-<a name="l00276"></a>00276     <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00277"></a>00277 }
-<a name="l00278"></a>00278 
-<a name="l00279"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">00279</a> <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">data_t::shift_right</a>(<span class="keywordtype">int</span> byBits) {
-<a name="l00280"></a>00280     assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
-<a name="l00281"></a>00281     assert(byBits>0);
-<a name="l00282"></a>00282 
-<a name="l00283"></a>00283     <span class="keywordtype">int</span> bytes=byBits / <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>, bits=byBits % <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>,
-<a name="l00284"></a>00284         bits2 = <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bits;
-<a name="l00285"></a>00285 
-<a name="l00286"></a>00286     <span class="keywordflow">if</span> (bytes >= <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>) {
-<a name="l00287"></a>00287         <span class="comment">// Right-shift it into oblivion.</span>
-<a name="l00288"></a>00288         <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>=1;
-<a name="l00289"></a>00289         *<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=0;
-<a name="l00290"></a>00290     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits != 0) {
-<a name="l00291"></a>00291         <span class="comment">// Handle both bits and bytes in one pass</span>
-<a name="l00292"></a>00292         <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *t=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, *s=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+bytes, *se=<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>-1;
-<a name="l00293"></a>00293         <span class="keywordflow">while</span> (s!=se) {
-<a name="l00294"></a>00294             *t = (*s++ >> bits);
-<a name="l00295"></a>00295             *t++ |= (*s << bits2);
-<a name="l00296"></a>00296         }
-<a name="l00297"></a>00297         *t = (*s >> bits);
-<a name="l00298"></a>00298         <span class="keywordflow">if</span> (bytes != 0) {
-<a name="l00299"></a>00299             memset(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>+mLength-bytes, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>) * bytes);
-<a name="l00300"></a>00300             mLength-=bytes;
-<a name="l00301"></a>00301         }
-<a name="l00302"></a>00302         <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00303"></a>00303     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bytes != 0) {
-<a name="l00304"></a>00304         memmove(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a> + bytes, <span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>) * (<a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> - bytes));
-<a name="l00305"></a>00305         memset(<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a> + <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> - bytes, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>) * bytes);
-<a name="l00306"></a>00306         <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>-=bytes;
-<a name="l00307"></a>00307         <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00308"></a>00308     }
-<a name="l00309"></a>00309 }
-<a name="l00310"></a>00310 
-<a name="l00311"></a>00311 } <span class="comment">// namespace detail</span>
-<a name="l00312"></a>00312 } <span class="comment">// namespace xint</span>
+<a name="l00233"></a>00233     <span class="keywordtype">size_t</span> x;
+<a name="l00234"></a>00234     <span class="keywordtype">int</span> borrow=0;
+<a name="l00235"></a>00235     <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> t;
+<a name="l00236"></a>00236     <span class="keywordflow">for</span> (x=0; x<subtrahend.<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>; ++x) {
+<a name="l00237"></a>00237         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="l00238"></a>00238         if (t<<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="l00239"></a>00239         <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]=<span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(t);
+<a name="l00240"></a>00240     }
+<a name="l00241"></a>00241 
+<a name="l00242"></a>00242     <span class="keywordflow">for</span> (; x<<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> && borrow; ++x) {
+<a name="l00243"></a>00243         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="l00244"></a>00244         <span class="keywordflow">if</span> (t<<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="l00245"></a>00245         <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]=<span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(t);
+<a name="l00246"></a>00246     }
+<a name="l00247"></a>00247 
+<a name="l00248"></a>00248     <span class="keywordflow">if</span> (borrow) <a class="code" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">negate</a>();
+<a name="l00249"></a>00249     <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00250"></a>00250 }
+<a name="l00251"></a>00251 
+<a name="l00252"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a72785130c7c6490af874f450cf6e0086">00252</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="l00253"></a>00253     assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
+<a name="l00254"></a>00254     assert(byBits>0);
+<a name="l00255"></a>00255 
+<a name="l00256"></a>00256     <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="l00257"></a>00257     <span class="keywordtype">size_t</span> oldLength=<a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
+<a name="l00258"></a>00258 
+<a name="l00259"></a>00259     <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="l00260"></a>00260 
+<a name="l00261"></a>00261     <span class="keywordflow">if</span> (bits != 0) {
+<a name="l00262"></a>00262         <span class="comment">// Handle both bits and bytes in one pass</span>
+<a name="l00263"></a>00263         <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="l00264"></a>00264 
+<a name="l00265"></a>00265         *t-- = *s >> (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bits);
+<a name="l00266"></a>00266         <span class="keywordflow">while</span> (s > <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>) {
+<a name="l00267"></a>00267             *t = (*s-- << bits);
+<a name="l00268"></a>00268             *t-- |= (*s >> (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bits));
+<a name="l00269"></a>00269         }
+<a name="l00270"></a>00270         *t = (*s << bits);
+<a name="l00271"></a>00271 
+<a name="l00272"></a>00272         <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="l00273"></a>00273     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bytes != 0) {
+<a name="l00274"></a>00274         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="l00275"></a>00275         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="l00276"></a>00276     }
+<a name="l00277"></a>00277     <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00278"></a>00278 }
+<a name="l00279"></a>00279 
+<a name="l00280"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a432ace7094bca306dcba254f862e2428">00280</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="l00281"></a>00281     assert(<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==1);
+<a name="l00282"></a>00282     assert(byBits>0);
+<a name="l00283"></a>00283 
+<a name="l00284"></a>00284     <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="l00285"></a>00285         bits2 = <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> - bits;
+<a name="l00286"></a>00286 
+<a name="l00287"></a>00287     <span class="keywordflow">if</span> (bytes >= <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>) {
+<a name="l00288"></a>00288         <span class="comment">// Right-shift it into oblivion.</span>
+<a name="l00289"></a>00289         <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>=1;
+<a name="l00290"></a>00290         *<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>=0;
+<a name="l00291"></a>00291     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits != 0) {
+<a name="l00292"></a>00292         <span class="comment">// Handle both bits and bytes in one pass</span>
+<a name="l00293"></a>00293         <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="l00294"></a>00294         <span class="keywordflow">while</span> (s!=se) {
+<a name="l00295"></a>00295             *t = (*s++ >> bits);
+<a name="l00296"></a>00296             *t++ |= (*s << bits2);
+<a name="l00297"></a>00297         }
+<a name="l00298"></a>00298         *t = (*s >> bits);
+<a name="l00299"></a>00299         <span class="keywordflow">if</span> (bytes != 0) {
+<a name="l00300"></a>00300             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="l00301"></a>00301             mLength-=bytes;
+<a name="l00302"></a>00302         }
+<a name="l00303"></a>00303         <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00304"></a>00304     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bytes != 0) {
+<a name="l00305"></a>00305         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="l00306"></a>00306         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="l00307"></a>00307         <a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>-=bytes;
+<a name="l00308"></a>00308         <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
+<a name="l00309"></a>00309     }
+<a name="l00310"></a>00310 }
+<a name="l00311"></a>00311 
+<a name="l00312"></a>00312 } <span class="comment">// namespace detail</span>
+<a name="l00313"></a>00313 } <span class="comment">// namespace xint</span>
 </pre></div></div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -385,7 +386,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/exception__blocker_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/exception__blocker_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/exception__blocker_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -62,10 +62,6 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">xint::exceptions_allowed</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">token </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">xint::block_exceptions</a> ()</td></tr>
@@ -106,7 +102,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/exception__blocker_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/exception__blocker_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/exception__blocker_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -140,7 +140,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/files.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/files.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/files.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -99,7 +99,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/functions.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/functions.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/functions.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li class="current">Class Members</li>
     </ul>
   </div>
@@ -59,6 +60,7 @@
       <li class="current">All</li>
       <li>Functions</li>
       <li>Variables</li>
+      <li>Typedefs</li>
     </ul>
   </div>
   <div class="tabs">
@@ -68,6 +70,7 @@
       <li>c</li>
       <li>d</li>
       <li>e</li>
+      <li>g</li>
       <li>h</li>
       <li>i</li>
       <li>m</li>
@@ -121,7 +124,7 @@
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">xint::detail::data_t</a>
 </li>
 <li>alloc()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">xint::detail::data_t</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">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>
@@ -130,14 +133,17 @@
 
 
 <h3><a class="anchor" id="index_c">- c -</a></h3><ul>
+<li>cannot_represent()
+: <a class="el" href="classxint_1_1cannot__represent.html#abb9f7ccbc3ded22b615e08f8774a003b">xint::cannot_represent</a>
+</li>
 <li>cOne
 : <a class="el" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">xint::integer</a>
 </li>
 <li>copy()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#acc02d0c3b8c867ff12af155dae8445dd">xint::detail::data_t</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a66862f94545c953f6604b4347205277b">xint::detail::data_t</a>
 </li>
 <li>count
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">xint::detail::data_t::QuickDigits</a>
 </li>
 <li>cZero
 : <a class="el" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">xint::integer</a>
@@ -158,6 +164,9 @@
 <li>digits
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">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< T ></a>
+</li>
 <li>divide_by_zero()
 : <a class="el" href="classxint_1_1divide__by__zero.html#a31233d42a45ca6ef7078e700fa114ad2">xint::divide_by_zero</a>
 </li>
@@ -165,13 +174,29 @@
 
 
 <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>
+</li>
 <li>even()
 : <a class="el" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">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< T ></a>
+</li>
+<li>gen_t
+: <a class="el" href="structxint_1_1detail_1_1random__generator.html#adbc88a70815fa4f72deb9bddaec86675">xint::detail::random_generator< T ></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>
+</li>
 <li>hex_digits()
 : <a class="el" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">xint::integer</a>
 </li>
@@ -179,8 +204,14 @@
 
 
 <h3><a class="anchor" id="index_i">- i -</a></h3><ul>
+<li>impl
+: <a class="el" href="classxint_1_1strong__random__generator.html#a9f055c0ff1a85a8c465099c596f368fa">xint::strong_random_generator</a>
+</li>
+<li>impl_t()
+: <a class="el" href="structxint_1_1strong__random__generator_1_1impl__t.html#a5ceb209ca0287aac772c87eff6167028">xint::strong_random_generator::impl_t</a>
+</li>
 <li>intbits
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#af5323a8fbfdfaa3cae371872ec865fc5">xint::detail::data_t::QuickDigits</a>
 </li>
 <li>integer()
 : <a class="el" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">xint::integer</a>
@@ -202,19 +233,31 @@
 
 <h3><a class="anchor" id="index_m">- m -</a></h3><ul>
 <li>mAllocated
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">xint::detail::data_t</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">xint::detail::data_t</a>
+</li>
+<li>max()
+: <a class="el" href="classxint_1_1strong__random__generator.html#a1327ad0fe9d6f1f1c851456592b178db">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>
 </li>
 <li>mCopies
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">xint::detail::data_t</a>
 </li>
+<li>min()
+: <a class="el" href="classxint_1_1strong__random__generator.html#a5ec89070a7a7338c2b7318086efef701">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>
+</li>
 <li>minimum
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">xint::detail::data_t::QuickDigits</a>
 </li>
 <li>mIsNegative
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">xint::detail::data_t</a>
 </li>
 <li>mLength
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">xint::detail::data_t</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">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>
@@ -232,6 +275,9 @@
 <li>negate()
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">xint::detail::data_t</a>
 </li>
+<li>no_strong_random()
+: <a class="el" href="classxint_1_1no__strong__random.html#abc003e134450711b6608ffba6037fae6">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>
 </li>
@@ -251,6 +297,11 @@
 <li>operator&=()
 : <a class="el" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">xint::integer</a>
 </li>
+<li>operator()()
+: <a class="el" href="structxint_1_1strong__random__generator_1_1impl__t.html#a52493fa7d5f0831d1c9605077da7cc8e">xint::strong_random_generator::impl_t</a>
+, <a class="el" href="structxint_1_1detail_1_1random__generator.html#af4f51632b42ca812468f9d24fea20ce9">xint::detail::random_generator< T ></a>
+, <a class="el" href="classxint_1_1strong__random__generator.html#a2bbb1944511585f66e5daec4737bd4e7">xint::strong_random_generator</a>
+</li>
 <li>operator*=()
 : <a class="el" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">xint::integer</a>
 </li>
@@ -290,6 +341,9 @@
 <li>operator|=()
 : <a class="el" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">xint::integer</a>
 </li>
+<li>overflow_error()
+: <a class="el" href="classxint_1_1overflow__error.html#a6d862f28aa94f27cc210c1fb2e79f69c">xint::overflow_error</a>
+</li>
 </ul>
 
 
@@ -301,18 +355,29 @@
 
 
 <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#a2a4312b1e08aec50fc7d7afc74c432a1">xint::detail::random_generator< T ></a>
+</li>
 <li>realloc()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">xint::detail::data_t</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a2bb2c79d47f2fda3605f34b80cb58b8b">xint::detail::data_t</a>
+</li>
+<li>result_type
+: <a class="el" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">xint::strong_random_generator</a>
+, <a class="el" href="structxint_1_1detail_1_1base__random__generator.html#a0556d7f290cd236303b3f1031611cb3e">xint::detail::base_random_generator</a>
+, <a class="el" href="structxint_1_1strong__random__generator_1_1impl__t.html#ad036a77b12a57bb1aeb1b2dfeb7786ed">xint::strong_random_generator::impl_t</a>
+</li>
+<li>rng
+: <a class="el" href="structxint_1_1strong__random__generator_1_1impl__t.html#a4863c36524d24aed3c9f7192e97b3d09">xint::strong_random_generator::impl_t</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_s">- s -</a></h3><ul>
 <li>shift_left()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">xint::detail::data_t</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a72785130c7c6490af874f450cf6e0086">xint::detail::data_t</a>
 </li>
 <li>shift_right()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">xint::detail::data_t</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a432ace7094bca306dcba254f862e2428">xint::detail::data_t</a>
 </li>
 <li>sign()
 : <a class="el" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">xint::integer</a>
@@ -320,11 +385,14 @@
 <li>skipLeadingZeros()
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">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>
+</li>
 <li>subtract()
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">xint::detail::data_t</a>
 </li>
 <li>suggested
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092">xint::detail::data_t::QuickDigits</a>
 </li>
 </ul>
 
@@ -348,6 +416,9 @@
 <li>~integer()
 : <a class="el" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">xint::integer</a>
 </li>
+<li>~strong_random_generator()
+: <a class="el" href="classxint_1_1strong__random__generator.html#ac75f659c2adb7c822d49fe534b2d76a4">xint::strong_random_generator</a>
+</li>
 </ul>
 </div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
@@ -368,7 +439,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/functions_func.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/functions_func.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/functions_func.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li class="current">Class Members</li>
     </ul>
   </div>
@@ -59,6 +60,7 @@
       <li>All</li>
       <li class="current">Functions</li>
       <li>Variables</li>
+      <li>Typedefs</li>
     </ul>
   </div>
   <div class="tabs">
@@ -70,6 +72,7 @@
       <li>e</li>
       <li>h</li>
       <li>i</li>
+      <li>m</li>
       <li>n</li>
       <li>o</li>
       <li>q</li>
@@ -120,7 +123,7 @@
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">xint::detail::data_t</a>
 </li>
 <li>alloc()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">xint::detail::data_t</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">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>
@@ -129,8 +132,11 @@
 
 
 <h3><a class="anchor" id="index_c">- c -</a></h3><ul>
+<li>cannot_represent()
+: <a class="el" href="classxint_1_1cannot__represent.html#abb9f7ccbc3ded22b615e08f8774a003b">xint::cannot_represent</a>
+</li>
 <li>copy()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#acc02d0c3b8c867ff12af155dae8445dd">xint::detail::data_t</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a66862f94545c953f6604b4347205277b">xint::detail::data_t</a>
 </li>
 </ul>
 
@@ -149,6 +155,9 @@
 
 
 <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>
+</li>
 <li>even()
 : <a class="el" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">xint::integer</a>
 </li>
@@ -163,6 +172,9 @@
 
 
 <h3><a class="anchor" id="index_i">- i -</a></h3><ul>
+<li>impl_t()
+: <a class="el" href="structxint_1_1strong__random__generator_1_1impl__t.html#a5ceb209ca0287aac772c87eff6167028">xint::strong_random_generator::impl_t</a>
+</li>
 <li>integer()
 : <a class="el" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">xint::integer</a>
 </li>
@@ -181,6 +193,16 @@
 </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>
+</li>
+<li>min()
+: <a class="el" href="classxint_1_1strong__random__generator.html#a5ec89070a7a7338c2b7318086efef701">xint::strong_random_generator</a>
+</li>
+</ul>
+
+
 <h3><a class="anchor" id="index_n">- n -</a></h3><ul>
 <li>nan()
 : <a class="el" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">xint::integer</a>
@@ -188,6 +210,9 @@
 <li>negate()
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">xint::detail::data_t</a>
 </li>
+<li>no_strong_random()
+: <a class="el" href="classxint_1_1no__strong__random.html#abc003e134450711b6608ffba6037fae6">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>
 </li>
@@ -207,6 +232,11 @@
 <li>operator&=()
 : <a class="el" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">xint::integer</a>
 </li>
+<li>operator()()
+: <a class="el" href="structxint_1_1strong__random__generator_1_1impl__t.html#a52493fa7d5f0831d1c9605077da7cc8e">xint::strong_random_generator::impl_t</a>
+, <a class="el" href="structxint_1_1detail_1_1random__generator.html#af4f51632b42ca812468f9d24fea20ce9">xint::detail::random_generator< T ></a>
+, <a class="el" href="classxint_1_1strong__random__generator.html#a2bbb1944511585f66e5daec4737bd4e7">xint::strong_random_generator</a>
+</li>
 <li>operator*=()
 : <a class="el" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">xint::integer</a>
 </li>
@@ -246,6 +276,9 @@
 <li>operator|=()
 : <a class="el" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">xint::integer</a>
 </li>
+<li>overflow_error()
+: <a class="el" href="classxint_1_1overflow__error.html#a6d862f28aa94f27cc210c1fb2e79f69c">xint::overflow_error</a>
+</li>
 </ul>
 
 
@@ -257,18 +290,21 @@
 
 
 <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#a2a4312b1e08aec50fc7d7afc74c432a1">xint::detail::random_generator< T ></a>
+</li>
 <li>realloc()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">xint::detail::data_t</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a2bb2c79d47f2fda3605f34b80cb58b8b">xint::detail::data_t</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_s">- s -</a></h3><ul>
 <li>shift_left()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">xint::detail::data_t</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a72785130c7c6490af874f450cf6e0086">xint::detail::data_t</a>
 </li>
 <li>shift_right()
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">xint::detail::data_t</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a432ace7094bca306dcba254f862e2428">xint::detail::data_t</a>
 </li>
 <li>sign()
 : <a class="el" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">xint::integer</a>
@@ -276,6 +312,9 @@
 <li>skipLeadingZeros()
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">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>
+</li>
 <li>subtract()
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">xint::detail::data_t</a>
 </li>
@@ -301,6 +340,9 @@
 <li>~integer()
 : <a class="el" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">xint::integer</a>
 </li>
+<li>~strong_random_generator()
+: <a class="el" href="classxint_1_1strong__random__generator.html#ac75f659c2adb7c822d49fe534b2d76a4">xint::strong_random_generator</a>
+</li>
 </ul>
 </div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
@@ -321,7 +363,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/functions_vars.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/functions_vars.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/functions_vars.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li class="current">Class Members</li>
     </ul>
   </div>
@@ -59,6 +60,7 @@
       <li>All</li>
       <li>Functions</li>
       <li class="current">Variables</li>
+      <li>Typedefs</li>
     </ul>
   </div>
 </div>
@@ -68,7 +70,7 @@
 : <a class="el" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">xint::integer</a>
 </li>
 <li>count
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">xint::detail::data_t::QuickDigits</a>
 </li>
 <li>cZero
 : <a class="el" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">xint::integer</a>
@@ -79,23 +81,38 @@
 <li>digits
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">xint::detail::data_t</a>
 </li>
+<li>gen
+: <a class="el" href="structxint_1_1detail_1_1random__generator.html#a9a90a3050b2ff83d78ef8633deb5d42d">xint::detail::random_generator< T ></a>
+</li>
+<li>has_fixed_range
+: <a class="el" href="classxint_1_1strong__random__generator.html#a1a808cca9189eb64f420e4745ca5122d">xint::strong_random_generator</a>
+</li>
+<li>impl
+: <a class="el" href="classxint_1_1strong__random__generator.html#a9f055c0ff1a85a8c465099c596f368fa">xint::strong_random_generator</a>
+</li>
 <li>intbits
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#af5323a8fbfdfaa3cae371872ec865fc5">xint::detail::data_t::QuickDigits</a>
 </li>
 <li>mAllocated
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">xint::detail::data_t</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">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>
 </li>
 <li>mCopies
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">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>
+</li>
 <li>minimum
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">xint::detail::data_t::QuickDigits</a>
 </li>
 <li>mIsNegative
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">xint::detail::data_t</a>
 </li>
 <li>mLength
-: <a class="el" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">xint::detail::data_t</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">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>
@@ -103,8 +120,11 @@
 <li>mStorage
 : <a class="el" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">xint::detail::data_t</a>
 </li>
+<li>rng
+: <a class="el" href="structxint_1_1strong__random__generator_1_1impl__t.html#a4863c36524d24aed3c9f7192e97b3d09">xint::strong_random_generator::impl_t</a>
+</li>
 <li>suggested
-: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">xint::detail::data_t::QuickDigits</a>
+: <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092">xint::detail::data_t::QuickDigits</a>
 </li>
 </ul>
 </div>
@@ -126,7 +146,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/gcd_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/gcd_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/gcd_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -62,10 +62,6 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">xint::gcd</a> (const integer &num1, const integer &num2)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a17c5e4e807cfa425f48d9f5b464bc8dc">xint::lcm</a> (const integer &num1, const integer &num2)</td></tr>
@@ -136,7 +132,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/gcd_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/gcd_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/gcd_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -77,7 +77,7 @@
 <a name="l00021"></a>00021     gcd_core(<span class="keyword">const</span> integer& n, <span class="keyword">const</span> integer& m): <a class="code" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">u1</a>(integer::one()),
 <a name="l00022"></a>00022         <a class="code" href="gcd_8cpp.html#a35cdbdce7a7d33309a6cabd35c878b2f">u2</a>(integer::zero()), <a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a>(n)
 <a name="l00023"></a>00023     {
-<a name="l00024"></a>00024         integer t1=m, t2=n-<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>(), t3=m;
+<a name="l00024"></a>00024         integer t1=m, t2=n-<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>(), t3=m;
 <a name="l00025"></a>00025         <span class="keywordflow">do</span> {
 <a name="l00026"></a>00026             <span class="keywordflow">do</span> {
 <a name="l00027"></a>00027                 <span class="keywordflow">if</span> (<a class="code" href="gcd_8cpp.html#a7ac8f5a4ca4a1c621ad1c8ea155faaf2">u3</a>.even()) {
@@ -111,50 +111,58 @@
 <a name="l00055"></a>00055     num1.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
 <a name="l00056"></a>00056     num2._throw_if_nan();
 <a name="l00057"></a>00057 
-<a name="l00058"></a>00058     integer n(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(num1)), m(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(num2));
-<a name="l00059"></a>00059 
-<a name="l00060"></a>00060     <span class="keywordtype">size_t</span> k=0;
-<a name="l00061"></a>00061     <span class="keywordflow">while</span> (n.even() && m.even()) { ++k; n >>= 1; m >>= 1; }
+<a name="l00058"></a>00058     <span class="keywordtype">int</span> sign1=num1.sign(), sign2=num2.sign();
+<a name="l00059"></a>00059     <span class="keywordflow">if</span> (sign1==0 && sign2==0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>();
+<a name="l00060"></a>00060     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1==0) <span class="keywordflow">return</span> num2;
+<a name="l00061"></a>00061     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2==0) <span class="keywordflow">return</span> num1;
 <a name="l00062"></a>00062 
-<a name="l00063"></a>00063     gcd_core core(n, m);
+<a name="l00063"></a>00063     integer n(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(num1)), m(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(num2));
 <a name="l00064"></a>00064 
-<a name="l00065"></a>00065     <span class="keywordflow">if</span> (core.u3.sign() != 0) <span class="keywordflow">return</span> core.u3 << k;
-<a name="l00066"></a>00066     <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>() << k;
-<a name="l00067"></a>00067 }
-<a name="l00068"></a>00068 
-<a name="l00069"></a>00069 integer <a class="code" href="namespacexint.html#a17c5e4e807cfa425f48d9f5b464bc8dc">lcm</a>(<span class="keyword">const</span> integer& num1, <span class="keyword">const</span> integer& num2) {
-<a name="l00070"></a>00070     <span class="keywordflow">if</span> (num1.sign() == 0 || num2.sign() == 0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>();
-<a name="l00071"></a>00071     <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(num1 * num2) / <a class="code" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">gcd</a>(num1, num2);
+<a name="l00065"></a>00065     <span class="keywordtype">size_t</span> k=0;
+<a name="l00066"></a>00066     <span class="keywordflow">while</span> (n.even() && m.even()) { ++k; n >>= 1; m >>= 1; }
+<a name="l00067"></a>00067 
+<a name="l00068"></a>00068     gcd_core core(n, m);
+<a name="l00069"></a>00069 
+<a name="l00070"></a>00070     <span class="keywordflow">if</span> (core.u3.sign() != 0) <span class="keywordflow">return</span> core.u3 << k;
+<a name="l00071"></a>00071     <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>() << k;
 <a name="l00072"></a>00072 }
 <a name="l00073"></a>00073 
-<a name="l00074"></a>00074 integer <a class="code" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">invmod</a>(<span class="keyword">const</span> integer& n, <span class="keyword">const</span> integer& m) {
-<a name="l00075"></a>00075     <span class="comment">// Calculates the modular inverse of n mod m, or (n^(-1)) mod m</span>
-<a name="l00076"></a>00076     <span class="comment">// Defined as b, where n*b corresponds to 1 (mod m)</span>
-<a name="l00077"></a>00077     <span class="keywordflow">if</span> (m < <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>()) {
-<a name="l00078"></a>00078         <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus();
-<a name="l00079"></a>00079         <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
-<a name="l00080"></a>00080     }
-<a name="l00081"></a>00081 
-<a name="l00082"></a>00082     <span class="keywordflow">if</span> (n.sign() < 0) {
-<a name="l00083"></a>00083         integer _n(n);
-<a name="l00084"></a>00084         _n._set_negative(<span class="keyword">false</span>);
-<a name="l00085"></a>00085 
-<a name="l00086"></a>00086         integer nn=<a class="code" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">invmod</a>(_n, m);
-<a name="l00087"></a>00087         <span class="keywordflow">if</span> (nn.nan()) <span class="keywordflow">return</span> nn;
-<a name="l00088"></a>00088 
-<a name="l00089"></a>00089         nn._set_negative(<span class="keyword">true</span>);
-<a name="l00090"></a>00090         <span class="keywordflow">return</span> nn + m;
-<a name="l00091"></a>00091     }
-<a name="l00092"></a>00092 
-<a name="l00093"></a>00093     <span class="keywordflow">if</span> (n.even() && m.even()) <span class="keywordflow">return</span> integer(not_a_number()); <span class="comment">// GCD(x,y)!=1, no inverse possible.</span>
-<a name="l00094"></a>00094 
-<a name="l00095"></a>00095     gcd_core core(n, m);
+<a name="l00074"></a>00074 integer <a class="code" href="namespacexint.html#a17c5e4e807cfa425f48d9f5b464bc8dc">lcm</a>(<span class="keyword">const</span> integer& num1, <span class="keyword">const</span> integer& num2) {
+<a name="l00075"></a>00075     <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="l00076"></a>00076     <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(num1 * num2) / <a class="code" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">gcd</a>(num1, num2);
+<a name="l00077"></a>00077 }
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079 integer <a class="code" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">invmod</a>(<span class="keyword">const</span> integer& n, <span class="keyword">const</span> integer& m) {
+<a name="l00080"></a>00080     <span class="comment">// Calculates the modular inverse of n mod m, or (n^(-1)) mod m</span>
+<a name="l00081"></a>00081     <span class="comment">// Defined as b, where n*b corresponds to 1 (mod m)</span>
+<a name="l00082"></a>00082     <span class="keywordflow">if</span> (m < <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>()) {
+<a name="l00083"></a>00083         <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus();
+<a name="l00084"></a>00084         <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00085"></a>00085     }
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087     <span class="keywordtype">int</span> sign=n.sign();
+<a name="l00088"></a>00088     <span class="keywordflow">if</span> (sign==0) {
+<a name="l00089"></a>00089         <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00090"></a>00090     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n.sign() < 0) {
+<a name="l00091"></a>00091         integer _n(n);
+<a name="l00092"></a>00092         _n._set_negative(<span class="keyword">false</span>);
+<a name="l00093"></a>00093 
+<a name="l00094"></a>00094         integer nn=<a class="code" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">invmod</a>(_n, m);
+<a name="l00095"></a>00095         <span class="keywordflow">if</span> (nn.nan()) <span class="keywordflow">return</span> nn;
 <a name="l00096"></a>00096 
-<a name="l00097"></a>00097     <span class="keywordflow">if</span> (core.u3 != <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>()) <span class="keywordflow">return</span> integer(not_a_number()); <span class="comment">// GCD(x,y)!=1, no inverse possible.</span>
-<a name="l00098"></a>00098     <span class="keywordflow">return</span> core.u1;
-<a name="l00099"></a>00099 }
+<a name="l00097"></a>00097         nn._set_negative(<span class="keyword">true</span>);
+<a name="l00098"></a>00098         <span class="keywordflow">return</span> nn + m;
+<a name="l00099"></a>00099     }
 <a name="l00100"></a>00100 
-<a name="l00101"></a>00101 } <span class="comment">// namespace xint</span>
+<a name="l00101"></a>00101     <span class="keywordflow">if</span> (n.even() && m.even()) <span class="keywordflow">return</span> integer(not_a_number()); <span class="comment">// GCD(x,y)!=1, no inverse possible.</span>
+<a name="l00102"></a>00102 
+<a name="l00103"></a>00103     gcd_core core(n, m);
+<a name="l00104"></a>00104 
+<a name="l00105"></a>00105     <span class="keywordflow">if</span> (core.u3 != <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>()) <span class="keywordflow">return</span> integer(not_a_number()); <span class="comment">// GCD(x,y)!=1, no inverse possible.</span>
+<a name="l00106"></a>00106     <span class="keywordflow">return</span> core.u1;
+<a name="l00107"></a>00107 }
+<a name="l00108"></a>00108 
+<a name="l00109"></a>00109 } <span class="comment">// namespace xint</span>
 </pre></div></div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -174,7 +182,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/globals.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/globals.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/globals.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -62,43 +62,24 @@
       <li>Defines</li>
     </ul>
   </div>
-  <div class="tabs">
-    <ul>
-      <li>c</li>
-      <li>d</li>
-      <li>m</li>
-      <li>o</li>
-      <li>u</li>
-    </ul>
-  </div>
 </div>
 <div class="contents">
-Here is a list of all file members with links to the files they belong to:
-
-<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
-<li>cSeedMaximumBytes
-: <a class="el" href="random_8cpp.html#a5223229006a12ebbbbdfb70c32f58844">random.cpp</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
+Here is a list of all file members with links to the files they belong to:<ul>
 <li>ddPowerOfTwo
 : <a class="el" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">monty.cpp</a>
 </li>
-</ul>
-
-
-<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
 <li>main()
 : <a class="el" href="xint__fibonacci_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">xint_fibonacci.cpp</a>
 , <a class="el" href="xint__simple_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">xint_simple.cpp</a>
 </li>
-<li>mGen
-: <a class="el" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">random.cpp</a>
+<li>mDefaultGenerator
+: <a class="el" href="random_8cpp.html#a238ff0f867d5c1cbee8f90025cf78d84">random.cpp</a>
+</li>
+<li>mGeneratorFn
+: <a class="el" href="random_8cpp.html#ab29291663b453f8de2fecf35aa62e1d8">random.cpp</a>
 </li>
-<li>mNumber
-: <a class="el" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">random.cpp</a>
+<li>mGeneratorObj
+: <a class="el" href="random_8cpp.html#a5a10f5470776b1e8b6c0dd791a9baa6a">random.cpp</a>
 </li>
 <li>mOldState
 : <a class="el" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">exception_blocker.cpp</a>
@@ -106,84 +87,9 @@
 <li>mPtr
 : <a class="el" href="monty_8cpp.html#a997daa830ee78d2ad1a859d2f71594f6">monty.cpp</a>
 </li>
-<li>mSeeded
-: <a class="el" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">random.cpp</a>
-</li>
-<li>mString
-: <a class="el" href="random_8cpp.html#a53e7e690c68e339c9e7b89593957137a">random.cpp</a>
-</li>
 <li>mTable
 : <a class="el" href="monty_8cpp.html#a68c397b3981dc1bc151f425c0aee31b9">monty.cpp</a>
 </li>
-</ul>
-
-
-<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
-<li>operator!()
-: <a class="el" href="compare_8cpp.html#ac7523d81be85d97950c95f10c17a8c9d">compare.cpp</a>
-, <a class="el" href="xint_8hpp.html#aab9cb2021cb63480542f266a67c50314">xint.hpp</a>
-</li>
-<li>operator!=()
-: <a class="el" href="xint_8hpp.html#a7f95e1c65d52023897d57fac225ba297">xint.hpp</a>
-, <a class="el" href="compare_8cpp.html#ae28b8d9fc3781805e9bb9cfaf0dc01df">compare.cpp</a>
-</li>
-<li>operator%()
-: <a class="el" href="operators_8cpp.html#ab5c9d4bfca6c406876f2317fe4ebdc17">operators.cpp</a>
-, <a class="el" href="xint_8hpp.html#a33c06e966e5497a57df414783f4bd32d">xint.hpp</a>
-</li>
-<li>operator&()
-: <a class="el" href="xint_8hpp.html#a279ea8fa85f56774ecf87a9f70e44986">xint.hpp</a>
-, <a class="el" href="operators_8cpp.html#a279ea8fa85f56774ecf87a9f70e44986">operators.cpp</a>
-</li>
-<li>operator*()
-: <a class="el" href="operators_8cpp.html#a9b5f3e5db8d7dac5c83687433265d679">operators.cpp</a>
-, <a class="el" href="xint_8hpp.html#a17b0f742cf4240f0453ecdc690527f55">xint.hpp</a>
-</li>
-<li>operator+()
-: <a class="el" href="operators_8cpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operators.cpp</a>
-, <a class="el" href="xint_8hpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">xint.hpp</a>
-</li>
-<li>operator-()
-: <a class="el" href="operators_8cpp.html#aed0b4dc3caadb337775cebf4434c9b4a">operators.cpp</a>
-, <a class="el" href="xint_8hpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">xint.hpp</a>
-, <a class="el" href="operators_8cpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operators.cpp</a>
-</li>
-<li>operator/()
-: <a class="el" href="operators_8cpp.html#ade5c31d601a221f90102f09d3985a1b1">operators.cpp</a>
-, <a class="el" href="xint_8hpp.html#a92017cd694e753636affcb05919a7dc2">xint.hpp</a>
-</li>
-<li>operator<()
-: <a class="el" href="compare_8cpp.html#a13bf860274cbfba7049ee1109ef79ece">compare.cpp</a>
-, <a class="el" href="xint_8hpp.html#a2271282006f914e5442f53508f6c5355">xint.hpp</a>
-</li>
-<li>operator<=()
-: <a class="el" href="xint_8hpp.html#aa6909705d9662396b60b7dca7193895c">xint.hpp</a>
-, <a class="el" href="compare_8cpp.html#aab167dd151d36a75704e98361c845e67">compare.cpp</a>
-</li>
-<li>operator==()
-: <a class="el" href="compare_8cpp.html#a8afed82c679c5a4edee2108ddbf24e76">compare.cpp</a>
-, <a class="el" href="xint_8hpp.html#a255c817c8569ac9365878a9476bfe3b3">xint.hpp</a>
-</li>
-<li>operator>()
-: <a class="el" href="xint_8hpp.html#a328006b6ca161372a3cd91ca199a56df">xint.hpp</a>
-, <a class="el" href="compare_8cpp.html#aafe4265378fbdfe8382de5624439cf86">compare.cpp</a>
-</li>
-<li>operator>=()
-: <a class="el" href="compare_8cpp.html#a3e59818919966e38b68c5af625acf65e">compare.cpp</a>
-, <a class="el" href="xint_8hpp.html#a9b081858436ec650e95e857faff0cf4e">xint.hpp</a>
-</li>
-<li>operator^()
-: <a class="el" href="xint_8hpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">xint.hpp</a>
-, <a class="el" href="operators_8cpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">operators.cpp</a>
-</li>
-<li>operator|()
-: <a class="el" href="xint_8hpp.html#ae43c9ba6b179f6336284e00609951c7c">xint.hpp</a>
-, <a class="el" href="operators_8cpp.html#ae43c9ba6b179f6336284e00609951c7c">operators.cpp</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_u">- u -</a></h3><ul>
 <li>u1
 : <a class="el" href="gcd_8cpp.html#accb7b3088be4aa6fea6fe05dc527f01c">gcd.cpp</a>
 </li>
@@ -213,7 +119,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/globals_defs.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/globals_defs.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/globals_defs.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -88,7 +88,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/globals_func.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/globals_func.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/globals_func.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -62,87 +62,14 @@
       <li>Defines</li>
     </ul>
   </div>
-  <div class="tabs">
-    <ul>
-      <li>m</li>
-      <li>o</li>
-    </ul>
-  </div>
 </div>
 <div class="contents">
- 
-
-<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
+ <ul>
 <li>main()
 : <a class="el" href="xint__fibonacci_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">xint_fibonacci.cpp</a>
 , <a class="el" href="xint__simple_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">xint_simple.cpp</a>
 </li>
 </ul>
-
-
-<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
-<li>operator!()
-: <a class="el" href="compare_8cpp.html#ac7523d81be85d97950c95f10c17a8c9d">compare.cpp</a>
-, <a class="el" href="xint_8hpp.html#aab9cb2021cb63480542f266a67c50314">xint.hpp</a>
-</li>
-<li>operator!=()
-: <a class="el" href="xint_8hpp.html#a7f95e1c65d52023897d57fac225ba297">xint.hpp</a>
-, <a class="el" href="compare_8cpp.html#ae28b8d9fc3781805e9bb9cfaf0dc01df">compare.cpp</a>
-</li>
-<li>operator%()
-: <a class="el" href="operators_8cpp.html#ab5c9d4bfca6c406876f2317fe4ebdc17">operators.cpp</a>
-, <a class="el" href="xint_8hpp.html#a33c06e966e5497a57df414783f4bd32d">xint.hpp</a>
-</li>
-<li>operator&()
-: <a class="el" href="xint_8hpp.html#a279ea8fa85f56774ecf87a9f70e44986">xint.hpp</a>
-, <a class="el" href="operators_8cpp.html#a279ea8fa85f56774ecf87a9f70e44986">operators.cpp</a>
-</li>
-<li>operator*()
-: <a class="el" href="operators_8cpp.html#a9b5f3e5db8d7dac5c83687433265d679">operators.cpp</a>
-, <a class="el" href="xint_8hpp.html#a17b0f742cf4240f0453ecdc690527f55">xint.hpp</a>
-</li>
-<li>operator+()
-: <a class="el" href="operators_8cpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operators.cpp</a>
-, <a class="el" href="xint_8hpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">xint.hpp</a>
-</li>
-<li>operator-()
-: <a class="el" href="operators_8cpp.html#aed0b4dc3caadb337775cebf4434c9b4a">operators.cpp</a>
-, <a class="el" href="xint_8hpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">xint.hpp</a>
-, <a class="el" href="operators_8cpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operators.cpp</a>
-</li>
-<li>operator/()
-: <a class="el" href="operators_8cpp.html#ade5c31d601a221f90102f09d3985a1b1">operators.cpp</a>
-, <a class="el" href="xint_8hpp.html#a92017cd694e753636affcb05919a7dc2">xint.hpp</a>
-</li>
-<li>operator<()
-: <a class="el" href="compare_8cpp.html#a13bf860274cbfba7049ee1109ef79ece">compare.cpp</a>
-, <a class="el" href="xint_8hpp.html#a2271282006f914e5442f53508f6c5355">xint.hpp</a>
-</li>
-<li>operator<=()
-: <a class="el" href="xint_8hpp.html#aa6909705d9662396b60b7dca7193895c">xint.hpp</a>
-, <a class="el" href="compare_8cpp.html#aab167dd151d36a75704e98361c845e67">compare.cpp</a>
-</li>
-<li>operator==()
-: <a class="el" href="compare_8cpp.html#a8afed82c679c5a4edee2108ddbf24e76">compare.cpp</a>
-, <a class="el" href="xint_8hpp.html#a255c817c8569ac9365878a9476bfe3b3">xint.hpp</a>
-</li>
-<li>operator>()
-: <a class="el" href="xint_8hpp.html#a328006b6ca161372a3cd91ca199a56df">xint.hpp</a>
-, <a class="el" href="compare_8cpp.html#aafe4265378fbdfe8382de5624439cf86">compare.cpp</a>
-</li>
-<li>operator>=()
-: <a class="el" href="compare_8cpp.html#a3e59818919966e38b68c5af625acf65e">compare.cpp</a>
-, <a class="el" href="xint_8hpp.html#a9b081858436ec650e95e857faff0cf4e">xint.hpp</a>
-</li>
-<li>operator^()
-: <a class="el" href="xint_8hpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">xint.hpp</a>
-, <a class="el" href="operators_8cpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">operators.cpp</a>
-</li>
-<li>operator|()
-: <a class="el" href="xint_8hpp.html#ae43c9ba6b179f6336284e00609951c7c">xint.hpp</a>
-, <a class="el" href="operators_8cpp.html#ae43c9ba6b179f6336284e00609951c7c">operators.cpp</a>
-</li>
-</ul>
 </div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -162,7 +89,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/globals_vars.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/globals_vars.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/globals_vars.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -65,14 +65,14 @@
 </div>
 <div class="contents">
  <ul>
-<li>cSeedMaximumBytes
-: <a class="el" href="random_8cpp.html#a5223229006a12ebbbbdfb70c32f58844">random.cpp</a>
+<li>mDefaultGenerator
+: <a class="el" href="random_8cpp.html#a238ff0f867d5c1cbee8f90025cf78d84">random.cpp</a>
 </li>
-<li>mGen
-: <a class="el" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">random.cpp</a>
+<li>mGeneratorFn
+: <a class="el" href="random_8cpp.html#ab29291663b453f8de2fecf35aa62e1d8">random.cpp</a>
 </li>
-<li>mNumber
-: <a class="el" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">random.cpp</a>
+<li>mGeneratorObj
+: <a class="el" href="random_8cpp.html#a5a10f5470776b1e8b6c0dd791a9baa6a">random.cpp</a>
 </li>
 <li>mOldState
 : <a class="el" href="exception__blocker_8cpp.html#a50f7131c1e1f52ac26fb604e489b0dbe">exception_blocker.cpp</a>
@@ -80,12 +80,6 @@
 <li>mPtr
 : <a class="el" href="monty_8cpp.html#a997daa830ee78d2ad1a859d2f71594f6">monty.cpp</a>
 </li>
-<li>mSeeded
-: <a class="el" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">random.cpp</a>
-</li>
-<li>mString
-: <a class="el" href="random_8cpp.html#a53e7e690c68e339c9e7b89593957137a">random.cpp</a>
-</li>
 <li>mTable
 : <a class="el" href="monty_8cpp.html#a68c397b3981dc1bc151f425c0aee31b9">monty.cpp</a>
 </li>
@@ -118,7 +112,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/index.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/index.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/index.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -50,16 +50,7 @@
   </div>
 </div>
 <div class="contents">
-<h1>eXtended Integer library. </h1><p>The Extended Integer (XInt) Library A fast, portable C++ library for multi-precision integer math.</p>
-<p>This is the main header file for the library, and the only one that programs using it should need to include.</p>
-<p>A C++ library that lets your program handle much, much larger integer numbers than the built-in int, long, or even long long types, and handle them using the same syntax that C and C++ use for the standard integer types.</p>
-<p>Completely portable, written entirely in modern C++, with many different types of operating system, compiler, and hardware in mind. It will compile cleanly on many operating systems without any changes, automatically adapting to whatever native integer sizes are available.</p>
-<p>It's fast. Speed of execution takes a back seat to portability, so it doesn't include things like assembly-language modules to wring every last CPU cycle out of it -- but it's still pretty darn fast.</p>
-<p>Features you need. Modular arithmetic. Bit manipulation functions. Cryptographically-secure random and prime number generation. A friendly and intuitive interface. An option for thread-safe operation.</p>
-<p>It has the Boost Software License, Version 1.0. at http://www.boost.org/LICENSE_1_0.txt</p>
-<p>Documentation in full as html is at https://svn.boost.org/svn/boost/sandbox/xint/libs/xint/doc/html/index/html</p>
-<p>and a pdf version is also available. </p>
-</div>
+<h1>xInt eXtended Integer Library Documentation</h1></div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
 <!-- Copyright 2009 Chad Nelson. -->
@@ -78,7 +69,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/integer_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/integer_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/integer_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -63,10 +63,6 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 </table>
 </div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
@@ -87,7 +83,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/integer_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/integer_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/integer_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -70,212 +70,216 @@
 <a name="l00014"></a>00014 <span class="preprocessor">#include "../xint.hpp"</span>
 <a name="l00015"></a>00015 <span class="preprocessor">#include "../xint_data_t.hpp"</span>
 <a name="l00016"></a>00016 
-<a name="l00017"></a>00017 <span class="keyword">namespace </span>xint {
-<a name="l00018"></a>00018 
-<a name="l00019"></a>00019 <span class="keyword">const</span> integer *<a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">integer::cZero</a>=0, *<a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">integer::cOne</a>=0;
-<a name="l00020"></a>00020 <span class="keyword">const</span> std::string <a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">detail::nan_text</a>(<span class="stringliteral">"#NaN#"</span>);
-<a name="l00021"></a>00021 
-<a name="l00022"></a><a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">00022</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer::integer</a>() {
-<a name="l00023"></a>00023     <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>();
-<a name="l00024"></a>00024 }
+<a name="l00017"></a>00017 <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">    #define XINT_DISABLE_COPY_ON_WRITE</span>
+<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#endif</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="l00023"></a>00023 <span class="keyword">const</span> integer *<a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">integer::cZero</a>=0, *<a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">integer::cOne</a>=0;
+<a name="l00024"></a>00024 <span class="keyword">const</span> std::string <a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">detail::nan_text</a>(<span class="stringliteral">"#NaN#"</span>);
 <a name="l00025"></a>00025 
-<a name="l00026"></a><a class="code" href="classxint_1_1integer.html#aa123fb47accd778f87e2866c9d986bb7">00026</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer::integer</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b) {
-<a name="l00027"></a>00027     <span class="keywordflow">if</span> (b.<a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a>()) <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=0;
-<a name="l00028"></a>00028     <span class="keywordflow">else</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(b);
-<a name="l00029"></a>00029 }
-<a name="l00030"></a>00030 
-<a name="l00031"></a><a class="code" href="classxint_1_1integer.html#a6dfc86dfc539cfda1062ef1bc24aa526">00031</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer::integer</a>(<span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> base) {
-<a name="l00032"></a>00032     <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<a class="code" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">from_string</a>(str, base));
+<a name="l00026"></a><a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">00026</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer::integer</a>() {
+<a name="l00027"></a>00027     <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>();
+<a name="l00028"></a>00028 }
+<a name="l00029"></a>00029 
+<a name="l00030"></a><a class="code" href="classxint_1_1integer.html#aa123fb47accd778f87e2866c9d986bb7">00030</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer::integer</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b) {
+<a name="l00031"></a>00031     <span class="keywordflow">if</span> (b.<a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a>()) <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>=0;
+<a name="l00032"></a>00032     <span class="keywordflow">else</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(b);
 <a name="l00033"></a>00033 }
 <a name="l00034"></a>00034 
-<a name="l00035"></a><a class="code" href="classxint_1_1integer.html#a1211c9298c3281815bc9b709439d031a">00035</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer::integer</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>&) {
-<a name="l00036"></a>00036     <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=0;
+<a name="l00035"></a><a class="code" href="classxint_1_1integer.html#a6dfc86dfc539cfda1062ef1bc24aa526">00035</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer::integer</a>(<span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> base) {
+<a name="l00036"></a>00036     <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<a class="code" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">from_string</a>(str, base));
 <a name="l00037"></a>00037 }
 <a name="l00038"></a>00038 
-<a name="l00039"></a><a class="code" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">00039</a> <a class="code" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">integer::~integer</a>() {
-<a name="l00040"></a>00040     <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a>();
+<a name="l00039"></a><a class="code" href="classxint_1_1integer.html#a1211c9298c3281815bc9b709439d031a">00039</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer::integer</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>&) {
+<a name="l00040"></a>00040     <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>=0;
 <a name="l00041"></a>00041 }
 <a name="l00042"></a>00042 
-<a name="l00043"></a><a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">00043</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">integer::_init</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> init) {
-<a name="l00044"></a>00044     <span class="keywordflow">try</span> {
-<a name="l00045"></a>00045         <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=<span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a>(init);
-<a name="l00046"></a>00046     } <span class="keywordflow">catch</span> (std::bad_alloc&) {
-<a name="l00047"></a>00047         <span class="keywordflow">throw</span> std::overflow_error(<span class="stringliteral">"Out of memory allocating xint::integer"</span>);
-<a name="l00048"></a>00048     }
-<a name="l00049"></a>00049     <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
-<a name="l00050"></a>00050 }
-<a name="l00051"></a>00051 
-<a name="l00052"></a><a class="code" href="classxint_1_1integer.html#adaaff26c817fec0bef3cf903773e3f7b">00052</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">integer::_init</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &c) {
-<a name="l00053"></a>00053 <span class="preprocessor">    #ifdef XINT_THREADSAFE</span>
-<a name="l00054"></a>00054 <span class="preprocessor"></span>        <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=(c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a> ? <span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>(c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>) : 0);
-<a name="l00055"></a>00055 <span class="preprocessor">    #else</span>
-<a name="l00056"></a>00056 <span class="preprocessor"></span>        <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>;
-<a name="l00057"></a>00057 <span class="preprocessor">    #endif</span>
-<a name="l00058"></a>00058 <span class="preprocessor"></span>    <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
-<a name="l00059"></a>00059 }
-<a name="l00060"></a>00060 
-<a name="l00061"></a><a class="code" href="classxint_1_1integer.html#aed205d80e7b1a495a2d67abde5c406e8">00061</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">integer::_init</a>(boost::uintmax_t n) {
-<a name="l00062"></a>00062     <span class="keyword">static</span> <span class="keywordtype">int</span> bits=std::numeric_limits<boost::uintmax_t>::digits;
-<a name="l00063"></a>00063     <span class="keyword">static</span> <span class="keywordtype">int</span> maxDigits=(bits+<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">detail::bits_per_digit</a>-1)/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">detail::bits_per_digit</a>;
+<a name="l00043"></a><a class="code" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">00043</a> <a class="code" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">integer::~integer</a>() {
+<a name="l00044"></a>00044     <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a>();
+<a name="l00045"></a>00045 }
+<a name="l00046"></a>00046 
+<a name="l00047"></a><a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">00047</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">integer::_init</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> init) {
+<a name="l00048"></a>00048     <span class="keywordflow">try</span> {
+<a name="l00049"></a>00049         <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>=<span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a>(init);
+<a name="l00050"></a>00050     } <span class="keywordflow">catch</span> (std::bad_alloc&) {
+<a name="l00051"></a>00051         <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1overflow__error.html">xint::overflow_error</a>(<span class="stringliteral">"Out of memory allocating xint::integer"</span>);
+<a name="l00052"></a>00052     }
+<a name="l00053"></a>00053     <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
+<a name="l00054"></a>00054 }
+<a name="l00055"></a>00055 
+<a name="l00056"></a><a class="code" href="classxint_1_1integer.html#adaaff26c817fec0bef3cf903773e3f7b">00056</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">integer::_init</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &c) {
+<a name="l00057"></a>00057 <span class="preprocessor">    #ifdef XINT_DISABLE_COPY_ON_WRITE</span>
+<a name="l00058"></a>00058 <span class="preprocessor"></span>        <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>=(c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a> ? <span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a>(c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>) : 0);
+<a name="l00059"></a>00059 <span class="preprocessor">    #else</span>
+<a name="l00060"></a>00060 <span class="preprocessor"></span>        <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>=c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>;
+<a name="l00061"></a>00061 <span class="preprocessor">    #endif</span>
+<a name="l00062"></a>00062 <span class="preprocessor"></span>    <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
+<a name="l00063"></a>00063 }
 <a name="l00064"></a>00064 
-<a name="l00065"></a>00065     <span class="keywordflow">try</span> {
-<a name="l00066"></a>00066         <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=<span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a>;
-<a name="l00067"></a>00067     } <span class="keywordflow">catch</span> (std::bad_alloc&) {
-<a name="l00068"></a>00068         <span class="keywordflow">throw</span> std::overflow_error(<span class="stringliteral">"Out of memory allocating xint::integer"</span>);
-<a name="l00069"></a>00069     }
-<a name="l00070"></a>00070     <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
-<a name="l00071"></a>00071 
-<a name="l00072"></a>00072     <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(maxDigits);
-<a name="l00073"></a>00073     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x=0; n != 0; ++x) {
-<a name="l00074"></a>00074         <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]=<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a>(n & <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">detail::digit_mask</a>);
-<a name="l00075"></a>00075         n >>= <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">detail::bits_per_digit</a>;
-<a name="l00076"></a>00076     }
-<a name="l00077"></a>00077     <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00078"></a>00078 }
-<a name="l00079"></a>00079 
-<a name="l00080"></a><a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">00080</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">integer::_attach</a>() {
-<a name="l00081"></a>00081     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>) <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">attach</a>();
+<a name="l00065"></a><a class="code" href="classxint_1_1integer.html#aed205d80e7b1a495a2d67abde5c406e8">00065</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">integer::_init</a>(boost::uintmax_t n) {
+<a name="l00066"></a>00066     <span class="keyword">static</span> <span class="keywordtype">int</span> bits=std::numeric_limits<boost::uintmax_t>::digits;
+<a name="l00067"></a>00067     <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="l00068"></a>00068 
+<a name="l00069"></a>00069     <span class="keywordflow">try</span> {
+<a name="l00070"></a>00070         <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>=<span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a>;
+<a name="l00071"></a>00071     } <span class="keywordflow">catch</span> (std::bad_alloc&) {
+<a name="l00072"></a>00072         <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1overflow__error.html">xint::overflow_error</a>(<span class="stringliteral">"Out of memory allocating xint::integer"</span>);
+<a name="l00073"></a>00073     }
+<a name="l00074"></a>00074     <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076     <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a>(maxDigits);
+<a name="l00077"></a>00077     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x=0; n != 0; ++x) {
+<a name="l00078"></a>00078         <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[x]=<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a>(n & <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">detail::digit_mask</a>);
+<a name="l00079"></a>00079         n >>= <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">detail::bits_per_digit</a>;
+<a name="l00080"></a>00080     }
+<a name="l00081"></a>00081     <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
 <a name="l00082"></a>00082 }
 <a name="l00083"></a>00083 
-<a name="l00084"></a><a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">00084</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">integer::_detach</a>() {
-<a name="l00085"></a>00085     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a> && <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">detach</a>()) <span class="keyword">delete</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>;
+<a name="l00084"></a><a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">00084</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">integer::_attach</a>() {
+<a name="l00085"></a>00085     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>) <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">attach</a>();
 <a name="l00086"></a>00086 }
 <a name="l00087"></a>00087 
-<a name="l00088"></a><a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">00088</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">integer::_make_unique</a>() {
-<a name="l00089"></a>00089     <span class="keywordflow">try</span> {
-<a name="l00090"></a>00090         <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a> && <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a> > 1) {
-<a name="l00091"></a>00091             <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *newstore=<span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a>(<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>);
-<a name="l00092"></a>00092             <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a>();
-<a name="l00093"></a>00093             <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=newstore;
-<a name="l00094"></a>00094             <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
-<a name="l00095"></a>00095         }
-<a name="l00096"></a>00096     } <span class="keywordflow">catch</span> (std::bad_alloc&) {
-<a name="l00097"></a>00097         <span class="keywordflow">throw</span> std::overflow_error(<span class="stringliteral">"Out of memory allocating xint::integer"</span>);
-<a name="l00098"></a>00098     }
-<a name="l00099"></a>00099 }
-<a name="l00100"></a>00100 
-<a name="l00101"></a><a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">00101</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">integer::_set_negative</a>(<span class="keywordtype">bool</span> negative) {
-<a name="l00102"></a>00102     <span class="keywordflow">if</span> (negative != (<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() < 0)) *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">negate</a>(*<span class="keyword">this</span>);
+<a name="l00088"></a><a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">00088</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">integer::_detach</a>() {
+<a name="l00089"></a>00089     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a> && <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">detach</a>()) <span class="keyword">delete</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>;
+<a name="l00090"></a>00090 }
+<a name="l00091"></a>00091 
+<a name="l00092"></a><a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">00092</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">integer::_make_unique</a>() {
+<a name="l00093"></a>00093     <span class="keywordflow">try</span> {
+<a name="l00094"></a>00094         <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a> && <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a> > 1) {
+<a name="l00095"></a>00095             <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *newstore=<span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a>(<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>);
+<a name="l00096"></a>00096             <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a>();
+<a name="l00097"></a>00097             <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>=newstore;
+<a name="l00098"></a>00098             <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
+<a name="l00099"></a>00099         }
+<a name="l00100"></a>00100     } <span class="keywordflow">catch</span> (std::bad_alloc&) {
+<a name="l00101"></a>00101         <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1overflow__error.html">xint::overflow_error</a>(<span class="stringliteral">"Out of memory allocating xint::integer"</span>);
+<a name="l00102"></a>00102     }
 <a name="l00103"></a>00103 }
 <a name="l00104"></a>00104 
-<a name="l00105"></a><a class="code" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">00105</a> <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">integer::odd</a>()<span class="keyword"> const </span>{
-<a name="l00106"></a>00106     <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00107"></a>00107     <span class="keywordflow">return</span> ((<a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(0) & 0x01)==1);
-<a name="l00108"></a>00108 }
-<a name="l00109"></a>00109 
-<a name="l00110"></a><a class="code" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">00110</a> <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">integer::even</a>()<span class="keyword"> const </span>{
-<a name="l00111"></a>00111     <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00112"></a>00112     <span class="keywordflow">return</span> ((<a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(0) & 0x01)==0);
-<a name="l00113"></a>00113 }
-<a name="l00114"></a>00114 
-<a name="l00115"></a><a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">00115</a> <span class="keywordtype">int</span> <a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">integer::sign</a>()<span class="keyword"> const </span>{
-<a name="l00116"></a>00116     <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00117"></a>00117     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>) <span class="keywordflow">return</span> -1;
-<a name="l00118"></a>00118     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>()==1 && <a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(0)==0) <span class="keywordflow">return</span> 0;
-<a name="l00119"></a>00119     <span class="keywordflow">return</span> 1;
-<a name="l00120"></a>00120 }
-<a name="l00121"></a>00121 
-<a name="l00122"></a><a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">00122</a> <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">integer::nan</a>()<span class="keyword"> const </span>{
-<a name="l00123"></a>00123     <span class="keywordflow">return</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>==0);
+<a name="l00105"></a><a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">00105</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="l00106"></a>00106     <span class="keywordflow">if</span> (negative != (<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() < 0)) *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">negate</a>(*<span class="keyword">this</span>);
+<a name="l00107"></a>00107 }
+<a name="l00108"></a>00108 
+<a name="l00109"></a><a class="code" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">00109</a> <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">integer::odd</a>()<span class="keyword"> const </span>{
+<a name="l00110"></a>00110     <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00111"></a>00111     <span class="keywordflow">return</span> ((<a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(0) & 0x01)==1);
+<a name="l00112"></a>00112 }
+<a name="l00113"></a>00113 
+<a name="l00114"></a><a class="code" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">00114</a> <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">integer::even</a>()<span class="keyword"> const </span>{
+<a name="l00115"></a>00115     <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00116"></a>00116     <span class="keywordflow">return</span> ((<a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(0) & 0x01)==0);
+<a name="l00117"></a>00117 }
+<a name="l00118"></a>00118 
+<a name="l00119"></a><a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">00119</a> <span class="keywordtype">int</span> <a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">integer::sign</a>()<span class="keyword"> const </span>{
+<a name="l00120"></a>00120     <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00121"></a>00121     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a>) <span class="keywordflow">return</span> -1;
+<a name="l00122"></a>00122     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>()==1 && <a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(0)==0) <span class="keywordflow">return</span> 0;
+<a name="l00123"></a>00123     <span class="keywordflow">return</span> 1;
 <a name="l00124"></a>00124 }
 <a name="l00125"></a>00125 
-<a name="l00126"></a><a class="code" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">00126</a> <span class="keywordtype">size_t</span> <a class="code" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">integer::hex_digits</a>()<span class="keyword"> const </span>{
-<a name="l00127"></a>00127     <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00128"></a>00128     <span class="keywordtype">size_t</span> bits=<a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(*<span class="keyword">this</span>);
-<a name="l00129"></a>00129     <span class="keywordflow">return</span> (bits+3)/4; <span class="comment">// Four bits per hex digit, rounded up</span>
-<a name="l00130"></a>00130 }
-<a name="l00131"></a>00131 
-<a name="l00132"></a><a class="code" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">00132</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">integer::operator+=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& addend) {
-<a name="l00133"></a>00133     <span class="keywordflow">if</span> ((<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() < 0) == (addend.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() < 0)
-<a name="l00134"></a>00134         && <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a> >= addend.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>)
-<a name="l00135"></a>00135     {
-<a name="l00136"></a>00136         <span class="comment">// Fast in-place add</span>
-<a name="l00137"></a>00137         <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00138"></a>00138         <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">add</a>(addend.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>);
-<a name="l00139"></a>00139     } <span class="keywordflow">else</span> {
-<a name="l00140"></a>00140         <span class="comment">// This works for all cases</span>
-<a name="l00141"></a>00141         *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">add</a>(*<span class="keyword">this</span>, addend);
-<a name="l00142"></a>00142     }
-<a name="l00143"></a>00143     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00144"></a>00144 }
-<a name="l00145"></a>00145 
-<a name="l00146"></a><a class="code" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">00146</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">integer::operator-=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& subtrahend) {
-<a name="l00147"></a>00147     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() >= 0 && subtrahend.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() >= 0 && *<span class="keyword">this</span> >= subtrahend) {
-<a name="l00148"></a>00148         <span class="comment">// Fast in-place subtract</span>
-<a name="l00149"></a>00149         <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00150"></a>00150         <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">subtract</a>(subtrahend.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>);
-<a name="l00151"></a>00151     } <span class="keywordflow">else</span> {
-<a name="l00152"></a>00152         <span class="comment">// This works for all cases</span>
-<a name="l00153"></a>00153         *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(*<span class="keyword">this</span>, subtrahend);
-<a name="l00154"></a>00154     }
-<a name="l00155"></a>00155     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00156"></a>00156 }
-<a name="l00157"></a>00157 
-<a name="l00158"></a><a class="code" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">00158</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">integer::operator=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &c) {
-<a name="l00159"></a>00159     <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a>();
-<a name="l00160"></a>00160 <span class="preprocessor">    #ifdef XINT_THREADSAFE</span>
-<a name="l00161"></a>00161 <span class="preprocessor"></span>        <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=(c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a> ? <span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>(c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>) : 0);
-<a name="l00162"></a>00162 <span class="preprocessor">    #else</span>
-<a name="l00163"></a>00163 <span class="preprocessor"></span>        <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>=c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>;
-<a name="l00164"></a>00164 <span class="preprocessor">    #endif</span>
-<a name="l00165"></a>00165 <span class="preprocessor"></span>    <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
-<a name="l00166"></a>00166     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00167"></a>00167 }
-<a name="l00168"></a>00168 
-<a name="l00169"></a><a class="code" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">00169</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">integer::operator*=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">multiply</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00170"></a><a class="code" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">00170</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">integer::operator/=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">divide</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00171"></a><a class="code" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">00171</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">integer::operator%=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">mod</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00126"></a><a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">00126</a> <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">integer::nan</a>()<span class="keyword"> const </span>{
+<a name="l00127"></a>00127     <span class="keywordflow">return</span> (<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>==0);
+<a name="l00128"></a>00128 }
+<a name="l00129"></a>00129 
+<a name="l00130"></a><a class="code" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">00130</a> <span class="keywordtype">size_t</span> <a class="code" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">integer::hex_digits</a>()<span class="keyword"> const </span>{
+<a name="l00131"></a>00131     <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00132"></a>00132     <span class="keywordtype">size_t</span> bits=<a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(*<span class="keyword">this</span>);
+<a name="l00133"></a>00133     <span class="keywordflow">return</span> (bits+3)/4; <span class="comment">// Four bits per hex digit, rounded up</span>
+<a name="l00134"></a>00134 }
+<a name="l00135"></a>00135 
+<a name="l00136"></a><a class="code" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">00136</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">integer::operator+=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& addend) {
+<a name="l00137"></a>00137     <span class="keywordflow">if</span> ((<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() < 0) == (addend.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() < 0)
+<a name="l00138"></a>00138         && <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a> >= addend.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>)
+<a name="l00139"></a>00139     {
+<a name="l00140"></a>00140         <span class="comment">// Fast in-place add</span>
+<a name="l00141"></a>00141         <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
+<a name="l00142"></a>00142         <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">add</a>(addend.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>);
+<a name="l00143"></a>00143     } <span class="keywordflow">else</span> {
+<a name="l00144"></a>00144         <span class="comment">// This works for all cases</span>
+<a name="l00145"></a>00145         *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">add</a>(*<span class="keyword">this</span>, addend);
+<a name="l00146"></a>00146     }
+<a name="l00147"></a>00147     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00148"></a>00148 }
+<a name="l00149"></a>00149 
+<a name="l00150"></a><a class="code" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">00150</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">integer::operator-=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& subtrahend) {
+<a name="l00151"></a>00151     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() >= 0 && subtrahend.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() >= 0 && *<span class="keyword">this</span> >= subtrahend) {
+<a name="l00152"></a>00152         <span class="comment">// Fast in-place subtract</span>
+<a name="l00153"></a>00153         <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
+<a name="l00154"></a>00154         <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">subtract</a>(subtrahend.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>);
+<a name="l00155"></a>00155     } <span class="keywordflow">else</span> {
+<a name="l00156"></a>00156         <span class="comment">// This works for all cases</span>
+<a name="l00157"></a>00157         *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(*<span class="keyword">this</span>, subtrahend);
+<a name="l00158"></a>00158     }
+<a name="l00159"></a>00159     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00160"></a>00160 }
+<a name="l00161"></a>00161 
+<a name="l00162"></a><a class="code" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">00162</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">integer::operator=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &c) {
+<a name="l00163"></a>00163     <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a>();
+<a name="l00164"></a>00164 <span class="preprocessor">    #ifdef XINT_DISABLE_COPY_ON_WRITE</span>
+<a name="l00165"></a>00165 <span class="preprocessor"></span>        <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>=(c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a> ? <span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a>(c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>) : 0);
+<a name="l00166"></a>00166 <span class="preprocessor">    #else</span>
+<a name="l00167"></a>00167 <span class="preprocessor"></span>        <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>=c.<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>;
+<a name="l00168"></a>00168 <span class="preprocessor">    #endif</span>
+<a name="l00169"></a>00169 <span class="preprocessor"></span>    <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
+<a name="l00170"></a>00170     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00171"></a>00171 }
 <a name="l00172"></a>00172 
-<a name="l00173"></a><a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">00173</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">integer::operator++</a>() { *<span class="keyword">this</span> += <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">one</a>(); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00174"></a><a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">00174</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">integer::operator--</a>() { *<span class="keyword">this</span> -= <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">one</a>(); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00175"></a><a class="code" href="classxint_1_1integer.html#a79624fb580bdb2ba19fe13223c801c25">00175</a> <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">integer::operator++</a>(<span class="keywordtype">int</span>) { <a class="code" href="classxint_1_1integer.html">integer</a> s=*<span class="keyword">this</span>; *<span class="keyword">this</span> += <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">one</a>(); <span class="keywordflow">return</span> s; }
-<a name="l00176"></a><a class="code" href="classxint_1_1integer.html#a40ff1ffeda1df544b8bcd907f76d93cd">00176</a> <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">integer::operator--</a>(<span class="keywordtype">int</span>) { <a class="code" href="classxint_1_1integer.html">integer</a> s=*<span class="keyword">this</span>; *<span class="keyword">this</span> -= <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">one</a>(); <span class="keywordflow">return</span> s; }
-<a name="l00177"></a>00177 
-<a name="l00178"></a><a class="code" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">00178</a> <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">integer::operator<<</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">shift_left</a>(*<span class="keyword">this</span>, shift); }
-<a name="l00179"></a><a class="code" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">00179</a> <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">integer::operator>></a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">shift_right</a>(*<span class="keyword">this</span>, shift); }
-<a name="l00180"></a><a class="code" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">00180</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">integer::operator&=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">bitwise_and</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00181"></a><a class="code" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">00181</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">integer::operator|=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">bitwise_or</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00182"></a><a class="code" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">00182</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">integer::operator^=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">bitwise_xor</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00183"></a>00183 
-<a name="l00184"></a><a class="code" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">00184</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">integer::operator<<=</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>) {
-<a name="l00185"></a>00185     <span class="keywordflow">if</span> (shift>0) {
-<a name="l00186"></a>00186         <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00187"></a>00187         <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">shift_left</a>(shift);
-<a name="l00188"></a>00188     }
-<a name="l00189"></a>00189     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00190"></a>00190 }
-<a name="l00191"></a>00191 
-<a name="l00192"></a><a class="code" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">00192</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">integer::operator>>=</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>) {
-<a name="l00193"></a>00193     <span class="keywordflow">if</span> (shift>0) {
-<a name="l00194"></a>00194         <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00195"></a>00195         <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">shift_right</a>(shift);
-<a name="l00196"></a>00196     }
-<a name="l00197"></a>00197     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00198"></a>00198 }
-<a name="l00199"></a>00199 
-<a name="l00200"></a><a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">00200</a> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>() {
-<a name="l00201"></a>00201     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a>==0) <a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a>=<span class="keyword">new</span> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer</a>(0);
-<a name="l00202"></a>00202     <span class="keywordflow">return</span> *<a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a>;
-<a name="l00203"></a>00203 }
-<a name="l00204"></a>00204 
-<a name="l00205"></a><a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">00205</a> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>() {
-<a name="l00206"></a>00206     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a>==0) <a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a>=<span class="keyword">new</span> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer</a>(1);
-<a name="l00207"></a>00207     <span class="keywordflow">return</span> *<a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a>;
-<a name="l00208"></a>00208 }
-<a name="l00209"></a>00209 
-<a name="l00210"></a><a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">00210</a> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> <a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">integer::_get_digit</a>(<span class="keywordtype">size_t</span> index)<span class="keyword"> const </span>{
-<a name="l00211"></a>00211     <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[index];
+<a name="l00173"></a><a class="code" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">00173</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">integer::operator*=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">multiply</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00174"></a><a class="code" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">00174</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">integer::operator/=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">divide</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00175"></a><a class="code" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">00175</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">integer::operator%=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">mod</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00176"></a>00176 
+<a name="l00177"></a><a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">00177</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">integer::operator++</a>() { *<span class="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="l00178"></a><a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">00178</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">integer::operator--</a>() { *<span class="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="l00179"></a><a class="code" href="classxint_1_1integer.html#a79624fb580bdb2ba19fe13223c801c25">00179</a> <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">integer::operator++</a>(<span class="keywordtype">int</span>) { <a class="code" href="classxint_1_1integer.html">integer</a> s=*<span class="keyword">this</span>; *<span class="keyword">this</span> += <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">one</a>(); <span class="keywordflow">return</span> s; }
+<a name="l00180"></a><a class="code" href="classxint_1_1integer.html#a40ff1ffeda1df544b8bcd907f76d93cd">00180</a> <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">integer::operator--</a>(<span class="keywordtype">int</span>) { <a class="code" href="classxint_1_1integer.html">integer</a> s=*<span class="keyword">this</span>; *<span class="keyword">this</span> -= <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">one</a>(); <span class="keywordflow">return</span> s; }
+<a name="l00181"></a>00181 
+<a name="l00182"></a><a class="code" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">00182</a> <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">integer::operator<<</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">shift_left</a>(*<span class="keyword">this</span>, shift); }
+<a name="l00183"></a><a class="code" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">00183</a> <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">integer::operator>></a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">shift_right</a>(*<span class="keyword">this</span>, shift); }
+<a name="l00184"></a><a class="code" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">00184</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">integer::operator&=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">bitwise_and</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00185"></a><a class="code" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">00185</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">integer::operator|=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">bitwise_or</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00186"></a><a class="code" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">00186</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">integer::operator^=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n) { *<span class="keyword">this</span>=<a class="code" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">bitwise_xor</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00187"></a>00187 
+<a name="l00188"></a><a class="code" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">00188</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">integer::operator<<=</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>) {
+<a name="l00189"></a>00189     <span class="keywordflow">if</span> (shift>0) {
+<a name="l00190"></a>00190         <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
+<a name="l00191"></a>00191         <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a72785130c7c6490af874f450cf6e0086">shift_left</a>(shift);
+<a name="l00192"></a>00192     }
+<a name="l00193"></a>00193     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00194"></a>00194 }
+<a name="l00195"></a>00195 
+<a name="l00196"></a><a class="code" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">00196</a> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">integer::operator>>=</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>) {
+<a name="l00197"></a>00197     <span class="keywordflow">if</span> (shift>0) {
+<a name="l00198"></a>00198         <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
+<a name="l00199"></a>00199         <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a432ace7094bca306dcba254f862e2428">shift_right</a>(shift);
+<a name="l00200"></a>00200     }
+<a name="l00201"></a>00201     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00202"></a>00202 }
+<a name="l00203"></a>00203 
+<a name="l00204"></a><a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">00204</a> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>() {
+<a name="l00205"></a>00205     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a>==0) <a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a>=<span class="keyword">new</span> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer</a>(0);
+<a name="l00206"></a>00206     <span class="keywordflow">return</span> *<a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a>;
+<a name="l00207"></a>00207 }
+<a name="l00208"></a>00208 
+<a name="l00209"></a><a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">00209</a> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>() {
+<a name="l00210"></a>00210     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a>==0) <a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a>=<span class="keyword">new</span> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer</a>(1);
+<a name="l00211"></a>00211     <span class="keywordflow">return</span> *<a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a>;
 <a name="l00212"></a>00212 }
 <a name="l00213"></a>00213 
-<a name="l00214"></a><a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">00214</a> <span class="keywordtype">size_t</span> <a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">integer::_get_length</a>()<span class="keyword"> const </span>{
-<a name="l00215"></a>00215     <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>;
+<a name="l00214"></a><a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">00214</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="l00215"></a>00215     <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>[index];
 <a name="l00216"></a>00216 }
 <a name="l00217"></a>00217 
-<a name="l00218"></a><a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">00218</a> <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">integer::_throw_if_nan</a>()<span class="keyword"> const </span>{
-<a name="l00219"></a>00219     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a>()) <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>();
+<a name="l00218"></a><a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">00218</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="l00219"></a>00219     <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>-><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a>;
 <a name="l00220"></a>00220 }
 <a name="l00221"></a>00221 
-<a name="l00222"></a>00222 } <span class="comment">// namespace xint</span>
+<a name="l00222"></a><a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">00222</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="l00223"></a>00223     <span class="keywordflow">if</span> (<a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a>()) <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>();
+<a name="l00224"></a>00224 }
+<a name="l00225"></a>00225 
+<a name="l00226"></a>00226 } <span class="comment">// namespace xint</span>
 </pre></div></div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -295,7 +299,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/misc_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/misc_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/misc_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -62,10 +62,6 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd">xint::opt_secure_mode</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad55aa4d44083238d9ec313511f5b1dfa">xint::opt_thread_safe</a> ()</td></tr>
@@ -90,7 +86,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/misc_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/misc_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/misc_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -121,7 +121,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/modular_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/modular_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/modular_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -63,10 +63,6 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">xint::mod</a> (const integer &n, const integer &modBy)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a67ad0747617ca6e780d6f67d60260450">xint::mulmod</a> (const integer &n, const integer &by, const integer &modulus)</td></tr>
@@ -92,7 +88,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/modular_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/modular_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/modular_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -90,15 +90,15 @@
 <a name="l00034"></a>00034 integer <a class="code" href="namespacexint.html#a1f8b43b537ff9de1d5612ed228a8fbe1">powmod</a>(<span class="keyword">const</span> integer& n, <span class="keyword">const</span> integer& exponent, <span class="keyword">const</span> integer&
 <a name="l00035"></a>00035     modulus, <span class="keywordtype">bool</span> noMontgomery)
 <a name="l00036"></a>00036 {
-<a name="l00037"></a>00037     <span class="keywordflow">if</span> (modulus < <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>()) {
+<a name="l00037"></a>00037     <span class="keywordflow">if</span> (modulus < <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>()) {
 <a name="l00038"></a>00038         <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus();
 <a name="l00039"></a>00039         <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
 <a name="l00040"></a>00040     }
-<a name="l00041"></a>00041     <span class="keywordflow">if</span> (exponent.sign()==0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>();
+<a name="l00041"></a>00041     <span class="keywordflow">if</span> (exponent.sign()==0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>();
 <a name="l00042"></a>00042 
 <a name="l00043"></a>00043     <span class="keywordtype">bool</span> neg=(n.sign() < 0 && exponent.odd());
 <a name="l00044"></a>00044 
-<a name="l00045"></a>00045     integer answer(<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>());
+<a name="l00045"></a>00045     integer answer(<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>());
 <a name="l00046"></a>00046 
 <a name="l00047"></a>00047     <span class="comment">// Montgomery's method is often noticeably faster, but only works if the</span>
 <a name="l00048"></a>00048     <span class="comment">// modulus is odd.</span>
@@ -107,15 +107,15 @@
 <a name="l00051"></a>00051     } <span class="keywordflow">else</span> {
 <a name="l00052"></a>00052         integer p(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(n));
 <a name="l00053"></a>00053 
-<a name="l00054"></a>00054         <span class="keywordtype">int</span> length=exponent._get_length(), lastBitCount=0;
+<a name="l00054"></a>00054         <span class="keywordtype">size_t</span> length=exponent._get_length(), lastBitCount=0;
 <a name="l00055"></a>00055         <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> ee(exponent._get_digit(length-1));
 <a name="l00056"></a>00056         <span class="keywordflow">while</span> (ee != 0) { ee >>= 1; ++lastBitCount; }
 <a name="l00057"></a>00057 
-<a name="l00058"></a>00058         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> eIndex=0; eIndex < length; ++eIndex) {
+<a name="l00058"></a>00058         <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> eIndex=0; eIndex < length; ++eIndex) {
 <a name="l00059"></a>00059             <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> e(exponent._get_digit(eIndex));
 <a name="l00060"></a>00060 
-<a name="l00061"></a>00061             <span class="keywordtype">int</span> bitCount(eIndex == length-1 ? lastBitCount :
-<a name="l00062"></a>00062                 <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">detail::bits_per_digit</a>);
+<a name="l00061"></a>00061             <span class="keywordtype">int</span> bitCount(<span class="keywordtype">int</span>(eIndex == length-1 ? lastBitCount :
+<a name="l00062"></a>00062                 <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">detail::bits_per_digit</a>));
 <a name="l00063"></a>00063             <span class="keywordflow">while</span> (bitCount-- > 0) {
 <a name="l00064"></a>00064                 <span class="keywordflow">if</span> (e & 0x01) answer=<a class="code" href="namespacexint.html#a67ad0747617ca6e780d6f67d60260450">mulmod</a>(answer, p, modulus);
 <a name="l00065"></a>00065                 p=<a class="code" href="namespacexint.html#a594bd29593aad9a1c047af22e91e749c">sqrmod</a>(p, modulus);
@@ -148,7 +148,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/monty_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/monty_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/monty_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -64,10 +64,6 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Defines</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(p)   (doubledigit_t(1) << p)</td></tr>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
@@ -149,7 +145,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/monty_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/monty_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/monty_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -88,7 +88,7 @@
 <a name="l00032"></a>00032 }
 <a name="l00033"></a>00033 
 <a name="l00034"></a>00034 integer <a class="code" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b">montgomeryR</a>(<span class="keyword">const</span> integer& n) {
-<a name="l00035"></a>00035     <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>() << (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * n._get_data()->mLength);
+<a name="l00035"></a>00035     <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>() << (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * n._get_data()->mLength);
 <a name="l00036"></a>00036 }
 <a name="l00037"></a>00037 
 <a name="l00038"></a>00038 integer <a class="code" href="namespacexint.html#ab8e85cd5425fcec419c07155e2a91e13">toMontgomeryForm</a>(<span class="keyword">const</span> integer& n, <span class="keyword">const</span> integer& m) {
@@ -140,10 +140,10 @@
 <a name="l00084"></a>00084     <span class="comment">// nPrime0 is nPrime mod B, or digit zero of nPrime</span>
 <a name="l00085"></a>00085 
 <a name="l00086"></a>00086     <span class="keyword">const</span> integer B(<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>);
-<a name="l00087"></a>00087     <span class="keyword">const</span> <span class="keywordtype">int</span> L(n._get_length()), L1(L-1);
+<a name="l00087"></a>00087     <span class="keyword">const</span> <span class="keywordtype">size_t</span> L(n._get_length()), L1(L-1);
 <a name="l00088"></a>00088 
 <a name="l00089"></a>00089     integer t=a*b;
-<a name="l00090"></a>00090     <span class="keywordtype">int</span> i=0;
+<a name="l00090"></a>00090     <span class="keywordtype">size_t</span> i=0;
 <a name="l00091"></a>00091 
 <a name="l00092"></a>00092     <span class="keywordflow">do</span> {
 <a name="l00093"></a>00093         <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> mi=<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(t._get_digit(i))*nPrime0);
@@ -222,13 +222,13 @@
 <a name="l00166"></a>00166     integer aa=a*r%n, aSquared=a*a%n;
 <a name="l00167"></a>00167 
 <a name="l00168"></a>00168     vxint_t rval;
-<a name="l00169"></a>00169     rval.reserve(<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(k));
-<a name="l00170"></a>00170     rval.push_back(<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>());     <span class="comment">// Anything to the zeroth power is one</span>
+<a name="l00169"></a>00169     rval.reserve(<span class="keywordtype">size_t</span>(<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(k)));
+<a name="l00170"></a>00170     rval.push_back(<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>());     <span class="comment">// Anything to the zeroth power is one</span>
 <a name="l00171"></a>00171     rval.push_back(aa);                 <span class="comment">// Anything to the first power is itself</span>
 <a name="l00172"></a>00172 
 <a name="l00173"></a>00173     <span class="keywordflow">for</span> (<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> i=3, ie=(<a class="code" href="monty_8cpp.html#a5e044fcc16f6eb5e891ef312f47209ac">ddPowerOfTwo</a>(k)); i<ie; i+=2) {
 <a name="l00174"></a>00174         aa=aa*aSquared%n;
-<a name="l00175"></a>00175         rval.push_back(<a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>()); <span class="comment">// Even powers not needed or calculated</span>
+<a name="l00175"></a>00175         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="l00176"></a>00176         rval.push_back(aa);              <span class="comment">// Odd power</span>
 <a name="l00177"></a>00177     }
 <a name="l00178"></a>00178 
@@ -271,7 +271,7 @@
 <a name="l00215"></a>00215 
 <a name="l00216"></a>00216     <span class="keyword">const</span> TUTable &tuTable(TUTable::get());
 <a name="l00217"></a>00217 
-<a name="l00218"></a>00218     <span class="keywordflow">if</span> (e.sign()==0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>();
+<a name="l00218"></a>00218     <span class="keywordflow">if</span> (e.sign()==0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>();
 <a name="l00219"></a>00219     <span class="keywordflow">if</span> (n.even()) {
 <a name="l00220"></a>00220         <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> invalid_modulus(<span class="stringliteral">"montgomeryPowerMod "</span>
 <a name="l00221"></a>00221             <span class="stringliteral">"requires an odd modulus"</span>);
@@ -309,7 +309,7 @@
 <a name="l00253"></a>00253         } <span class="keywordflow">else</span> {
 <a name="l00254"></a>00254             std::pair<int, int> tu=tuTable[i];
 <a name="l00255"></a>00255 
-<a name="l00256"></a>00256             <span class="keywordtype">int</span> s=k-tu.first;
+<a name="l00256"></a>00256             <span class="keywordtype">size_t</span> s=k-tu.first;
 <a name="l00257"></a>00257             <span class="keywordflow">while</span> (s-- > 0) pp=<a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">montgomeryMultiplyMod</a>(pp, pp, n, nPrime0);
 <a name="l00258"></a>00258 
 <a name="l00259"></a>00259             pp=<a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">montgomeryMultiplyMod</a>(pp, oddPowersOfAa[tu.second], n, nPrime0);
@@ -318,7 +318,7 @@
 <a name="l00262"></a>00262         }
 <a name="l00263"></a>00263     }
 <a name="l00264"></a>00264 
-<a name="l00265"></a>00265     <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">montgomeryMultiplyMod</a>(pp, <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>(), n, nPrime0);
+<a name="l00265"></a>00265     <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">montgomeryMultiplyMod</a>(pp, <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>(), n, nPrime0);
 <a name="l00266"></a>00266 }
 <a name="l00267"></a>00267 
 <a name="l00268"></a>00268 } <span class="comment">// namespace xint</span>
@@ -341,7 +341,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -119,6 +119,9 @@
 <li>block_exceptions()
 : <a class="el" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">xint</a>
 </li>
+<li>BOOST_PREVENT_MACRO_SUBSTITUTION()
+: <a class="el" href="namespacexint.html#a4c109bd4fe51e6cd67361200d952d9a4">xint</a>
+</li>
 </ul>
 
 
@@ -190,6 +193,9 @@
 <li>gcd()
 : <a class="el" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">xint</a>
 </li>
+<li>get_random()
+: <a class="el" href="namespacexint_1_1detail.html#a1dfc1e90886c4897a4b112f491b89b62">xint::detail</a>
+</li>
 <li>getbit()
 : <a class="el" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952">xint</a>
 </li>
@@ -265,12 +271,57 @@
 
 
 <h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>operator!()
+: <a class="el" href="namespacexint.html#a675c4fe6ddda6db915450d054ed640ba">xint</a>
+</li>
+<li>operator!=()
+: <a class="el" href="namespacexint.html#aefda934d0ffacd0f44fcbbdfee19a139">xint</a>
+</li>
+<li>operator%()
+: <a class="el" href="namespacexint.html#ae0505757986a9c7133552552471aae24">xint</a>
+</li>
+<li>operator&()
+: <a class="el" href="namespacexint.html#a742550f1c62ac8c2bde8e1ceab2a466c">xint</a>
+</li>
+<li>operator*()
+: <a class="el" href="namespacexint.html#aea36ad9037f109576d4f95ec72b5c825">xint</a>
+</li>
+<li>operator+()
+: <a class="el" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">xint</a>
+</li>
+<li>operator-()
+: <a class="el" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">xint</a>
+</li>
+<li>operator/()
+: <a class="el" href="namespacexint.html#a701217f7824c3e935fca25147da23807">xint</a>
+</li>
+<li>operator<()
+: <a class="el" href="namespacexint.html#a4f4a4771bf443e6724abbd18173ecc86">xint</a>
+</li>
 <li>operator<<()
 : <a class="el" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">xint</a>
 </li>
+<li>operator<=()
+: <a class="el" href="namespacexint.html#ab9d5f34c4d4bed1c86380d4f72edcd9b">xint</a>
+</li>
+<li>operator==()
+: <a class="el" href="namespacexint.html#ad32051708c2a2baafa0340e19e90217b">xint</a>
+</li>
+<li>operator>()
+: <a class="el" href="namespacexint.html#a1229d1f1efbdf3ffeac8b2964ca66093">xint</a>
+</li>
+<li>operator>=()
+: <a class="el" href="namespacexint.html#a766324a6f216f3b49a3e9aa885e9531c">xint</a>
+</li>
 <li>operator>>()
 : <a class="el" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">xint</a>
 </li>
+<li>operator^()
+: <a class="el" href="namespacexint.html#a81722cd257bc950ba7c56a202492544f">xint</a>
+</li>
+<li>operator|()
+: <a class="el" href="namespacexint.html#afa8f2a0ac996ad45efc73b2aa056cae2">xint</a>
+</li>
 <li>opt_secure_mode()
 : <a class="el" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd">xint</a>
 </li>
@@ -294,30 +345,22 @@
 
 
 <h3><a class="anchor" id="index_r">- r -</a></h3><ul>
-<li>random()
-: <a class="el" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">xint</a>
-</li>
-<li>random< integer >()
-: <a class="el" href="namespacexint.html#a989d063e3298649704c804efca714ac6">xint</a>
-</li>
 <li>random_by_size()
 : <a class="el" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">xint</a>
 </li>
 <li>random_prime()
 : <a class="el" href="namespacexint.html#af148d73dc33718f9d893dac821ab699e">xint</a>
 </li>
+<li>random_t
+: <a class="el" href="namespacexint_1_1detail.html#a9c9dc00dbbe287492696635ed41dce44">xint::detail</a>
+</li>
 </ul>
 
 
 <h3><a class="anchor" id="index_s">- s -</a></h3><ul>
-<li>seed_fallback()
-: <a class="el" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">xint</a>
-</li>
-<li>seed_manual()
-: <a class="el" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">xint</a>
-</li>
-<li>seed_secure()
-: <a class="el" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">xint</a>
+<li>set_random_generator()
+: <a class="el" href="namespacexint_1_1detail.html#ada65da12642b63f663b50382068a607f">xint::detail</a>
+, <a class="el" href="namespacexint.html#ab2d0fe2cf11b25d26c1b86280cb4dc99">xint</a>
 </li>
 <li>setbit()
 : <a class="el" href="namespacexint.html#adf2652627e78682c17e120816987984a">xint</a>
@@ -371,9 +414,6 @@
 <li>testMultiply()
 : <a class="el" href="namespacexint.html#affe2e221777d4263a420d014fa9640d0">xint</a>
 </li>
-<li>testRandom()
-: <a class="el" href="namespacexint.html#aa1dbeb0c1ad12e8a8de7efb6c47e455f">xint</a>
-</li>
 <li>testStreams()
 : <a class="el" href="namespacexint.html#ae3305f62ca9be58fbc11dbd4c703f38b">xint</a>
 </li>
@@ -412,7 +452,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_func.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_func.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_func.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -113,6 +113,9 @@
 <li>block_exceptions()
 : <a class="el" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">xint</a>
 </li>
+<li>BOOST_PREVENT_MACRO_SUBSTITUTION()
+: <a class="el" href="namespacexint.html#a4c109bd4fe51e6cd67361200d952d9a4">xint</a>
+</li>
 </ul>
 
 
@@ -163,6 +166,9 @@
 <li>gcd()
 : <a class="el" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">xint</a>
 </li>
+<li>get_random()
+: <a class="el" href="namespacexint_1_1detail.html#a1dfc1e90886c4897a4b112f491b89b62">xint::detail</a>
+</li>
 <li>getbit()
 : <a class="el" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952">xint</a>
 </li>
@@ -232,12 +238,57 @@
 
 
 <h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>operator!()
+: <a class="el" href="namespacexint.html#a675c4fe6ddda6db915450d054ed640ba">xint</a>
+</li>
+<li>operator!=()
+: <a class="el" href="namespacexint.html#aefda934d0ffacd0f44fcbbdfee19a139">xint</a>
+</li>
+<li>operator%()
+: <a class="el" href="namespacexint.html#ae0505757986a9c7133552552471aae24">xint</a>
+</li>
+<li>operator&()
+: <a class="el" href="namespacexint.html#a742550f1c62ac8c2bde8e1ceab2a466c">xint</a>
+</li>
+<li>operator*()
+: <a class="el" href="namespacexint.html#aea36ad9037f109576d4f95ec72b5c825">xint</a>
+</li>
+<li>operator+()
+: <a class="el" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">xint</a>
+</li>
+<li>operator-()
+: <a class="el" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">xint</a>
+</li>
+<li>operator/()
+: <a class="el" href="namespacexint.html#a701217f7824c3e935fca25147da23807">xint</a>
+</li>
+<li>operator<()
+: <a class="el" href="namespacexint.html#a4f4a4771bf443e6724abbd18173ecc86">xint</a>
+</li>
 <li>operator<<()
 : <a class="el" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">xint</a>
 </li>
+<li>operator<=()
+: <a class="el" href="namespacexint.html#ab9d5f34c4d4bed1c86380d4f72edcd9b">xint</a>
+</li>
+<li>operator==()
+: <a class="el" href="namespacexint.html#ad32051708c2a2baafa0340e19e90217b">xint</a>
+</li>
+<li>operator>()
+: <a class="el" href="namespacexint.html#a1229d1f1efbdf3ffeac8b2964ca66093">xint</a>
+</li>
+<li>operator>=()
+: <a class="el" href="namespacexint.html#a766324a6f216f3b49a3e9aa885e9531c">xint</a>
+</li>
 <li>operator>>()
 : <a class="el" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">xint</a>
 </li>
+<li>operator^()
+: <a class="el" href="namespacexint.html#a81722cd257bc950ba7c56a202492544f">xint</a>
+</li>
+<li>operator|()
+: <a class="el" href="namespacexint.html#afa8f2a0ac996ad45efc73b2aa056cae2">xint</a>
+</li>
 <li>opt_secure_mode()
 : <a class="el" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd">xint</a>
 </li>
@@ -261,12 +312,6 @@
 
 
 <h3><a class="anchor" id="index_r">- r -</a></h3><ul>
-<li>random()
-: <a class="el" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">xint</a>
-</li>
-<li>random< integer >()
-: <a class="el" href="namespacexint.html#a989d063e3298649704c804efca714ac6">xint</a>
-</li>
 <li>random_by_size()
 : <a class="el" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">xint</a>
 </li>
@@ -277,14 +322,9 @@
 
 
 <h3><a class="anchor" id="index_s">- s -</a></h3><ul>
-<li>seed_fallback()
-: <a class="el" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">xint</a>
-</li>
-<li>seed_manual()
-: <a class="el" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">xint</a>
-</li>
-<li>seed_secure()
-: <a class="el" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">xint</a>
+<li>set_random_generator()
+: <a class="el" href="namespacexint_1_1detail.html#ada65da12642b63f663b50382068a607f">xint::detail</a>
+, <a class="el" href="namespacexint.html#ab2d0fe2cf11b25d26c1b86280cb4dc99">xint</a>
 </li>
 <li>setbit()
 : <a class="el" href="namespacexint.html#adf2652627e78682c17e120816987984a">xint</a>
@@ -338,9 +378,6 @@
 <li>testMultiply()
 : <a class="el" href="namespacexint.html#affe2e221777d4263a420d014fa9640d0">xint</a>
 </li>
-<li>testRandom()
-: <a class="el" href="namespacexint.html#aa1dbeb0c1ad12e8a8de7efb6c47e455f">xint</a>
-</li>
 <li>testStreams()
 : <a class="el" href="namespacexint.html#ae3305f62ca9be58fbc11dbd4c703f38b">xint</a>
 </li>
@@ -376,7 +413,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_type.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_type.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_type.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -74,6 +74,9 @@
 <li>doubledigit_t
 : <a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">xint::detail</a>
 </li>
+<li>random_t
+: <a class="el" href="namespacexint_1_1detail.html#a9c9dc00dbbe287492696635ed41dce44">xint::detail</a>
+</li>
 <li>token
 : <a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">xint</a>
 </li>
@@ -97,7 +100,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_vars.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_vars.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespacemembers_vars.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -109,7 +109,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/namespaces.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/namespaces.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespaces.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -57,8 +57,8 @@
 </div>
 <div class="contents">
 <h1>Namespace List</h1>Here is a list of all namespaces with brief descriptions:<table>
-  <tr><td class="indexkey"><a class="el" href="namespacexint.html">xint</a></td><td class="indexvalue">Namespace for all extended integer classes and functions </td></tr>
-  <tr><td class="indexkey"><a class="el" href="namespacexint_1_1detail.html">xint::detail</a></td><td class="indexvalue">Implementation details, normal users should not need to use these </td></tr>
+  <tr><td class="indexkey"><a class="el" href="namespacexint.html">xint</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="namespacexint_1_1detail.html">xint::detail</a></td><td class="indexvalue"></td></tr>
 </table>
 </div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
@@ -79,7 +79,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/namespacexint.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/namespacexint.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespacexint.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -56,24 +56,21 @@
   </div>
 </div>
 <div class="contents">
-<h1>xint Namespace Reference</h1>
-<p>namespace for all extended integer classes and functions.  
-More...</p>
-<table border="0" cellpadding="0" cellspacing="0">
+<h1>xint Namespace Reference</h1><table border="0" cellpadding="0" cellspacing="0">
 <tr><td colspan="2"><h2>Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html">detail</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>implementation details, normal users should not need to use these. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Classes</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html">integer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1strong__random__generator.html">strong_random_generator</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__base.html">invalid_base</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__digit.html">invalid_digit</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__modulus.html">invalid_modulus</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1divide__by__zero.html">divide_by_zero</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1cannot__represent.html">cannot_represent</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1too__big.html">too_big</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1not__a__number.html">not_a_number</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1no__strong__random.html">no_strong_random</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1overflow__error.html">overflow_error</a></td></tr>
 <tr><td colspan="2"><h2>Typedefs</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef std::auto_ptr<br class="typebreak"/>
 < <a class="el" href="structxint_1_1detail_1_1token.html">detail::token</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">token</a></td></tr>
@@ -91,6 +88,13 @@
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">shift_left</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &_n, size_t byBits)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">shift_right</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &_n, size_t byBits)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">compare</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &b1, const <a class="el" href="classxint_1_1integer.html">integer</a> &b2, bool ignoresign)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a675c4fe6ddda6db915450d054ed640ba">operator!</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad32051708c2a2baafa0340e19e90217b">operator==</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aefda934d0ffacd0f44fcbbdfee19a139">operator!=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4f4a4771bf443e6724abbd18173ecc86">operator<</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a1229d1f1efbdf3ffeac8b2964ca66093">operator></a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab9d5f34c4d4bed1c86380d4f72edcd9b">operator<=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a766324a6f216f3b49a3e9aa885e9531c">operator>=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">to_string</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &n, size_t base, bool upperCase)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">from_string</a> (const std::string &str, size_t base)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">from_binary</a> (const std::string &str)</td></tr>
@@ -114,6 +118,16 @@
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a93ed16c5350b34ca22108e48b51918a5">fromMontgomeryForm</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &n, const <a class="el" href="classxint_1_1integer.html">integer</a> &m)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a722769c7d01e06d9f82eae07a280160c">montgomeryMultiplyMod</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &a, const <a class="el" href="classxint_1_1integer.html">integer</a> &b, const <a class="el" href="classxint_1_1integer.html">integer</a> &n, digit_t nPrime0)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7d7e8604c467bc007820c60e1bc21626">montgomeryPowerMod</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &a, const <a class="el" href="classxint_1_1integer.html">integer</a> &e, const <a class="el" href="classxint_1_1integer.html">integer</a> &n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classxint_1_1integer.html">integer</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">operator+</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">operator-</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a211ff80bb081c08674272cfcae736a93">operator+</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a1e09422b575c6d29ea5c0d627b79c28e">operator-</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aea36ad9037f109576d4f95ec72b5c825">operator*</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a701217f7824c3e935fca25147da23807">operator/</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae0505757986a9c7133552552471aae24">operator%</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a742550f1c62ac8c2bde8e1ceab2a466c">operator&</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">integer</a> &n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afa8f2a0ac996ad45efc73b2aa056cae2">operator|</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">integer</a> &n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a81722cd257bc950ba7c56a202492544f">operator^</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">integer</a> &n2)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aea1ae2a423d401fa02d3f0621078fbf0">pow2</a> (size_t exponent)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">sqr</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &n)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aeee80b61e0cadc12f92752104e281b2c">pow</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &n, const <a class="el" href="classxint_1_1integer.html">integer</a> &exponent)</td></tr>
@@ -127,21 +141,14 @@
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">multiply</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &n, const <a class="el" href="classxint_1_1integer.html">integer</a> &by)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">divide</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &dividend, const <a class="el" href="classxint_1_1integer.html">integer</a> &divisor)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">std::pair< <a class="el" href="classxint_1_1integer.html">integer</a>, <a class="el" href="classxint_1_1integer.html">integer</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">divide_r</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &d1, const <a class="el" href="classxint_1_1integer.html">integer</a> &d2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">seed_secure</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">seed_fallback</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">seed_manual</a> (const std::string &value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">strong_random_generator::result_type</a> <br class="typebreak"/>
+strong_random_generator::min </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4c109bd4fe51e6cd67361200d952d9a4">BOOST_PREVENT_MACRO_SUBSTITUTION</a> () const </td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size</a> (size_t bits, bool highBitOn, bool lowBitOn, bool canBeNegative)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template<> </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a989d063e3298649704c804efca714ac6">random< integer ></a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &lowest, const <a class="el" href="classxint_1_1integer.html">integer</a> &highest)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a">sqrt</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &n)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">to</a> (const <a class="el" href="classxint_1_1integer.html">integer</a> &n)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae04e871bc550a858d66901f64d42b17f">random</a> (const T &lessThanThis)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a342a8b817f74234c393fd9ed32f13f5f">random</a> (const T &lowest, const T &highest)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab2d0fe2cf11b25d26c1b86280cb4dc99">set_random_generator</a> (T &gen)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template<typename charT , typename traits > </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream< charT, <br class="typebreak"/>
 traits > & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">operator<<</a> (std::basic_ostream< charT, traits > &out, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n)</td></tr>
@@ -155,15 +162,12 @@
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4ed78ff75865ae44a00d3709dd88c3a1">testDivideMod</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae4ef5f20964fa995df7828f27bd7adbe">testConvert</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae3305f62ca9be58fbc11dbd4c703f38b">testStreams</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aa1dbeb0c1ad12e8a8de7efb6c47e455f">testRandom</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac40068d64f8c4d9002a0687935888c42">testMontyMultiply</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a9cce0401174b9ae173671b0800c5f457">testMontyPowerMod</a> ()</td></tr>
 <tr><td colspan="2"><h2>Variables</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">no_callback</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">const size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a> = (std::numeric_limits<size_t>::max)()</td></tr>
 </table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>namespace for all extended integer classes and functions. </p>
 <hr/><h2>Typedef Documentation</h2>
 <a class="anchor" id="ac8a660c33746c536469d347307b8da7a"></a><!-- doxytag: member="xint::callback_t" ref="ac8a660c33746c536469d347307b8da7a" args="" -->
 <div class="memitem">
@@ -176,7 +180,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00083">83</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00076">76</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
 </div>
 </div>
@@ -191,7 +195,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00081">81</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00074">74</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
 </div>
 </div>
@@ -212,7 +216,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00381">operator<<()</a>.</p>
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00397">operator<<()</a>.</p>
 
 </div>
 </div>
@@ -241,7 +245,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00018">operator+()</a>, and <a class="el" href="integer_8cpp_source.html#l00132">xint::integer::operator+=()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00136">xint::integer::operator+=()</a>.</p>
 
 </div>
 </div>
@@ -260,7 +264,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00408">operator>>()</a>.</p>
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00424">operator>>()</a>.</p>
 
 </div>
 </div>
@@ -289,7 +293,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00023">operator&()</a>, and <a class="el" href="integer_8cpp_source.html#l00180">xint::integer::operator&=()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00184">xint::integer::operator&=()</a>.</p>
 
 </div>
 </div>
@@ -318,7 +322,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00024">operator|()</a>, and <a class="el" href="integer_8cpp_source.html#l00181">xint::integer::operator|=()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00185">xint::integer::operator|=()</a>.</p>
 
 </div>
 </div>
@@ -347,7 +351,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00025">operator^()</a>, and <a class="el" href="integer_8cpp_source.html#l00182">xint::integer::operator^=()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00186">xint::integer::operator^=()</a>.</p>
 
 </div>
 </div>
@@ -368,6 +372,25 @@
 
 </div>
 </div>
+<a class="anchor" id="a4c109bd4fe51e6cd67361200d952d9a4"></a><!-- doxytag: member="xint::BOOST_PREVENT_MACRO_SUBSTITUTION" ref="a4c109bd4fe51e6cd67361200d952d9a4" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">strong_random_generator::result_type</a> strong_random_generator::max xint::BOOST_PREVENT_MACRO_SUBSTITUTION </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="random_8cpp_source.html#l00176">176</a> of file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
+
+</div>
+</div>
 <a class="anchor" id="a8982e3e3ab7c1c763416eadc479d9724"></a><!-- doxytag: member="xint::clearbit" ref="a8982e3e3ab7c1c763416eadc479d9724" args="(integer &n, size_t bit)" -->
 <div class="memitem">
 <div class="memproto">
@@ -426,8 +449,6 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="compare_8cpp_source.html#l00056">operator!=()</a>, <a class="el" href="compare_8cpp_source.html#l00057">operator<()</a>, <a class="el" href="compare_8cpp_source.html#l00059">operator<=()</a>, <a class="el" href="compare_8cpp_source.html#l00055">operator==()</a>, <a class="el" href="compare_8cpp_source.html#l00058">operator>()</a>, and <a class="el" href="compare_8cpp_source.html#l00060">operator>=()</a>.</p>
-
 </div>
 </div>
 <a class="anchor" id="abf3d47f1ef1fdf334097fab055886a44"></a><!-- doxytag: member="xint::divide" ref="abf3d47f1ef1fdf334097fab055886a44" args="(const integer &dividend, const integer &divisor)" -->
@@ -455,7 +476,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00021">operator/()</a>, and <a class="el" href="integer_8cpp_source.html#l00170">xint::integer::operator/=()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00174">xint::integer::operator/=()</a>.</p>
 
 </div>
 </div>
@@ -564,7 +585,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00031">xint::integer::integer()</a>, and <a class="el" href="xint_8hpp_source.html#l00408">operator>>()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00035">xint::integer::integer()</a>, and <a class="el" href="xint_8hpp_source.html#l00424">operator>>()</a>.</p>
 
 </div>
 </div>
@@ -791,7 +812,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00126">xint::integer::hex_digits()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00130">xint::integer::hex_digits()</a>.</p>
 
 </div>
 </div>
@@ -847,7 +868,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00022">operator%()</a>, and <a class="el" href="integer_8cpp_source.html#l00171">xint::integer::operator%=()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00175">xint::integer::operator%=()</a>.</p>
 
 </div>
 </div>
@@ -999,7 +1020,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00020">operator*()</a>, and <a class="el" href="integer_8cpp_source.html#l00169">xint::integer::operator*=()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00173">xint::integer::operator*=()</a>.</p>
 
 </div>
 </div>
@@ -1019,86 +1040,156 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00101">xint::integer::_set_negative()</a>, and <a class="el" href="operators_8cpp_source.html#l00017">operator-()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00105">xint::integer::_set_negative()</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aa5b0dc228caee6523766326cf40297cd"></a><!-- doxytag: member="xint::operator<<" ref="aa5b0dc228caee6523766326cf40297cd" args="(std::basic_ostream< charT, traits > &out, const xint::integer &n)" -->
+<a class="anchor" id="a675c4fe6ddda6db915450d054ed640ba"></a><!-- doxytag: member="xint::operator!" ref="a675c4fe6ddda6db915450d054ed640ba" args="(const xint::integer &num1)" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template<typename charT , typename traits > </div>
       <table class="memname">
         <tr>
-          <td class="memname">std::basic_ostream<charT,traits>& xint::operator<< </td>
+          <td class="memname">bool xint::operator! </td>
           <td>(</td>
-          <td class="paramtype">std::basic_ostream< charT, traits > & </td>
-          <td class="paramname"> <em>out</em>, </td>
+          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
+          <td class="paramname"> <em>num1</em></td>
+          <td> ) </td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aefda934d0ffacd0f44fcbbdfee19a139"></a><!-- doxytag: member="xint::operator!=" ref="aefda934d0ffacd0f44fcbbdfee19a139" args="(const xint::integer &num1, const xint::integer &num2)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool xint::operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
+          <td class="paramname"> <em>num1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n</em></td><td> </td>
+          <td class="paramname"> <em>num2</em></td><td> </td>
         </tr>
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td><code> [inline]</code></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00381">381</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs()</a>, <a class="el" href="integer_8cpp_source.html#l00122">xint::integer::nan()</a>, <a class="el" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">xint::detail::nan_text</a>, <a class="el" href="integer_8cpp_source.html#l00115">xint::integer::sign()</a>, and <a class="el" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">to_string()</a>.</p>
-
 </div>
 </div>
-<a class="anchor" id="a27a0715c66d7350b0f3800f6e161816f"></a><!-- doxytag: member="xint::operator>>" ref="a27a0715c66d7350b0f3800f6e161816f" args="(std::basic_istream< charT, traits > &in, xint::integer &n)" -->
+<a class="anchor" id="ae0505757986a9c7133552552471aae24"></a><!-- doxytag: member="xint::operator%" ref="ae0505757986a9c7133552552471aae24" args="(const integer &num1, const integer &num2)" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template<typename charT , typename traits > </div>
       <table class="memname">
         <tr>
-          <td class="memname">std::basic_istream<charT,traits>& xint::operator>> </td>
+          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::operator% </td>
           <td>(</td>
-          <td class="paramtype">std::basic_istream< charT, traits > & </td>
-          <td class="paramname"> <em>in</em>, </td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>num1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n</em></td><td> </td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>num2</em></td><td> </td>
         </tr>
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td><code> [inline]</code></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00408">408</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+</div>
+</div>
+<a class="anchor" id="a742550f1c62ac8c2bde8e1ceab2a466c"></a><!-- doxytag: member="xint::operator&" ref="a742550f1c62ac8c2bde8e1ceab2a466c" args="(const integer &n1, const integer &n2)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::operator& </td>
+          <td>(</td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>n1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>n2</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
 
-<p>References <a class="el" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">allow_exceptions()</a>, <a class="el" href="xint_8hpp_source.html#l00086">autobase</a>, <a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">from_string()</a>, and <a class="el" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">xint::detail::nan_text</a>.</p>
+</div>
+</div>
+<a class="anchor" id="aea36ad9037f109576d4f95ec72b5c825"></a><!-- doxytag: member="xint::operator*" ref="aea36ad9037f109576d4f95ec72b5c825" args="(const integer &num1, const integer &num2)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::operator* </td>
+          <td>(</td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>num1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>num2</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
 
 </div>
 </div>
-<a class="anchor" id="a820d89c1d761a0a2c06479b1c1f9cecd"></a><!-- doxytag: member="xint::opt_secure_mode" ref="a820d89c1d761a0a2c06479b1c1f9cecd" args="()" -->
+<a class="anchor" id="a211ff80bb081c08674272cfcae736a93"></a><!-- doxytag: member="xint::operator+" ref="a211ff80bb081c08674272cfcae736a93" args="(const integer &num1, const integer &num2)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool xint::opt_secure_mode </td>
+          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::operator+ </td>
           <td>(</td>
-          <td class="paramname"></td>
-          <td> ) </td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>num1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
           <td></td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>num2</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1106,14 +1197,15 @@
 
 </div>
 </div>
-<a class="anchor" id="ad55aa4d44083238d9ec313511f5b1dfa"></a><!-- doxytag: member="xint::opt_thread_safe" ref="ad55aa4d44083238d9ec313511f5b1dfa" args="()" -->
+<a class="anchor" id="a586fb0eb69100ec74be94008ac26670d"></a><!-- doxytag: member="xint::operator+" ref="a586fb0eb69100ec74be94008ac26670d" args="(const integer &a)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool xint::opt_thread_safe </td>
+          <td class="memname">const <a class="el" href="classxint_1_1integer.html">integer</a> & xint::operator+ </td>
           <td>(</td>
-          <td class="paramname"></td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>a</em></td>
           <td> ) </td>
           <td></td>
         </tr>
@@ -1123,21 +1215,21 @@
 
 </div>
 </div>
-<a class="anchor" id="aeee80b61e0cadc12f92752104e281b2c"></a><!-- doxytag: member="xint::pow" ref="aeee80b61e0cadc12f92752104e281b2c" args="(const integer &n, const integer &exponent)" -->
+<a class="anchor" id="a1e09422b575c6d29ea5c0d627b79c28e"></a><!-- doxytag: member="xint::operator-" ref="a1e09422b575c6d29ea5c0d627b79c28e" args="(const integer &num1, const integer &num2)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::pow </td>
+          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::operator- </td>
           <td>(</td>
           <td class="paramtype">const integer & </td>
-          <td class="paramname"> <em>n</em>, </td>
+          <td class="paramname"> <em>num1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">const integer & </td>
-          <td class="paramname"> <em>exponent</em></td><td> </td>
+          <td class="paramname"> <em>num2</em></td><td> </td>
         </tr>
         <tr>
           <td></td>
@@ -1150,15 +1242,15 @@
 
 </div>
 </div>
-<a class="anchor" id="aea1ae2a423d401fa02d3f0621078fbf0"></a><!-- doxytag: member="xint::pow2" ref="aea1ae2a423d401fa02d3f0621078fbf0" args="(size_t exponent)" -->
+<a class="anchor" id="a8a510361ed458133ebfa5fd95f8d9c27"></a><!-- doxytag: member="xint::operator-" ref="a8a510361ed458133ebfa5fd95f8d9c27" args="(const integer &a)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::pow2 </td>
+          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::operator- </td>
           <td>(</td>
-          <td class="paramtype">size_t </td>
-          <td class="paramname"> <em>exponent</em></td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>a</em></td>
           <td> ) </td>
           <td></td>
         </tr>
@@ -1168,33 +1260,48 @@
 
 </div>
 </div>
-<a class="anchor" id="a1f8b43b537ff9de1d5612ed228a8fbe1"></a><!-- doxytag: member="xint::powmod" ref="a1f8b43b537ff9de1d5612ed228a8fbe1" args="(const integer &n, const integer &exponent, const integer &modulus, bool noMontgomery)" -->
+<a class="anchor" id="a701217f7824c3e935fca25147da23807"></a><!-- doxytag: member="xint::operator/" ref="a701217f7824c3e935fca25147da23807" args="(const integer &num1, const integer &num2)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::powmod </td>
+          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::operator/ </td>
           <td>(</td>
           <td class="paramtype">const integer & </td>
-          <td class="paramname"> <em>n</em>, </td>
+          <td class="paramname"> <em>num1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">const integer & </td>
-          <td class="paramname"> <em>exponent</em>, </td>
+          <td class="paramname"> <em>num2</em></td><td> </td>
         </tr>
         <tr>
-          <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const integer & </td>
-          <td class="paramname"> <em>modulus</em>, </td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4f4a4771bf443e6724abbd18173ecc86"></a><!-- doxytag: member="xint::operator<" ref="a4f4a4771bf443e6724abbd18173ecc86" args="(const xint::integer &num1, const xint::integer &num2)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool xint::operator< </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
+          <td class="paramname"> <em>num1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">bool </td>
-          <td class="paramname"> <em>noMontgomery</em></td><td> </td>
+          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
+          <td class="paramname"> <em>num2</em></td><td> </td>
         </tr>
         <tr>
           <td></td>
@@ -1207,23 +1314,23 @@
 
 </div>
 </div>
-<a class="anchor" id="a342a8b817f74234c393fd9ed32f13f5f"></a><!-- doxytag: member="xint::random" ref="a342a8b817f74234c393fd9ed32f13f5f" args="(const T &lowest, const T &highest)" -->
+<a class="anchor" id="aa5b0dc228caee6523766326cf40297cd"></a><!-- doxytag: member="xint::operator<<" ref="aa5b0dc228caee6523766326cf40297cd" args="(std::basic_ostream< charT, traits > &out, const xint::integer &n)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template<typename T > </div>
+template<typename charT , typename traits > </div>
       <table class="memname">
         <tr>
-          <td class="memname">T xint::random </td>
+          <td class="memname">std::basic_ostream<charT,traits>& xint::operator<< </td>
           <td>(</td>
-          <td class="paramtype">const T & </td>
-          <td class="paramname"> <em>lowest</em>, </td>
+          <td class="paramtype">std::basic_ostream< charT, traits > & </td>
+          <td class="paramname"> <em>out</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const T & </td>
-          <td class="paramname"> <em>highest</em></td><td> </td>
+          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
+          <td class="paramname"> <em>n</em></td><td> </td>
         </tr>
         <tr>
           <td></td>
@@ -1234,81 +1341,173 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00370">370</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00397">397</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
-<p>References <a class="el" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size()</a>.</p>
+<p>References <a class="el" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs()</a>, <a class="el" href="integer_8cpp_source.html#l00126">xint::integer::nan()</a>, <a class="el" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">xint::detail::nan_text</a>, <a class="el" href="integer_8cpp_source.html#l00119">xint::integer::sign()</a>, and <a class="el" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">to_string()</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ae04e871bc550a858d66901f64d42b17f"></a><!-- doxytag: member="xint::random" ref="ae04e871bc550a858d66901f64d42b17f" args="(const T &lessThanThis)" -->
+<a class="anchor" id="ab9d5f34c4d4bed1c86380d4f72edcd9b"></a><!-- doxytag: member="xint::operator<=" ref="ab9d5f34c4d4bed1c86380d4f72edcd9b" args="(const xint::integer &num1, const xint::integer &num2)" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template<typename T > </div>
       <table class="memname">
         <tr>
-          <td class="memname">T xint::random </td>
+          <td class="memname">bool xint::operator<= </td>
           <td>(</td>
-          <td class="paramtype">const T & </td>
-          <td class="paramname"> <em>lessThanThis</em></td>
-          <td> ) </td>
-          <td><code> [inline]</code></td>
+          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
+          <td class="paramname"> <em>num1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
+          <td class="paramname"> <em>num2</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad32051708c2a2baafa0340e19e90217b"></a><!-- doxytag: member="xint::operator==" ref="ad32051708c2a2baafa0340e19e90217b" args="(const xint::integer &num1, const xint::integer &num2)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool xint::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
+          <td class="paramname"> <em>num1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
+          <td class="paramname"> <em>num2</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00365">365</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+</div>
+</div>
+<a class="anchor" id="a1229d1f1efbdf3ffeac8b2964ca66093"></a><!-- doxytag: member="xint::operator>" ref="a1229d1f1efbdf3ffeac8b2964ca66093" args="(const xint::integer &num1, const xint::integer &num2)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool xint::operator> </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
+          <td class="paramname"> <em>num1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
+          <td class="paramname"> <em>num2</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
 
-<p>References <a class="el" href="xint_8hpp_source.html#l00359">random()</a>.</p>
+</div>
+</div>
+<a class="anchor" id="a766324a6f216f3b49a3e9aa885e9531c"></a><!-- doxytag: member="xint::operator>=" ref="a766324a6f216f3b49a3e9aa885e9531c" args="(const xint::integer &num1, const xint::integer &num2)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool xint::operator>= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
+          <td class="paramname"> <em>num1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
+          <td class="paramname"> <em>num2</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
 
 </div>
 </div>
-<a class="anchor" id="a5e29caa361379cbda58d21cd569b0513"></a><!-- doxytag: member="xint::random" ref="a5e29caa361379cbda58d21cd569b0513" args="()" -->
+<a class="anchor" id="a27a0715c66d7350b0f3800f6e161816f"></a><!-- doxytag: member="xint::operator>>" ref="a27a0715c66d7350b0f3800f6e161816f" args="(std::basic_istream< charT, traits > &in, xint::integer &n)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template<typename T > </div>
+template<typename charT , typename traits > </div>
       <table class="memname">
         <tr>
-          <td class="memname">T xint::random </td>
+          <td class="memname">std::basic_istream<charT,traits>& xint::operator>> </td>
           <td>(</td>
-          <td class="paramname"></td>
-          <td> ) </td>
-          <td><code> [inline]</code></td>
+          <td class="paramtype">std::basic_istream< charT, traits > & </td>
+          <td class="paramname"> <em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
+          <td class="paramname"> <em>n</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00359">359</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00424">424</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
-<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00365">random()</a>.</p>
+<p>References <a class="el" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">allow_exceptions()</a>, <a class="el" href="xint_8hpp_source.html#l00079">autobase</a>, <a class="el" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">from_string()</a>, and <a class="el" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">xint::detail::nan_text</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a989d063e3298649704c804efca714ac6"></a><!-- doxytag: member="xint::random< integer >" ref="a989d063e3298649704c804efca714ac6" args="(const integer &lowest, const integer &highest)" -->
+<a class="anchor" id="a81722cd257bc950ba7c56a202492544f"></a><!-- doxytag: member="xint::operator^" ref="a81722cd257bc950ba7c56a202492544f" args="(const integer &n1, const integer &n2)" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template<> </div>
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::random< <a class="el" href="classxint_1_1integer.html">integer</a> > </td>
+          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::operator^ </td>
           <td>(</td>
           <td class="paramtype">const integer & </td>
-          <td class="paramname"> <em>lowest</em>, </td>
+          <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">const integer & </td>
-          <td class="paramname"> <em>highest</em></td><td> </td>
+          <td class="paramname"> <em>n2</em></td><td> </td>
         </tr>
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td><code> [inline]</code></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1316,33 +1515,82 @@
 
 </div>
 </div>
-<a class="anchor" id="a6e66ca63ee442c0296ce41280fdae739"></a><!-- doxytag: member="xint::random_by_size" ref="a6e66ca63ee442c0296ce41280fdae739" args="(size_t bits, bool highBitOn, bool lowBitOn, bool canBeNegative)" -->
+<a class="anchor" id="afa8f2a0ac996ad45efc73b2aa056cae2"></a><!-- doxytag: member="xint::operator|" ref="afa8f2a0ac996ad45efc73b2aa056cae2" args="(const integer &n1, const integer &n2)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::random_by_size </td>
+          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::operator| </td>
           <td>(</td>
-          <td class="paramtype">size_t </td>
-          <td class="paramname"> <em>bits</em>, </td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">bool </td>
-          <td class="paramname"> <em>highBitOn</em>, </td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>n2</em></td><td> </td>
         </tr>
         <tr>
-          <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">bool </td>
-          <td class="paramname"> <em>lowBitOn</em>, </td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a820d89c1d761a0a2c06479b1c1f9cecd"></a><!-- doxytag: member="xint::opt_secure_mode" ref="a820d89c1d761a0a2c06479b1c1f9cecd" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool xint::opt_secure_mode </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad55aa4d44083238d9ec313511f5b1dfa"></a><!-- doxytag: member="xint::opt_thread_safe" ref="ad55aa4d44083238d9ec313511f5b1dfa" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool xint::opt_thread_safe </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeee80b61e0cadc12f92752104e281b2c"></a><!-- doxytag: member="xint::pow" ref="aeee80b61e0cadc12f92752104e281b2c" args="(const integer &n, const integer &exponent)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::pow </td>
+          <td>(</td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">bool </td>
-          <td class="paramname"> <em>canBeNegative</em></td><td> </td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>exponent</em></td><td> </td>
         </tr>
         <tr>
           <td></td>
@@ -1353,25 +1601,53 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00370">random()</a>.</p>
-
 </div>
 </div>
-<a class="anchor" id="af148d73dc33718f9d893dac821ab699e"></a><!-- doxytag: member="xint::random_prime" ref="af148d73dc33718f9d893dac821ab699e" args="(size_t sizeInBits, callback_t callback)" -->
+<a class="anchor" id="aea1ae2a423d401fa02d3f0621078fbf0"></a><!-- doxytag: member="xint::pow2" ref="aea1ae2a423d401fa02d3f0621078fbf0" args="(size_t exponent)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::random_prime </td>
+          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::pow2 </td>
           <td>(</td>
           <td class="paramtype">size_t </td>
-          <td class="paramname"> <em>sizeInBits</em>, </td>
+          <td class="paramname"> <em>exponent</em></td>
+          <td> ) </td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1f8b43b537ff9de1d5612ed228a8fbe1"></a><!-- doxytag: member="xint::powmod" ref="a1f8b43b537ff9de1d5612ed228a8fbe1" args="(const integer &n, const integer &exponent, const integer &modulus, bool noMontgomery)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::powmod </td>
+          <td>(</td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">callback_t </td>
-          <td class="paramname"> <em>callback</em></td><td> </td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>exponent</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const integer & </td>
+          <td class="paramname"> <em>modulus</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool </td>
+          <td class="paramname"> <em>noMontgomery</em></td><td> </td>
         </tr>
         <tr>
           <td></td>
@@ -1384,16 +1660,38 @@
 
 </div>
 </div>
-<a class="anchor" id="a16e22040e770d828903bb5d11ed6e046"></a><!-- doxytag: member="xint::seed_fallback" ref="a16e22040e770d828903bb5d11ed6e046" args="()" -->
+<a class="anchor" id="a6e66ca63ee442c0296ce41280fdae739"></a><!-- doxytag: member="xint::random_by_size" ref="a6e66ca63ee442c0296ce41280fdae739" args="(size_t bits, bool highBitOn, bool lowBitOn, bool canBeNegative)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void xint::seed_fallback </td>
+          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::random_by_size </td>
           <td>(</td>
-          <td class="paramname"></td>
-          <td> ) </td>
+          <td class="paramtype">size_t </td>
+          <td class="paramname"> <em>bits</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool </td>
+          <td class="paramname"> <em>highBitOn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
           <td></td>
+          <td class="paramtype">bool </td>
+          <td class="paramname"> <em>lowBitOn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool </td>
+          <td class="paramname"> <em>canBeNegative</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1401,17 +1699,26 @@
 
 </div>
 </div>
-<a class="anchor" id="afeca589b50c2c8cb4bea98200ae51dbe"></a><!-- doxytag: member="xint::seed_manual" ref="afeca589b50c2c8cb4bea98200ae51dbe" args="(const std::string &value)" -->
+<a class="anchor" id="af148d73dc33718f9d893dac821ab699e"></a><!-- doxytag: member="xint::random_prime" ref="af148d73dc33718f9d893dac821ab699e" args="(size_t sizeInBits, callback_t callback)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void xint::seed_manual </td>
+          <td class="memname"><a class="el" href="classxint_1_1integer.html">integer</a> xint::random_prime </td>
           <td>(</td>
-          <td class="paramtype">const std::string & </td>
-          <td class="paramname"> <em>value</em></td>
-          <td> ) </td>
+          <td class="paramtype">size_t </td>
+          <td class="paramname"> <em>sizeInBits</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
           <td></td>
+          <td class="paramtype">callback_t </td>
+          <td class="paramname"> <em>callback</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1419,21 +1726,28 @@
 
 </div>
 </div>
-<a class="anchor" id="ade2beef1aca9c4ebb119d16c2d068e70"></a><!-- doxytag: member="xint::seed_secure" ref="ade2beef1aca9c4ebb119d16c2d068e70" args="()" -->
+<a class="anchor" id="ab2d0fe2cf11b25d26c1b86280cb4dc99"></a><!-- doxytag: member="xint::set_random_generator" ref="ab2d0fe2cf11b25d26c1b86280cb4dc99" args="(T &gen)" -->
 <div class="memitem">
 <div class="memproto">
+<div class="memtemplate">
+template<typename T > </div>
       <table class="memname">
         <tr>
-          <td class="memname">bool xint::seed_secure </td>
+          <td class="memname">void xint::set_random_generator </td>
           <td>(</td>
-          <td class="paramname"></td>
+          <td class="paramtype">T & </td>
+          <td class="paramname"> <em>gen</em></td>
           <td> ) </td>
-          <td></td>
+          <td><code> [inline]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00391">391</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+<p>References <a class="el" href="namespacexint_1_1detail.html#ada65da12642b63f663b50382068a607f">xint::detail::set_random_generator()</a>.</p>
+
 </div>
 </div>
 <a class="anchor" id="adf2652627e78682c17e120816987984a"></a><!-- doxytag: member="xint::setbit" ref="adf2652627e78682c17e120816987984a" args="(integer &n, size_t bit)" -->
@@ -1515,7 +1829,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00178">xint::integer::operator<<()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00182">xint::integer::operator<<()</a>.</p>
 
 </div>
 </div>
@@ -1544,7 +1858,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00179">xint::integer::operator>>()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00183">xint::integer::operator>>()</a>.</p>
 
 </div>
 </div>
@@ -1636,7 +1950,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="operators_8cpp_source.html#l00019">operator-()</a>, and <a class="el" href="integer_8cpp_source.html#l00146">xint::integer::operator-=()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00150">xint::integer::operator-=()</a>.</p>
 
 </div>
 </div>
@@ -1776,23 +2090,6 @@
 
 </div>
 </div>
-<a class="anchor" id="aa1dbeb0c1ad12e8a8de7efb6c47e455f"></a><!-- doxytag: member="xint::testRandom" ref="aa1dbeb0c1ad12e8a8de7efb6c47e455f" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool xint::testRandom </td>
-          <td>(</td>
-          <td class="paramname"></td>
-          <td> ) </td>
-          <td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-</div>
-</div>
 <a class="anchor" id="ae3305f62ca9be58fbc11dbd4c703f38b"></a><!-- doxytag: member="xint::testStreams" ref="ae3305f62ca9be58fbc11dbd4c703f38b" args="()" -->
 <div class="memitem">
 <div class="memproto">
@@ -1828,9 +2125,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00343">343</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00375">375</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
-<p>References <a class="el" href="integer_8cpp_source.html#l00210">xint::integer::_get_digit()</a>, <a class="el" href="integer_8cpp_source.html#l00214">xint::integer::_get_length()</a>, <a class="el" href="integer_8cpp_source.html#l00218">xint::integer::_throw_if_nan()</a>, <a class="el" href="xint_8hpp_source.html#l00072">xint::detail::digit_overflowbit</a>, and <a class="el" href="integer_8cpp_source.html#l00115">xint::integer::sign()</a>.</p>
+<p>References <a class="el" href="integer_8cpp_source.html#l00214">xint::integer::_get_digit()</a>, <a class="el" href="integer_8cpp_source.html#l00218">xint::integer::_get_length()</a>, <a class="el" href="integer_8cpp_source.html#l00222">xint::integer::_throw_if_nan()</a>, <a class="el" href="xint_8hpp_source.html#l00045">xint::detail::digit_overflowbit</a>, and <a class="el" href="integer_8cpp_source.html#l00119">xint::integer::sign()</a>.</p>
 
 </div>
 </div>
@@ -1883,7 +2180,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00381">operator<<()</a>.</p>
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00397">operator<<()</a>.</p>
 
 </div>
 </div>
@@ -1926,9 +2223,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00086">86</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00079">79</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
-<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00408">operator>>()</a>.</p>
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00424">operator>>()</a>.</p>
 
 </div>
 </div>
@@ -1943,7 +2240,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00084">84</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00077">77</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
 </div>
 </div>
@@ -1966,7 +2263,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/namespacexint_1_1detail.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/namespacexint_1_1detail.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/namespacexint_1_1detail.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -58,12 +58,11 @@
   </div>
 </div>
 <div class="contents">
-<h1>xint::detail Namespace Reference</h1>
-<p>implementation details, normal users should not need to use these.  
-More...</p>
-<table border="0" cellpadding="0" cellspacing="0">
+<h1>xint::detail Namespace Reference</h1><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  </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1token.html">token</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1base__random__generator.html">base_random_generator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1random__generator.html">random_generator</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a></td></tr>
 <tr><td colspan="2"><h2>Typedefs</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef boost::uintmax_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a></td></tr>
@@ -71,6 +70,11 @@
 < std::numeric_limits<br class="typebreak"/>
 < <a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> >::digits/2 ><br class="typebreak"/>
 ::fast </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef boost::function<br class="typebreak"/>
+< unsigned int()> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a9c9dc00dbbe287492696635ed41dce44">random_t</a></td></tr>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#ada65da12642b63f663b50382068a607f">set_random_generator</a> (<a class="el" href="namespacexint_1_1detail.html#a9c9dc00dbbe287492696635ed41dce44">random_t</a> fn, <a class="el" href="structxint_1_1detail_1_1base__random__generator.html">base_random_generator</a> *obj)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a1dfc1e90886c4897a4b112f491b89b62">get_random</a> ()</td></tr>
 <tr><td colspan="2"><h2>Variables</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">const size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> = std::numeric_limits<<a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>>::digits</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">digit_hibit</a> = (<a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(1) << (<a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>-1))</td></tr>
@@ -79,8 +83,6 @@
 <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a> = <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(<a class="el" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>-1)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">const std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">nan_text</a></td></tr>
 </table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>implementation details, normal users should not need to use these. </p>
 <hr/><h2>Typedef Documentation</h2>
 <a class="anchor" id="a8843fb7e364832d8d5983de28bdbcf34"></a><!-- doxytag: member="xint::detail::digit_t" ref="a8843fb7e364832d8d5983de28bdbcf34" args="" -->
 <div class="memitem">
@@ -93,7 +95,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00067">67</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00040">40</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
 </div>
 </div>
@@ -108,7 +110,69 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00065">65</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00038">38</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9c9dc00dbbe287492696635ed41dce44"></a><!-- doxytag: member="xint::detail::random_t" ref="a9c9dc00dbbe287492696635ed41dce44" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef boost::function<unsigned int ()> <a class="el" href="namespacexint_1_1detail.html#a9c9dc00dbbe287492696635ed41dce44">xint::detail::random_t</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00068">68</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a1dfc1e90886c4897a4b112f491b89b62"></a><!-- doxytag: member="xint::detail::get_random" ref="a1dfc1e90886c4897a4b112f491b89b62" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int xint::detail::get_random </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td> ) </td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ada65da12642b63f663b50382068a607f"></a><!-- doxytag: member="xint::detail::set_random_generator" ref="ada65da12642b63f663b50382068a607f" args="(random_t fn, base_random_generator *obj)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void xint::detail::set_random_generator </td>
+          <td>(</td>
+          <td class="paramtype">random_t </td>
+          <td class="paramname"> <em>fn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">base_random_generator * </td>
+          <td class="paramname"> <em>obj</em></td><td> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00391">xint::set_random_generator()</a>.</p>
 
 </div>
 </div>
@@ -124,9 +188,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00069">69</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00042">42</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00061">xint::integer::_init()</a>, <a class="el" href="data__t_8cpp_source.html#l00251">xint::detail::data_t::shift_left()</a>, and <a class="el" href="data__t_8cpp_source.html#l00279">xint::detail::data_t::shift_right()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00065">xint::integer::_init()</a>, <a class="el" href="data__t_8cpp_source.html#l00252">xint::detail::data_t::shift_left()</a>, and <a class="el" href="data__t_8cpp_source.html#l00280">xint::detail::data_t::shift_right()</a>.</p>
 
 </div>
 </div>
@@ -141,7 +205,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00070">70</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00043">43</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
 </div>
 </div>
@@ -156,9 +220,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00073">73</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00046">46</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00061">xint::integer::_init()</a>, and <a class="el" href="xint_8hpp_source.html#l00319">xint::integer::integer()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00065">xint::integer::_init()</a>, and <a class="el" href="xint_8hpp_source.html#l00345">xint::integer::integer()</a>.</p>
 
 </div>
 </div>
@@ -173,9 +237,9 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00072">72</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00045">45</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
-<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00198">xint::detail::data_t::add()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">xint::detail::data_t::invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00225">xint::detail::data_t::subtract()</a>, and <a class="el" href="xint_8hpp_source.html#l00343">xint::to()</a>.</p>
+<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00198">xint::detail::data_t::add()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">xint::detail::data_t::invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00225">xint::detail::data_t::subtract()</a>, and <a class="el" href="xint_8hpp_source.html#l00375">xint::to()</a>.</p>
 
 </div>
 </div>
@@ -190,7 +254,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00071">71</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00044">44</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 
 </div>
 </div>
@@ -205,7 +269,7 @@
 </div>
 <div class="memdoc">
 
-<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00381">xint::operator<<()</a>, and <a class="el" href="xint_8hpp_source.html#l00408">xint::operator>>()</a>.</p>
+<p>Referenced by <a class="el" href="xint_8hpp_source.html#l00397">xint::operator<<()</a>, and <a class="el" href="xint_8hpp_source.html#l00424">xint::operator>>()</a>.</p>
 
 </div>
 </div>
@@ -228,7 +292,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/operators_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/operators_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/operators_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -60,309 +60,20 @@
 
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operator+</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &a)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operator-</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &a)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#afb1bc6b2cfa304d0a0cc05e91233c622">operator+</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#aed0b4dc3caadb337775cebf4434c9b4a">operator-</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#a9b5f3e5db8d7dac5c83687433265d679">operator*</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#ade5c31d601a221f90102f09d3985a1b1">operator/</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#ab5c9d4bfca6c406876f2317fe4ebdc17">operator%</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#a279ea8fa85f56774ecf87a9f70e44986">operator&</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#ae43c9ba6b179f6336284e00609951c7c">operator|</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="operators_8cpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">operator^</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const integer & </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">xint::operator+</a> (const integer &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">xint::operator-</a> (const integer &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a211ff80bb081c08674272cfcae736a93">xint::operator+</a> (const integer &num1, const integer &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a1e09422b575c6d29ea5c0d627b79c28e">xint::operator-</a> (const integer &num1, const integer &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aea36ad9037f109576d4f95ec72b5c825">xint::operator*</a> (const integer &num1, const integer &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a701217f7824c3e935fca25147da23807">xint::operator/</a> (const integer &num1, const integer &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae0505757986a9c7133552552471aae24">xint::operator%</a> (const integer &num1, const integer &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a742550f1c62ac8c2bde8e1ceab2a466c">xint::operator&</a> (const integer &n1, const integer &n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afa8f2a0ac996ad45efc73b2aa056cae2">xint::operator|</a> (const integer &n1, const integer &n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a81722cd257bc950ba7c56a202492544f">xint::operator^</a> (const integer &n1, const integer &n2)</td></tr>
 </table>
-<hr/><h2>Function Documentation</h2>
-<a class="anchor" id="ab5c9d4bfca6c406876f2317fe4ebdc17"></a><!-- doxytag: member="operators.cpp::operator%" ref="ab5c9d4bfca6c406876f2317fe4ebdc17" args="(const xint::integer &num1, const xint::integer &num2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator% </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00022">22</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">xint::mod()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a279ea8fa85f56774ecf87a9f70e44986"></a><!-- doxytag: member="operators.cpp::operator&" ref="a279ea8fa85f56774ecf87a9f70e44986" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator& </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00023">23</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">xint::bitwise_and()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9b5f3e5db8d7dac5c83687433265d679"></a><!-- doxytag: member="operators.cpp::operator*" ref="a9b5f3e5db8d7dac5c83687433265d679" args="(const xint::integer &num1, const xint::integer &num2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator* </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00020">20</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">xint::multiply()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afb1bc6b2cfa304d0a0cc05e91233c622"></a><!-- doxytag: member="operators.cpp::operator+" ref="afb1bc6b2cfa304d0a0cc05e91233c622" args="(const xint::integer &num1, const xint::integer &num2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator+ </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00018">18</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint::add()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae6250b27c1717d3dfd4269c899ea1a0f"></a><!-- doxytag: member="operators.cpp::operator+" ref="ae6250b27c1717d3dfd4269c899ea1a0f" args="(const xint::integer &a)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const <a class="el" href="classxint_1_1integer.html">xint::integer</a>& operator+ </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>a</em></td>
-          <td> ) </td>
-          <td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00016">16</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aed0b4dc3caadb337775cebf4434c9b4a"></a><!-- doxytag: member="operators.cpp::operator-" ref="aed0b4dc3caadb337775cebf4434c9b4a" args="(const xint::integer &num1, const xint::integer &num2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator- </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00019">19</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint::subtract()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a686d2e5cc5766a1d8bc21c77f01ffa19"></a><!-- doxytag: member="operators.cpp::operator-" ref="a686d2e5cc5766a1d8bc21c77f01ffa19" args="(const xint::integer &a)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator- </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>a</em></td>
-          <td> ) </td>
-          <td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00017">17</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">xint::negate()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ade5c31d601a221f90102f09d3985a1b1"></a><!-- doxytag: member="operators.cpp::operator/" ref="ade5c31d601a221f90102f09d3985a1b1" args="(const xint::integer &num1, const xint::integer &num2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator/ </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>num2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00021">21</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">xint::divide()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1e8b5454f6cf0c613a259a6ad038b6ac"></a><!-- doxytag: member="operators.cpp::operator^" ref="a1e8b5454f6cf0c613a259a6ad038b6ac" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator^ </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00025">25</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">xint::bitwise_xor()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae43c9ba6b179f6336284e00609951c7c"></a><!-- doxytag: member="operators.cpp::operator|" ref="ae43c9ba6b179f6336284e00609951c7c" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator| </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00024">24</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">xint::bitwise_or()</a>.</p>
-
-</div>
-</div>
 </div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -382,7 +93,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/operators_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/operators_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/operators_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -69,16 +69,20 @@
 <a name="l00013"></a>00013 
 <a name="l00014"></a>00014 <span class="preprocessor">#include "../xint.hpp"</span>
 <a name="l00015"></a>00015 
-<a name="l00016"></a><a class="code" href="xint_8hpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">00016</a> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& <a class="code" href="operators_8cpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operator+</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& a) { <span class="keywordflow">return</span> a; }
-<a name="l00017"></a><a class="code" href="xint_8hpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">00017</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operator-</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& a) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">xint::negate</a>(a); }
-<a name="l00018"></a><a class="code" href="xint_8hpp.html#aaaba5fbb60778e5deaf88549f5ec0278">00018</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operator+</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint::add</a>(num1, num2); }
-<a name="l00019"></a><a class="code" href="xint_8hpp.html#a2211cadf1f4c3abe22309fe025449687">00019</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operator-</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint::subtract</a>(num1, num2); }
-<a name="l00020"></a><a class="code" href="xint_8hpp.html#a17b0f742cf4240f0453ecdc690527f55">00020</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a9b5f3e5db8d7dac5c83687433265d679">operator*</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">xint::multiply</a>(num1, num2); }
-<a name="l00021"></a><a class="code" href="xint_8hpp.html#a92017cd694e753636affcb05919a7dc2">00021</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ade5c31d601a221f90102f09d3985a1b1">operator/</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">xint::divide</a>(num1, num2); }
-<a name="l00022"></a><a class="code" href="xint_8hpp.html#a33c06e966e5497a57df414783f4bd32d">00022</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ab5c9d4bfca6c406876f2317fe4ebdc17">operator%</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">xint::mod</a>(num1, num2); }
-<a name="l00023"></a><a class="code" href="xint_8hpp.html#a279ea8fa85f56774ecf87a9f70e44986">00023</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a279ea8fa85f56774ecf87a9f70e44986">operator&</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">xint::bitwise_and</a>(n1, n2); }
-<a name="l00024"></a><a class="code" href="xint_8hpp.html#ae43c9ba6b179f6336284e00609951c7c">00024</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ae43c9ba6b179f6336284e00609951c7c">operator|</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">xint::bitwise_or</a>(n1, n2); }
-<a name="l00025"></a><a class="code" href="xint_8hpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">00025</a> <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">operator^</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">xint::bitwise_xor</a>(n1, n2); }
+<a name="l00016"></a>00016 <span class="keyword">namespace </span>xint {
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 <span class="keyword">const</span> integer& <a class="code" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">operator+</a>(<span class="keyword">const</span> integer& a) { <span class="keywordflow">return</span> a; }
+<a name="l00019"></a>00019 integer <a class="code" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">operator-</a>(<span class="keyword">const</span> integer& a) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">negate</a>(a); }
+<a name="l00020"></a>00020 integer <a class="code" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">operator+</a>(<span class="keyword">const</span> integer& num1, <span class="keyword">const</span> integer& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">add</a>(num1, num2); }
+<a name="l00021"></a>00021 integer <a class="code" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">operator-</a>(<span class="keyword">const</span> integer& num1, <span class="keyword">const</span> integer& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(num1, num2); }
+<a name="l00022"></a>00022 integer <a class="code" href="namespacexint.html#aea36ad9037f109576d4f95ec72b5c825">operator*</a>(<span class="keyword">const</span> integer& num1, <span class="keyword">const</span> integer& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">multiply</a>(num1, num2); }
+<a name="l00023"></a>00023 integer <a class="code" href="namespacexint.html#a701217f7824c3e935fca25147da23807">operator/</a>(<span class="keyword">const</span> integer& num1, <span class="keyword">const</span> integer& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">divide</a>(num1, num2); }
+<a name="l00024"></a>00024 integer <a class="code" href="namespacexint.html#ae0505757986a9c7133552552471aae24">operator%</a>(<span class="keyword">const</span> integer& num1, <span class="keyword">const</span> integer& num2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">mod</a>(num1, num2); }
+<a name="l00025"></a>00025 integer <a class="code" href="namespacexint.html#a742550f1c62ac8c2bde8e1ceab2a466c">operator&</a>(<span class="keyword">const</span> integer& n1, <span class="keyword">const</span> integer& n2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">bitwise_and</a>(n1, n2); }
+<a name="l00026"></a>00026 integer <a class="code" href="namespacexint.html#afa8f2a0ac996ad45efc73b2aa056cae2">operator|</a>(<span class="keyword">const</span> integer& n1, <span class="keyword">const</span> integer& n2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">bitwise_or</a>(n1, n2); }
+<a name="l00027"></a>00027 integer <a class="code" href="namespacexint.html#a81722cd257bc950ba7c56a202492544f">operator^</a>(<span class="keyword">const</span> integer& n1, <span class="keyword">const</span> integer& n2) { <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">bitwise_xor</a>(n1, n2); }
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 } <span class="comment">// namespace xint</span>
 </pre></div></div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -98,7 +102,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/powers_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/powers_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/powers_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -64,10 +64,6 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aea1ae2a423d401fa02d3f0621078fbf0">xint::pow2</a> (size_t exponent)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">xint::sqr</a> (const integer &n)</td></tr>
@@ -93,7 +89,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/powers_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/powers_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/powers_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -102,7 +102,7 @@
 <a name="l00046"></a>00046     std::vector<doubledigit_t> a(ndata->mLength*2+1, 0);
 <a name="l00047"></a>00047     <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> *adigit=&a[0];
 <a name="l00048"></a>00048 
-<a name="l00049"></a>00049     <span class="keywordtype">int</span> i, j;
+<a name="l00049"></a>00049     <span class="keywordtype">size_t</span> i, j;
 <a name="l00050"></a>00050     integer addend;
 <a name="l00051"></a>00051     data_t *addenddata=addend._get_data();
 <a name="l00052"></a>00052     addenddata->alloc(ndata->mLength*2+1);
@@ -142,15 +142,15 @@
 <a name="l00086"></a>00086 integer <a class="code" href="namespacexint.html#aeee80b61e0cadc12f92752104e281b2c">pow</a>(<span class="keyword">const</span> integer& n, <span class="keyword">const</span> integer& exponent) {
 <a name="l00087"></a>00087     <span class="keywordtype">bool</span> neg=(n.sign() < 0 && exponent.odd());
 <a name="l00088"></a>00088 
-<a name="l00089"></a>00089     <span class="keywordtype">int</span> length=exponent.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>(), lastBitCount=0;
+<a name="l00089"></a>00089     <span class="keywordtype">size_t</span> length=exponent.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>(), lastBitCount=0;
 <a name="l00090"></a>00090     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> ee(exponent._get_digit(length-1));
 <a name="l00091"></a>00091     <span class="keywordflow">while</span> (ee != 0) { ee >>= 1; ++lastBitCount; }
 <a name="l00092"></a>00092 
-<a name="l00093"></a>00093     integer p(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(n)), answer=<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>();
-<a name="l00094"></a>00094     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> eIndex=0; eIndex < length; ++eIndex) {
+<a name="l00093"></a>00093     integer p(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(n)), answer=<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>();
+<a name="l00094"></a>00094     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> eIndex=0; eIndex < length; ++eIndex) {
 <a name="l00095"></a>00095         <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> e(exponent._get_digit(eIndex));
 <a name="l00096"></a>00096 
-<a name="l00097"></a>00097         <span class="keywordtype">int</span> bitCount(eIndex == length-1 ? lastBitCount : <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
+<a name="l00097"></a>00097         <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="l00098"></a>00098         <span class="keywordflow">while</span> (bitCount-- > 0) {
 <a name="l00099"></a>00099             <span class="keywordflow">if</span> (e & 0x01) answer*=p;
 <a name="l00100"></a>00100             p=<a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">sqr</a>(p);
@@ -163,7 +163,7 @@
 <a name="l00107"></a>00107 }
 <a name="l00108"></a>00108 
 <a name="l00109"></a>00109 integer <a class="code" href="namespacexint.html#aba188df925c87a0f33a79328e31e1a50">factorial</a>(<span class="keywordtype">size_t</span> n) {
-<a name="l00110"></a>00110     integer r(<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>());
+<a name="l00110"></a>00110     integer r(<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>());
 <a name="l00111"></a>00111     <span class="keywordflow">if</span> (n == (std::numeric_limits<size_t>::max)()) {
 <a name="l00112"></a>00112         <span class="comment">// It's highly unlikely that the system will be able to calculate this,</span>
 <a name="l00113"></a>00113         <span class="comment">// or that anyone might want to, but someday it will be possible. This</span>
@@ -196,7 +196,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/primes_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/primes_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/primes_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -63,10 +63,6 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f">xint::is_prime</a> (const integer &n, callback_t callback)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af148d73dc33718f9d893dac821ab699e">xint::random_prime</a> (size_t sizeInBits, callback_t callback)</td></tr>
@@ -90,7 +86,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/primes_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/primes_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/primes_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -105,7 +105,7 @@
 <a name="l00049"></a>00049 <span class="keywordtype">int</span> isProbablePrimeBaseB(<span class="keyword">const</span> integer& n, <span class="keyword">const</span> integer &b, <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a>
 <a name="l00050"></a>00050     callback)
 <a name="l00051"></a>00051 {
-<a name="l00052"></a>00052     <span class="keyword">const</span> integer nMinus1(n - <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>());
+<a name="l00052"></a>00052     <span class="keyword">const</span> integer nMinus1(n - <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>());
 <a name="l00053"></a>00053 
 <a name="l00054"></a>00054     <span class="comment">// Find r and a satisfying: n-1=2^a * r, r odd</span>
 <a name="l00055"></a>00055     integer r=nMinus1;
@@ -116,7 +116,7 @@
 <a name="l00060"></a>00060     <span class="comment">// from 0 to a - 1. If any one is correct, then n passes.</span>
 <a name="l00061"></a>00061     <span class="comment">// Otherwise, n fails.</span>
 <a name="l00062"></a>00062     integer test=<a class="code" href="namespacexint.html#a1f8b43b537ff9de1d5612ed228a8fbe1">powmod</a>(b, r, n);
-<a name="l00063"></a>00063     <span class="keywordflow">if</span> (test==<a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>() || test==nMinus1) <span class="keywordflow">return</span> 1; <span class="comment">// Better than 3/4 chance it's prime</span>
+<a name="l00063"></a>00063     <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's prime</span>
 <a name="l00064"></a>00064 
 <a name="l00065"></a>00065     <span class="keywordflow">while</span> (a-->0) {
 <a name="l00066"></a>00066         test=<a class="code" href="namespacexint.html#a594bd29593aad9a1c047af22e91e749c">sqrmod</a>(test, n);
@@ -143,7 +143,7 @@
 <a name="l00087"></a>00087     <span class="comment">// Run the number through the Miller-Rabin Probabilistic Test of Primality</span>
 <a name="l00088"></a>00088     <span class="comment">// a few times to see if it's actually (probably) prime.</span>
 <a name="l00089"></a>00089     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> count=0; count<5; ++count) {
-<a name="l00090"></a>00090         <span class="keywordtype">int</span> k=random<int>();
+<a name="l00090"></a>00090         <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="l00091"></a>00091         <span class="keywordtype">int</span> isP=isProbablePrimeBaseB(n, <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(k), callback);
 <a name="l00092"></a>00092         <span class="keywordflow">if</span> (isP <= 0) <span class="keywordflow">return</span> isP;
 <a name="l00093"></a>00093     }
@@ -186,7 +186,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/primitives_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/primitives_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/primitives_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -64,10 +64,6 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">xint::abs</a> (const integer &n)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">xint::negate</a> (const integer &_n)</td></tr>
@@ -96,7 +92,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/primitives_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/primitives_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/primitives_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -89,254 +89,241 @@
 <a name="l00033"></a>00033 }
 <a name="l00034"></a>00034 
 <a name="l00035"></a>00035 integer <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">add</a>(<span class="keyword">const</span> integer& n1, <span class="keyword">const</span> integer& n2) {
-<a name="l00036"></a>00036     <span class="keywordflow">if</span> (n1.sign()==0) <span class="keywordflow">return</span> n2;
-<a name="l00037"></a>00037     <span class="keywordflow">if</span> (n2.sign()==0) <span class="keywordflow">return</span> n1;
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039     <span class="keywordtype">bool</span> swapped=<span class="keyword">false</span>;
-<a name="l00040"></a>00040     <span class="keyword">const</span> data_t *n1data=n1.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>(), *n2data=n2._get_data();
-<a name="l00041"></a>00041     <span class="keywordflow">if</span> (n1data->mLength < n2data->mLength) { swapped=<span class="keyword">true</span>; std::swap(n1data, n2data); }
-<a name="l00042"></a>00042 
-<a name="l00043"></a>00043     integer r;
-<a name="l00044"></a>00044     data_t *rdata=r._get_data();
-<a name="l00045"></a>00045     rdata->copy(n1data, 1);
-<a name="l00046"></a>00046 
-<a name="l00047"></a>00047     <span class="keywordflow">if</span> (n1.sign() != n2.sign()) {
-<a name="l00048"></a>00048         <span class="keywordtype">int</span> level=n2data->mLength;
-<a name="l00049"></a>00049 
-<a name="l00050"></a>00050         integer _n2(swapped ? n1 : n2);
-<a name="l00051"></a>00051         _n2._make_unique();
-<a name="l00052"></a>00052         _n2._get_data()->invert();
-<a name="l00053"></a>00053 
-<a name="l00054"></a>00054         rdata->add(_n2._get_data());
-<a name="l00055"></a>00055 
-<a name="l00056"></a>00056         <span class="keywordflow">if</span> (rdata->mLength > level) {
-<a name="l00057"></a>00057             --rdata->digits[level];
-<a name="l00058"></a>00058             rdata->skipLeadingZeros();
-<a name="l00059"></a>00059         } <span class="keywordflow">else</span> rdata->invert();
-<a name="l00060"></a>00060     } <span class="keywordflow">else</span> {
-<a name="l00061"></a>00061         rdata->add(*n2data);
-<a name="l00062"></a>00062     }
-<a name="l00063"></a>00063     <span class="keywordflow">return</span> r;
-<a name="l00064"></a>00064 }
-<a name="l00065"></a>00065 
-<a name="l00066"></a>00066 integer <a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(<span class="keyword">const</span> integer& n1, <span class="keyword">const</span> integer& n2) {
-<a name="l00067"></a>00067     <span class="keywordflow">if</span> ((n1.sign() < 0) != (n2.sign() < 0)) {
-<a name="l00068"></a>00068         <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">add</a>(n1, -n2);
-<a name="l00069"></a>00069     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n1.sign() < 0) {
-<a name="l00070"></a>00070         <span class="keywordflow">return</span> -<a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(-n1, -n2);
-<a name="l00071"></a>00071     }
-<a name="l00072"></a>00072 
-<a name="l00073"></a>00073     <span class="comment">// Signs are both guaranteed positive now.</span>
-<a name="l00074"></a>00074 
-<a name="l00075"></a>00075     <span class="keywordflow">if</span> (n1 < n2) {
-<a name="l00076"></a>00076         <span class="keywordflow">return</span> -<a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(n2, n1);
-<a name="l00077"></a>00077     } <span class="keywordflow">else</span> {
-<a name="l00078"></a>00078         integer r;
-<a name="l00079"></a>00079         data_t *rdata=r._get_data();
-<a name="l00080"></a>00080         rdata->copy(n1._get_data());
-<a name="l00081"></a>00081         rdata->subtract(*n2._get_data());
-<a name="l00082"></a>00082         <span class="keywordflow">return</span> r;
-<a name="l00083"></a>00083     }
-<a name="l00084"></a>00084 }
-<a name="l00085"></a>00085 
-<a name="l00086"></a>00086 integer <a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">multiply</a>(<span class="keyword">const</span> integer& n, <span class="keyword">const</span> integer& by) {
-<a name="l00087"></a>00087     <span class="keywordflow">if</span> (n.sign()==0 || by.sign()==0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>();
-<a name="l00088"></a>00088 
-<a name="l00089"></a>00089     <span class="keyword">const</span> data_t *ndata=n.<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>(), *bydata=by._get_data();
-<a name="l00090"></a>00090     <span class="keywordflow">if</span> (ndata == bydata) <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">sqr</a>(n);
-<a name="l00091"></a>00091 
-<a name="l00092"></a>00092     <span class="comment">// In multiplication, we know that the answer will be less than or equal to</span>
-<a name="l00093"></a>00093     <span class="comment">// the sum of the lengths of the operands.</span>
-<a name="l00094"></a>00094     integer answer;
-<a name="l00095"></a>00095     data_t *answerdata=answer._get_data();
-<a name="l00096"></a>00096     answerdata->alloc(ndata->mLength + bydata->mLength);
-<a name="l00097"></a>00097 
-<a name="l00098"></a>00098     <span class="comment">// Now multiply the digits, starting at the least-significant digit.</span>
-<a name="l00099"></a>00099     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d1 = ndata->digits, *d1e = d1 + ndata->mLength;
-<a name="l00100"></a>00100     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d2e = bydata->digits + bydata->mLength;
-<a name="l00101"></a>00101     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> digit1=0; d1<d1e; ++digit1, ++d1) {
-<a name="l00102"></a>00102         <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d2=bydata->digits;
-<a name="l00103"></a>00103         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> digit2=0; d2<d2e; ++digit2, ++d2) {
-<a name="l00104"></a>00104             <span class="comment">// First multiply the two digits</span>
-<a name="l00105"></a>00105             <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> t=<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(*d1) * *d2;
-<a name="l00106"></a>00106 
-<a name="l00107"></a>00107             <span class="comment">// Now add the result to the answer.</span>
-<a name="l00108"></a>00108             <span class="keywordtype">int</span> carry=0;
-<a name="l00109"></a>00109             <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *a = answerdata->digits + digit1 + digit2;
-<a name="l00110"></a>00110             <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> addt=<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(*a) + (t & <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>);
-<a name="l00111"></a>00111             <span class="keywordflow">if</span> (addt >= <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) carry=1;
-<a name="l00112"></a>00112             *a++=<span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(addt);
-<a name="l00113"></a>00113 
-<a name="l00114"></a>00114             addt=*a + ((t >> <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>) & <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>) + carry;
-<a name="l00115"></a>00115             <span class="keywordflow">if</span> (addt >= <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) carry=1; <span class="keywordflow">else</span> carry=0;
-<a name="l00116"></a>00116             *a++=<span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(addt);
+<a name="l00036"></a>00036     <span class="keywordtype">int</span> sign1=n1.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>(), sign2=n2.sign();
+<a name="l00037"></a>00037     <span class="keywordflow">if</span> (sign1 != sign2) {
+<a name="l00038"></a>00038         <span class="keywordflow">if</span> (sign1==0) <span class="keywordflow">return</span> n2;
+<a name="l00039"></a>00039         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2==0) <span class="keywordflow">return</span> n1;
+<a name="l00040"></a>00040         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(n1, -n2);
+<a name="l00041"></a>00041     } <span class="keywordflow">else</span> {
+<a name="l00042"></a>00042         <span class="keyword">const</span> data_t *n1data=n1._get_data(), *n2data=n2._get_data();
+<a name="l00043"></a>00043         <span class="keywordflow">if</span> (n1data->mLength < n2data->mLength) std::swap(n1data, n2data);
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045         integer r;
+<a name="l00046"></a>00046         data_t *rdata=r._get_data();
+<a name="l00047"></a>00047         rdata->copy(n1data, 1);
+<a name="l00048"></a>00048         rdata->add(*n2data);
+<a name="l00049"></a>00049         <span class="keywordflow">return</span> r;
+<a name="l00050"></a>00050     }
+<a name="l00051"></a>00051 }
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053 integer <a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(<span class="keyword">const</span> integer& n1, <span class="keyword">const</span> integer& n2) {
+<a name="l00054"></a>00054     <span class="keywordtype">int</span> sign1=n1.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>(), sign2=n2.sign();
+<a name="l00055"></a>00055     <span class="keywordflow">if</span> (sign1 != sign2) {
+<a name="l00056"></a>00056         <span class="keywordflow">if</span> (sign1 == 0) <span class="keywordflow">return</span> -n2;
+<a name="l00057"></a>00057         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2 == 0) <span class="keywordflow">return</span> n1;
+<a name="l00058"></a>00058         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">add</a>(n1, -n2);
+<a name="l00059"></a>00059     } <span class="keywordflow">else</span> {
+<a name="l00060"></a>00060         <span class="keywordtype">bool</span> invert=(sign1 == (n1 < n2 ? 1 : -1));
+<a name="l00061"></a>00061         <span class="keyword">const</span> data_t *n1data=n1._get_data(), *n2data=n2._get_data();
+<a name="l00062"></a>00062         <span class="keywordflow">if</span> (invert) std::swap(n1data, n2data);
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064         integer r;
+<a name="l00065"></a>00065         data_t *rdata=r._get_data();
+<a name="l00066"></a>00066         rdata->copy(n1data);
+<a name="l00067"></a>00067         rdata->subtract(*n2data);
+<a name="l00068"></a>00068         <span class="keywordflow">return</span> (invert ? -r : r);
+<a name="l00069"></a>00069     }
+<a name="l00070"></a>00070 }
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072 integer <a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">multiply</a>(<span class="keyword">const</span> integer& n, <span class="keyword">const</span> integer& by) {
+<a name="l00073"></a>00073     <span class="keywordtype">int</span> nsign=n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>(), bysign=by.sign();
+<a name="l00074"></a>00074     <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="l00075"></a>00075 
+<a name="l00076"></a>00076     <span class="keyword">const</span> data_t *ndata=n._get_data(), *bydata=by._get_data();
+<a name="l00077"></a>00077     <span class="keywordflow">if</span> (ndata == bydata) <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">sqr</a>(n);
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079     <span class="comment">// In multiplication, we know that the answer will be less than or equal to</span>
+<a name="l00080"></a>00080     <span class="comment">// the sum of the lengths of the operands.</span>
+<a name="l00081"></a>00081     integer answer;
+<a name="l00082"></a>00082     data_t *answerdata=answer._get_data();
+<a name="l00083"></a>00083     answerdata->alloc(ndata->mLength + bydata->mLength);
+<a name="l00084"></a>00084 
+<a name="l00085"></a>00085     <span class="comment">// Now multiply the digits, starting at the least-significant digit.</span>
+<a name="l00086"></a>00086     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d1 = ndata->digits, *d1e = d1 + ndata->mLength;
+<a name="l00087"></a>00087     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d2e = bydata->digits + bydata->mLength;
+<a name="l00088"></a>00088     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> digit1=0; d1<d1e; ++digit1, ++d1) {
+<a name="l00089"></a>00089         <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d2=bydata->digits;
+<a name="l00090"></a>00090         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> digit2=0; d2<d2e; ++digit2, ++d2) {
+<a name="l00091"></a>00091             <span class="comment">// First multiply the two digits</span>
+<a name="l00092"></a>00092             <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="l00093"></a>00093 
+<a name="l00094"></a>00094             <span class="comment">// Now add the result to the answer.</span>
+<a name="l00095"></a>00095             <span class="keywordtype">int</span> carry=0;
+<a name="l00096"></a>00096             <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *a = answerdata->digits + digit1 + digit2;
+<a name="l00097"></a>00097             <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 & <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>);
+<a name="l00098"></a>00098             <span class="keywordflow">if</span> (addt >= <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) carry=1;
+<a name="l00099"></a>00099             *a++=<span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(addt);
+<a name="l00100"></a>00100 
+<a name="l00101"></a>00101             addt=*a + ((t >> <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>) & <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>) + carry;
+<a name="l00102"></a>00102             <span class="keywordflow">if</span> (addt >= <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) carry=1; <span class="keywordflow">else</span> carry=0;
+<a name="l00103"></a>00103             *a++=<span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(addt);
+<a name="l00104"></a>00104 
+<a name="l00105"></a>00105             <span class="keywordflow">while</span> (carry) {
+<a name="l00106"></a>00106                 addt=*a+1;
+<a name="l00107"></a>00107                 *a++ = <span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(addt);
+<a name="l00108"></a>00108                 <span class="keywordflow">if</span> (addt < <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) <span class="keywordflow">break</span>;
+<a name="l00109"></a>00109             }
+<a name="l00110"></a>00110         }
+<a name="l00111"></a>00111     }
+<a name="l00112"></a>00112 
+<a name="l00113"></a>00113     answer._set_negative(nsign != bysign);
+<a name="l00114"></a>00114     answer._get_data()->skipLeadingZeros();
+<a name="l00115"></a>00115     <span class="keywordflow">return</span> answer;
+<a name="l00116"></a>00116 }
 <a name="l00117"></a>00117 
-<a name="l00118"></a>00118             <span class="keywordflow">while</span> (carry) {
-<a name="l00119"></a>00119                 addt=*a+1;
-<a name="l00120"></a>00120                 *a++ = <span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(addt);
-<a name="l00121"></a>00121                 <span class="keywordflow">if</span> (addt < <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>) <span class="keywordflow">break</span>;
-<a name="l00122"></a>00122             }
-<a name="l00123"></a>00123         }
-<a name="l00124"></a>00124     }
-<a name="l00125"></a>00125 
-<a name="l00126"></a>00126     answer._set_negative(n.sign() != by.sign());
-<a name="l00127"></a>00127     answer._get_data()->skipLeadingZeros();
-<a name="l00128"></a>00128     <span class="keywordflow">return</span> answer;
-<a name="l00129"></a>00129 }
-<a name="l00130"></a>00130 
-<a name="l00131"></a>00131 <span class="keyword">namespace </span>{
-<a name="l00132"></a>00132 
-<a name="l00133"></a>00133 std::pair<integer, integer> divideBySingleDigit(<span class="keyword">const</span> integer& d1, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d2) {
-<a name="l00134"></a>00134     <span class="keyword">const</span> data_t *d1data=d1._get_data();
-<a name="l00135"></a>00135 
-<a name="l00136"></a>00136     integer quotient, remainder;
-<a name="l00137"></a>00137     data_t *qdata=quotient._get_data(), *rdata=remainder._get_data();
-<a name="l00138"></a>00138     qdata->alloc(d1data->mLength);
-<a name="l00139"></a>00139     rdata->alloc(1);
-<a name="l00140"></a>00140 
-<a name="l00141"></a>00141     <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> a=0;
-<a name="l00142"></a>00142     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> lomask(<a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>);
-<a name="l00143"></a>00143     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> himask(<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(<a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>) << <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
-<a name="l00144"></a>00144 
-<a name="l00145"></a>00145     <span class="keywordtype">int</span> m = d1data->mLength - 1;
-<a name="l00146"></a>00146     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d1p=d1data->digits+m;
-<a name="l00147"></a>00147     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *qp=qdata->digits+m;
-<a name="l00148"></a>00148     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = m; i >= 0; --i, --d1p, --qp) {
-<a name="l00149"></a>00149         a = (a & ~lomask) | *d1p;
-<a name="l00150"></a>00150         *qp = <span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(a / d2);
-<a name="l00151"></a>00151         a = (a & ~himask) | ((a % d2) << <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
-<a name="l00152"></a>00152     }
-<a name="l00153"></a>00153     rdata->digits[0] = <span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>((a & himask) >>
-<a name="l00154"></a>00154         <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
-<a name="l00155"></a>00155 
-<a name="l00156"></a>00156     qdata->skipLeadingZeros();
-<a name="l00157"></a>00157     rdata->skipLeadingZeros();
-<a name="l00158"></a>00158     <span class="keywordflow">return</span> std::make_pair(quotient, remainder);
-<a name="l00159"></a>00159 }
-<a name="l00160"></a>00160 
-<a name="l00161"></a>00161 std::pair<integer, integer> subDivide(integer d1, integer d2) {
-<a name="l00162"></a>00162     <span class="keyword">const</span> data_t *ndata=d1._get_data(), *bydata=d2._get_data();
-<a name="l00163"></a>00163     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *nDigits = ndata->digits, *byDigits = bydata->digits;
-<a name="l00164"></a>00164     <span class="keywordtype">int</span> nMSD = ndata->mLength-1, byMSD = bydata->mLength-1;
-<a name="l00165"></a>00165 
-<a name="l00166"></a>00166     <span class="comment">// The normalization step</span>
-<a name="l00167"></a>00167     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d = <span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a> /
-<a name="l00168"></a>00168         (<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(byDigits[byMSD])+1));
-<a name="l00169"></a>00169     <span class="keywordflow">if</span> (d > 1) {
-<a name="l00170"></a>00170         d1 *= d;
-<a name="l00171"></a>00171         d2 *= d;
-<a name="l00172"></a>00172 
-<a name="l00173"></a>00173         <span class="comment">// Gotta reset these</span>
-<a name="l00174"></a>00174         ndata = d1._get_data();
-<a name="l00175"></a>00175         bydata = d2._get_data();
-<a name="l00176"></a>00176         nDigits = ndata->digits;
-<a name="l00177"></a>00177         byDigits = bydata->digits;
-<a name="l00178"></a>00178         nMSD = ndata->mLength-1;
-<a name="l00179"></a>00179         byMSD = bydata->mLength-1;
-<a name="l00180"></a>00180 
-<a name="l00181"></a>00181     }
-<a name="l00182"></a>00182     assert(byDigits[byMSD] >= <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a> / 2);
-<a name="l00183"></a>00183 
-<a name="l00184"></a>00184     <span class="comment">// We have to figure out which digit is going to be the first one. We'll do</span>
-<a name="l00185"></a>00185     <span class="comment">// that by cutting the least-significant digits of the dividend until it</span>
-<a name="l00186"></a>00186     <span class="comment">// has the same number of digits as the divisor; if what remains is greater</span>
-<a name="l00187"></a>00187     <span class="comment">// than the divisor, then we start there, otherwise that one's zero and we</span>
-<a name="l00188"></a>00188     <span class="comment">// start on the next lower one.</span>
-<a name="l00189"></a>00189     <span class="keywordtype">int</span> highestQuotientDigit=(nMSD - byMSD);
-<a name="l00190"></a>00190     integer nTest(d1);
-<a name="l00191"></a>00191     nTest -= <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>();
-<a name="l00192"></a>00192     nTest >>= (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * highestQuotientDigit);
-<a name="l00193"></a>00193     <span class="keywordflow">if</span> (nTest < d2) --highestQuotientDigit;
-<a name="l00194"></a>00194 
-<a name="l00195"></a>00195     integer quotient, w;
-<a name="l00196"></a>00196     data_t *qdata=quotient._get_data();
-<a name="l00197"></a>00197     qdata->alloc(highestQuotientDigit + 1);
-<a name="l00198"></a>00198 
-<a name="l00199"></a>00199     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = highestQuotientDigit; j >= 0; --j) {
-<a name="l00200"></a>00200         <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> q = (nDigits[nMSD] > byDigits[byMSD] ?
-<a name="l00201"></a>00201             <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(nDigits[nMSD]) / byDigits[byMSD] :
-<a name="l00202"></a>00202             ((<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(nDigits[nMSD]) << <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>) +
-<a name="l00203"></a>00203             nDigits[nMSD-1]) / byDigits[byMSD]);
-<a name="l00204"></a>00204 
-<a name="l00205"></a>00205         <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> loopcount=0;
-<a name="l00206"></a>00206         <span class="keywordflow">while</span> (1) {
-<a name="l00207"></a>00207             w=(d2 * q);
-<a name="l00208"></a>00208             w <<= (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * j);
+<a name="l00118"></a>00118 <span class="keyword">namespace </span>{
+<a name="l00119"></a>00119 
+<a name="l00120"></a>00120 std::pair<integer, integer> divideBySingleDigit(<span class="keyword">const</span> integer& d1, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d2) {
+<a name="l00121"></a>00121     <span class="keyword">const</span> data_t *d1data=d1._get_data();
+<a name="l00122"></a>00122 
+<a name="l00123"></a>00123     integer quotient, remainder;
+<a name="l00124"></a>00124     data_t *qdata=quotient._get_data(), *rdata=remainder._get_data();
+<a name="l00125"></a>00125     qdata->alloc(d1data->mLength);
+<a name="l00126"></a>00126     rdata->alloc(1);
+<a name="l00127"></a>00127 
+<a name="l00128"></a>00128     <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> a=0;
+<a name="l00129"></a>00129     <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="l00130"></a>00130     <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>) << <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
+<a name="l00131"></a>00131 
+<a name="l00132"></a>00132     <span class="keywordtype">int</span> m = int(d1data->mLength) - 1;
+<a name="l00133"></a>00133     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *d1p=d1data->digits+m;
+<a name="l00134"></a>00134     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *qp=qdata->digits+m;
+<a name="l00135"></a>00135     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = m; i >= 0; --i, --d1p, --qp) {
+<a name="l00136"></a>00136         a = (a & ~lomask) | *d1p;
+<a name="l00137"></a>00137         *qp = <span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(a / d2);
+<a name="l00138"></a>00138         a = (a & ~himask) | ((a % d2) << <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
+<a name="l00139"></a>00139     }
+<a name="l00140"></a>00140     rdata->digits[0] = <span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>((a & himask) >>
+<a name="l00141"></a>00141         <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
+<a name="l00142"></a>00142 
+<a name="l00143"></a>00143     qdata->skipLeadingZeros();
+<a name="l00144"></a>00144     rdata->skipLeadingZeros();
+<a name="l00145"></a>00145     <span class="keywordflow">return</span> std::make_pair(quotient, remainder);
+<a name="l00146"></a>00146 }
+<a name="l00147"></a>00147 
+<a name="l00148"></a>00148 std::pair<integer, integer> subDivide(integer d1, integer d2) {
+<a name="l00149"></a>00149     <span class="keyword">const</span> data_t *ndata=d1._get_data(), *bydata=d2._get_data();
+<a name="l00150"></a>00150     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *nDigits = ndata->digits, *byDigits = bydata->digits;
+<a name="l00151"></a>00151     <span class="keywordtype">size_t</span> nMSD = ndata->mLength-1, byMSD = bydata->mLength-1;
+<a name="l00152"></a>00152 
+<a name="l00153"></a>00153     <span class="comment">// The normalization step</span>
+<a name="l00154"></a>00154     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d = <span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a> /
+<a name="l00155"></a>00155         (<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(byDigits[byMSD])+1));
+<a name="l00156"></a>00156     <span class="keywordflow">if</span> (d > 1) {
+<a name="l00157"></a>00157         d1 *= d;
+<a name="l00158"></a>00158         d2 *= d;
+<a name="l00159"></a>00159 
+<a name="l00160"></a>00160         <span class="comment">// Gotta reset these</span>
+<a name="l00161"></a>00161         ndata = d1._get_data();
+<a name="l00162"></a>00162         bydata = d2._get_data();
+<a name="l00163"></a>00163         nDigits = ndata->digits;
+<a name="l00164"></a>00164         byDigits = bydata->digits;
+<a name="l00165"></a>00165         nMSD = ndata->mLength-1;
+<a name="l00166"></a>00166         byMSD = bydata->mLength-1;
+<a name="l00167"></a>00167 
+<a name="l00168"></a>00168     }
+<a name="l00169"></a>00169     assert(byDigits[byMSD] >= <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a> / 2);
+<a name="l00170"></a>00170 
+<a name="l00171"></a>00171     <span class="comment">// We have to figure out which digit is going to be the first one. We'll do</span>
+<a name="l00172"></a>00172     <span class="comment">// that by cutting the least-significant digits of the dividend until it</span>
+<a name="l00173"></a>00173     <span class="comment">// has the same number of digits as the divisor; if what remains is greater</span>
+<a name="l00174"></a>00174     <span class="comment">// than the divisor, then we start there, otherwise that one's zero and we</span>
+<a name="l00175"></a>00175     <span class="comment">// start on the next lower one.</span>
+<a name="l00176"></a>00176     <span class="keywordtype">size_t</span> highestQuotientDigit=(nMSD - byMSD);
+<a name="l00177"></a>00177     integer nTest(d1);
+<a name="l00178"></a>00178     nTest -= <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">integer::one</a>();
+<a name="l00179"></a>00179     nTest >>= (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * highestQuotientDigit);
+<a name="l00180"></a>00180     <span class="keywordflow">if</span> (nTest < d2) --highestQuotientDigit;
+<a name="l00181"></a>00181 
+<a name="l00182"></a>00182     integer quotient, w;
+<a name="l00183"></a>00183     data_t *qdata=quotient._get_data();
+<a name="l00184"></a>00184     qdata->alloc(highestQuotientDigit + 1);
+<a name="l00185"></a>00185 
+<a name="l00186"></a>00186     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = <span class="keywordtype">int</span>(highestQuotientDigit); j >= 0; --j) {
+<a name="l00187"></a>00187         <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> q = (nDigits[nMSD] > byDigits[byMSD] ?
+<a name="l00188"></a>00188             <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(nDigits[nMSD]) / byDigits[byMSD] :
+<a name="l00189"></a>00189             ((<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(nDigits[nMSD]) << <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>) +
+<a name="l00190"></a>00190             nDigits[nMSD-1]) / byDigits[byMSD]);
+<a name="l00191"></a>00191 
+<a name="l00192"></a>00192         <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> loopcount=0;
+<a name="l00193"></a>00193         <span class="keywordflow">while</span> (1) {
+<a name="l00194"></a>00194             w=(d2 * q);
+<a name="l00195"></a>00195             w <<= (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a> * j);
+<a name="l00196"></a>00196 
+<a name="l00197"></a>00197             w = d1 - w;
+<a name="l00198"></a>00198             <span class="keywordflow">if</span> (w.sign() < 0) {
+<a name="l00199"></a>00199                 --q;
+<a name="l00200"></a>00200 
+<a name="l00201"></a>00201                 <span class="comment">// Our estimate should only be off by a maximum of two, so this</span>
+<a name="l00202"></a>00202                 <span class="comment">// while loop should only run twice each time, at most.</span>
+<a name="l00203"></a>00203                 assert(++loopcount <= 2);
+<a name="l00204"></a>00204             } <span class="keywordflow">else</span> <span class="keywordflow">break</span>;
+<a name="l00205"></a>00205         }
+<a name="l00206"></a>00206 
+<a name="l00207"></a>00207         qdata->digits[j] = <span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(q);
+<a name="l00208"></a>00208         <span class="keywordflow">if</span> (w < d2) <span class="keywordflow">break</span>;
 <a name="l00209"></a>00209 
-<a name="l00210"></a>00210             w = d1 - w;
-<a name="l00211"></a>00211             <span class="keywordflow">if</span> (w.sign() < 0) {
-<a name="l00212"></a>00212                 --q;
-<a name="l00213"></a>00213 
-<a name="l00214"></a>00214                 <span class="comment">// Our estimate should only be off by a maximum of two, so this</span>
-<a name="l00215"></a>00215                 <span class="comment">// while loop should only run twice each time, at most.</span>
-<a name="l00216"></a>00216                 assert(++loopcount <= 2);
-<a name="l00217"></a>00217             } <span class="keywordflow">else</span> <span class="keywordflow">break</span>;
-<a name="l00218"></a>00218         }
-<a name="l00219"></a>00219 
-<a name="l00220"></a>00220         qdata->digits[j] = <span class="keyword">static_cast<</span><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a><span class="keyword">></span>(q);
-<a name="l00221"></a>00221         <span class="keywordflow">if</span> (w < d2) <span class="keywordflow">break</span>;
-<a name="l00222"></a>00222 
-<a name="l00223"></a>00223         d1 = w;
-<a name="l00224"></a>00224         ndata=d1._get_data();
-<a name="l00225"></a>00225         nDigits = ndata->digits;
-<a name="l00226"></a>00226         nMSD = ndata->mLength-1;
-<a name="l00227"></a>00227     }
-<a name="l00228"></a>00228 
-<a name="l00229"></a>00229     <span class="keywordflow">if</span> (d > 1) {
-<a name="l00230"></a>00230         <span class="comment">// Denormalization step. This requires a division by a single digit_t.</span>
-<a name="l00231"></a>00231         integer remainder=divideBySingleDigit(w, d).first;
-<a name="l00232"></a>00232         <span class="keywordflow">return</span> std::make_pair(quotient, remainder);
-<a name="l00233"></a>00233     } <span class="keywordflow">else</span> {
-<a name="l00234"></a>00234         <span class="keywordflow">return</span> std::make_pair(quotient, w);
-<a name="l00235"></a>00235     }
-<a name="l00236"></a>00236 }
-<a name="l00237"></a>00237 
-<a name="l00238"></a>00238 } <span class="comment">// namespace</span>
+<a name="l00210"></a>00210         d1 = w;
+<a name="l00211"></a>00211         ndata=d1._get_data();
+<a name="l00212"></a>00212         nDigits = ndata->digits;
+<a name="l00213"></a>00213         nMSD = ndata->mLength-1;
+<a name="l00214"></a>00214     }
+<a name="l00215"></a>00215 
+<a name="l00216"></a>00216     <span class="keywordflow">if</span> (d > 1) {
+<a name="l00217"></a>00217         <span class="comment">// Denormalization step. This requires a division by a single digit_t.</span>
+<a name="l00218"></a>00218         integer remainder=divideBySingleDigit(w, d).first;
+<a name="l00219"></a>00219         <span class="keywordflow">return</span> std::make_pair(quotient, remainder);
+<a name="l00220"></a>00220     } <span class="keywordflow">else</span> {
+<a name="l00221"></a>00221         <span class="keywordflow">return</span> std::make_pair(quotient, w);
+<a name="l00222"></a>00222     }
+<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="l00227"></a>00227 integer <a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">divide</a>(<span class="keyword">const</span> integer& dividend, <span class="keyword">const</span> integer& divisor) {
+<a name="l00228"></a>00228     <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">divide_r</a>(dividend, divisor).first;
+<a name="l00229"></a>00229 }
+<a name="l00230"></a>00230 
+<a name="l00231"></a>00231 std::pair<integer, integer> <a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">divide_r</a>(<span class="keyword">const</span> integer& d1, <span class="keyword">const</span>
+<a name="l00232"></a>00232     integer& d2)
+<a name="l00233"></a>00233 {
+<a name="l00234"></a>00234     <span class="keywordtype">int</span> sign1=d1.sign(), sign2=d2.sign();
+<a name="l00235"></a>00235     <span class="keywordflow">if</span> (sign2==0) {
+<a name="l00236"></a>00236         <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> divide_by_zero();
+<a name="l00237"></a>00237         <span class="keywordflow">else</span> <span class="keywordflow">return</span> std::make_pair(integer(not_a_number()), integer(not_a_number()));
+<a name="l00238"></a>00238     }
 <a name="l00239"></a>00239 
-<a name="l00240"></a>00240 integer <a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">divide</a>(<span class="keyword">const</span> integer& dividend, <span class="keyword">const</span> integer& divisor) {
-<a name="l00241"></a>00241     <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">divide_r</a>(dividend, divisor).first;
-<a name="l00242"></a>00242 }
-<a name="l00243"></a>00243 
-<a name="l00244"></a>00244 std::pair<integer, integer> <a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">divide_r</a>(<span class="keyword">const</span> integer& d1, <span class="keyword">const</span>
-<a name="l00245"></a>00245     integer& d2)
-<a name="l00246"></a>00246 {
-<a name="l00247"></a>00247     <span class="keywordtype">int</span> sign1=d1.sign(), sign2=d2.sign();
-<a name="l00248"></a>00248     <span class="keywordflow">if</span> (sign2==0) {
-<a name="l00249"></a>00249         <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> divide_by_zero();
-<a name="l00250"></a>00250         <span class="keywordflow">else</span> <span class="keywordflow">return</span> std::make_pair(integer(not_a_number()), integer(not_a_number()));
-<a name="l00251"></a>00251     }
-<a name="l00252"></a>00252 
-<a name="l00253"></a>00253     <span class="keywordtype">int</span> comp=<a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">compare</a>(d1, d2, <span class="keyword">true</span>);
-<a name="l00254"></a>00254     <span class="keywordflow">if</span> (comp<0) {
-<a name="l00255"></a>00255         <span class="keywordflow">return</span> std::make_pair(<a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>(), d1);
-<a name="l00256"></a>00256     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (comp==0) {
-<a name="l00257"></a>00257         <span class="keywordflow">return</span> std::make_pair(sign1 != sign2 ? <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">integer::one</a>() : integer(-1),
-<a name="l00258"></a>00258             <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>());
-<a name="l00259"></a>00259     }
-<a name="l00260"></a>00260 
-<a name="l00261"></a>00261     <span class="keywordflow">if</span> (sign1 < 0 && sign2 < 0) {
-<a name="l00262"></a>00262         std::pair<integer, integer> a=subDivide(-d1, -d2);
-<a name="l00263"></a>00263         a.second._set_negative(<span class="keyword">true</span>);
-<a name="l00264"></a>00264         <span class="keywordflow">return</span> a;
-<a name="l00265"></a>00265     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1 < 0) {
-<a name="l00266"></a>00266         std::pair<integer, integer> a=subDivide(-d1, d2);
-<a name="l00267"></a>00267         a.first._set_negative(<span class="keyword">true</span>);
-<a name="l00268"></a>00268         a.second._set_negative(<span class="keyword">true</span>);
-<a name="l00269"></a>00269         <span class="keywordflow">return</span> a;
-<a name="l00270"></a>00270     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2 < 0) {
-<a name="l00271"></a>00271         std::pair<integer, integer> a=subDivide(d1, -d2);
-<a name="l00272"></a>00272         a.first._set_negative(<span class="keyword">true</span>);
-<a name="l00273"></a>00273         <span class="keywordflow">return</span> a;
-<a name="l00274"></a>00274     };
-<a name="l00275"></a>00275 
-<a name="l00276"></a>00276     <span class="keywordflow">if</span> (d2._get_data()->mLength == 1) {
-<a name="l00277"></a>00277         <span class="keywordflow">return</span> divideBySingleDigit(d1, d2._get_data()->digits[0]);
-<a name="l00278"></a>00278     } <span class="keywordflow">else</span> {
-<a name="l00279"></a>00279         <span class="keywordflow">return</span> subDivide(d1, d2);
-<a name="l00280"></a>00280     }
-<a name="l00281"></a>00281 }
-<a name="l00282"></a>00282 
-<a name="l00283"></a>00283 } <span class="comment">// namespace xint</span>
+<a name="l00240"></a>00240     <span class="keywordtype">int</span> comp=<a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">compare</a>(d1, d2, <span class="keyword">true</span>);
+<a name="l00241"></a>00241     <span class="keywordflow">if</span> (comp<0) {
+<a name="l00242"></a>00242         <span class="keywordflow">return</span> std::make_pair(<a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>(), d1);
+<a name="l00243"></a>00243     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (comp==0) {
+<a name="l00244"></a>00244         <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="l00245"></a>00245             <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>());
+<a name="l00246"></a>00246     }
+<a name="l00247"></a>00247 
+<a name="l00248"></a>00248     <span class="keywordflow">if</span> (sign1 < 0 && sign2 < 0) {
+<a name="l00249"></a>00249         std::pair<integer, integer> a=subDivide(-d1, -d2);
+<a name="l00250"></a>00250         a.second._set_negative(<span class="keyword">true</span>);
+<a name="l00251"></a>00251         <span class="keywordflow">return</span> a;
+<a name="l00252"></a>00252     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1 < 0) {
+<a name="l00253"></a>00253         std::pair<integer, integer> a=subDivide(-d1, d2);
+<a name="l00254"></a>00254         a.first._set_negative(<span class="keyword">true</span>);
+<a name="l00255"></a>00255         a.second._set_negative(<span class="keyword">true</span>);
+<a name="l00256"></a>00256         <span class="keywordflow">return</span> a;
+<a name="l00257"></a>00257     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2 < 0) {
+<a name="l00258"></a>00258         std::pair<integer, integer> a=subDivide(d1, -d2);
+<a name="l00259"></a>00259         a.first._set_negative(<span class="keyword">true</span>);
+<a name="l00260"></a>00260         <span class="keywordflow">return</span> a;
+<a name="l00261"></a>00261     };
+<a name="l00262"></a>00262 
+<a name="l00263"></a>00263     <span class="keywordflow">if</span> (d2._get_data()->mLength == 1) {
+<a name="l00264"></a>00264         <span class="keywordflow">return</span> divideBySingleDigit(d1, d2._get_data()->digits[0]);
+<a name="l00265"></a>00265     } <span class="keywordflow">else</span> {
+<a name="l00266"></a>00266         <span class="keywordflow">return</span> subDivide(d1, d2);
+<a name="l00267"></a>00267     }
+<a name="l00268"></a>00268 }
+<a name="l00269"></a>00269 
+<a name="l00270"></a>00270 } <span class="comment">// namespace xint</span>
 </pre></div></div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -356,7 +343,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/random_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/random_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/random_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -61,98 +61,66 @@
 <code>#include <vector></code><br/>
 <code>#include <sstream></code><br/>
 <code>#include <fstream></code><br/>
-<code>#include <boost/crc.hpp></code><br/>
+<code>#include <ctime></code><br/>
 <code>#include <boost/random/mersenne_twister.hpp></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  </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1strong__random__generator_1_1impl__t.html">xint::strong_random_generator::impl_t</a></td></tr>
 <tr><td colspan="2"><h2>Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html">xint::detail</a></td></tr>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">xint::seed_secure</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">xint::seed_fallback</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">xint::seed_manual</a> (const std::string &value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#ada65da12642b63f663b50382068a607f">xint::detail::set_random_generator</a> (random_t fn, base_random_generator *obj)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int </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">strong_random_generator::result_type <br class="typebreak"/>
+strong_random_generator::min </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4c109bd4fe51e6cd67361200d952d9a4">xint::BOOST_PREVENT_MACRO_SUBSTITUTION</a> () const </td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">xint::random_by_size</a> (size_t bits, bool highBitOn, bool lowBitOn, bool canBeNegative)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template<> </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a989d063e3298649704c804efca714ac6">xint::random< integer ></a> (const integer &lowest, const integer &highest)</td></tr>
 </table>
 <hr/><h2>Variable Documentation</h2>
-<a class="anchor" id="a5223229006a12ebbbbdfb70c32f58844"></a><!-- doxytag: member="random.cpp::cSeedMaximumBytes" ref="a5223229006a12ebbbbdfb70c32f58844" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const size_t <a class="el" href="random_8cpp.html#a5223229006a12ebbbbdfb70c32f58844">cSeedMaximumBytes</a> = 4096<code> [static]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="random_8cpp_source.html#l00086">86</a> of file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad94db68c58845e9483f2241232395966"></a><!-- doxytag: member="random.cpp::mGen" ref="ad94db68c58845e9483f2241232395966" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">internal_generator_t* <a class="el" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">mGen</a><code> [static]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="random_8cpp_source.html#l00094">94</a> of file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7d6e1aeab9ee350c5d9b29ea31b02573"></a><!-- doxytag: member="random.cpp::mNumber" ref="a7d6e1aeab9ee350c5d9b29ea31b02573" args="" -->
+<a class="anchor" id="a238ff0f867d5c1cbee8f90025cf78d84"></a><!-- doxytag: member="random.cpp::mDefaultGenerator" ref="a238ff0f867d5c1cbee8f90025cf78d84" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">int <a class="el" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">mNumber</a></td>
+          <td class="memname">std::auto_ptr<default_random_t> <a class="el" href="random_8cpp.html#a238ff0f867d5c1cbee8f90025cf78d84">mDefaultGenerator</a><code> [static]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="random_8cpp_source.html#l00089">89</a> of file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
+<p>Definition at line <a class="el" href="random_8cpp_source.html#l00072">72</a> of file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a7fadbfa933b8181768eb9e2a6cb5379f"></a><!-- doxytag: member="random.cpp::mSeeded" ref="a7fadbfa933b8181768eb9e2a6cb5379f" args="" -->
+<a class="anchor" id="ab29291663b453f8de2fecf35aa62e1d8"></a><!-- doxytag: member="random.cpp::mGeneratorFn" ref="ab29291663b453f8de2fecf35aa62e1d8" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool <a class="el" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">mSeeded</a><code> [static]</code></td>
+          <td class="memname">random_t <a class="el" href="random_8cpp.html#ab29291663b453f8de2fecf35aa62e1d8">mGeneratorFn</a><code> [static]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="random_8cpp_source.html#l00095">95</a> of file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
+<p>Definition at line <a class="el" href="random_8cpp_source.html#l00070">70</a> of file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a53e7e690c68e339c9e7b89593957137a"></a><!-- doxytag: member="random.cpp::mString" ref="a53e7e690c68e339c9e7b89593957137a" args="" -->
+<a class="anchor" id="a5a10f5470776b1e8b6c0dd791a9baa6a"></a><!-- doxytag: member="random.cpp::mGeneratorObj" ref="a5a10f5470776b1e8b6c0dd791a9baa6a" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::string <a class="el" href="random_8cpp.html#a53e7e690c68e339c9e7b89593957137a">mString</a></td>
+          <td class="memname">std::auto_ptr<base_random_generator> <a class="el" href="random_8cpp.html#a5a10f5470776b1e8b6c0dd791a9baa6a">mGeneratorObj</a><code> [static]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="random_8cpp_source.html#l00088">88</a> of file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
+<p>Definition at line <a class="el" href="random_8cpp_source.html#l00071">71</a> of file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
 
 </div>
 </div>
@@ -175,7 +143,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/random_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/random_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/random_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -73,222 +73,198 @@
 <a name="l00017"></a>00017 <span class="preprocessor">#include <vector></span>
 <a name="l00018"></a>00018 <span class="preprocessor">#include <sstream></span>
 <a name="l00019"></a>00019 <span class="preprocessor">#include <fstream></span>
-<a name="l00020"></a>00020 
-<a name="l00021"></a>00021 <span class="preprocessor">#include <boost/crc.hpp></span>
-<a name="l00022"></a>00022 <span class="preprocessor">#include <boost/random/mersenne_twister.hpp></span>
-<a name="l00023"></a>00023 
-<a name="l00024"></a>00024 <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
-<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">    #include <boost/thread.hpp></span>
-<a name="l00026"></a>00026 <span class="preprocessor">#endif</span>
-<a name="l00027"></a>00027 <span class="preprocessor"></span>
-<a name="l00028"></a>00028 <span class="preprocessor">#ifdef _WIN32</span>
-<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">    #define STRICT</span>
-<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">    #define WIN32_LEAN_AND_MEAN</span>
-<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">    #define NOMINMAX</span>
-<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">    #include <windows.h></span>
-<a name="l00033"></a>00033 <span class="preprocessor">    #include <TCHAR.h></span>
-<a name="l00034"></a>00034 <span class="preprocessor">#endif</span>
-<a name="l00035"></a>00035 <span class="preprocessor"></span>
-<a name="l00036"></a>00036 <span class="keyword">namespace </span>xint {
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038 <span class="keyword">using namespace </span>detail;
-<a name="l00039"></a>00039 
-<a name="l00040"></a>00040 <span class="keyword">namespace </span>{
-<a name="l00041"></a>00041 
-<a name="l00042"></a>00042 <span class="keyword">class </span>generator_t {
-<a name="l00043"></a>00043     <span class="keyword">typedef</span> boost::mt19937 internal_generator_t;
-<a name="l00044"></a>00044 
-<a name="l00045"></a>00045     <span class="keyword">public</span>:
-<a name="l00046"></a>00046     <span class="keyword">typedef</span> internal_generator_t::result_type result_type;
-<a name="l00047"></a>00047 
-<a name="l00048"></a>00048 <span class="preprocessor">    #ifdef XINT_THREADSAFE</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span>        generator_t() { mLock.lock(); init(); }
-<a name="l00050"></a>00050         ~generator_t() { mLock.unlock(); }
-<a name="l00051"></a>00051 <span class="preprocessor">    #else</span>
-<a name="l00052"></a>00052 <span class="preprocessor"></span>        generator_t() { init(); }
-<a name="l00053"></a>00053 <span class="preprocessor">    #endif</span>
-<a name="l00054"></a>00054 <span class="preprocessor"></span>
-<a name="l00055"></a>00055     <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">seed_manual</a>(<span class="keyword">const</span> std::string& bytes);
-<a name="l00056"></a>00056     <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">seed_secure</a>();
-<a name="l00057"></a>00057     <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">seed_fallback</a>();
-<a name="l00058"></a>00058     result_type operator()();
+<a name="l00020"></a>00020 <span class="preprocessor">#include <ctime></span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include <boost/random/mersenne_twister.hpp></span>
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
+<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">    #include <boost/thread.hpp></span>
+<a name="l00025"></a>00025 <span class="preprocessor">#endif</span>
+<a name="l00026"></a>00026 <span class="preprocessor"></span>
+<a name="l00027"></a>00027 <span class="preprocessor">#ifdef _WIN32</span>
+<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">    #define STRICT</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">    #define WIN32_LEAN_AND_MEAN</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">    #define NOMINMAX</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">    #include <windows.h></span>
+<a name="l00032"></a>00032 <span class="preprocessor">    #include <TCHAR.h></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">namespace </span>xint {
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="keyword">using namespace </span>detail;
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="keyword">namespace </span>{
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041 <span class="keyword">class </span>generator_t {
+<a name="l00042"></a>00042     <span class="keyword">public</span>:
+<a name="l00043"></a>00043     <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="l00044"></a>00044     <span class="keyword">typedef</span> boost::mt19937 default_random_t;
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="preprocessor">    #ifdef XINT_THREADSAFE</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>        generator_t() { mLock.lock(); init(); }
+<a name="l00048"></a>00048         ~generator_t() { mLock.unlock(); }
+<a name="l00049"></a>00049 <span class="preprocessor">    #else</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span>        generator_t() { init(); }
+<a name="l00051"></a>00051 <span class="preprocessor">    #endif</span>
+<a name="l00052"></a>00052 <span class="preprocessor"></span>
+<a name="l00053"></a>00053     result_type operator()() { <span class="keywordflow">return</span> <a class="code" href="random_8cpp.html#ab29291663b453f8de2fecf35aa62e1d8">mGeneratorFn</a>(); }
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055     <span class="keyword">static</span> <span class="keywordtype">void</span> set_generator(<a class="code" href="namespacexint_1_1detail.html#a9c9dc00dbbe287492696635ed41dce44">random_t</a> g, base_random_generator *p) {
+<a name="l00056"></a>00056         <a class="code" href="random_8cpp.html#a5a10f5470776b1e8b6c0dd791a9baa6a">mGeneratorObj</a>.reset(p);
+<a name="l00057"></a>00057         <a class="code" href="random_8cpp.html#ab29291663b453f8de2fecf35aa62e1d8">mGeneratorFn</a>=g;
+<a name="l00058"></a>00058     }
 <a name="l00059"></a>00059 
 <a name="l00060"></a>00060     <span class="keyword">private</span>:
-<a name="l00061"></a>00061     <span class="keyword">class </span>SeedGenerator {
-<a name="l00062"></a>00062         <span class="keyword">public</span>:
-<a name="l00063"></a>00063         SeedGenerator(<span class="keyword">const</span> std::string& seedstring): <a class="code" href="random_8cpp.html#a53e7e690c68e339c9e7b89593957137a">mString</a>(seedstring.substr(0,
-<a name="l00064"></a>00064             <a class="code" href="random_8cpp.html#a5223229006a12ebbbbdfb70c32f58844">cSeedMaximumBytes</a>)), <a class="code" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">mNumber</a>(0) { }
-<a name="l00065"></a>00065         internal_generator_t::result_type operator()() {
-<a name="l00066"></a>00066             std::ostringstream s1;
-<a name="l00067"></a>00067             s1 << <a class="code" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">mNumber</a>++ << <a class="code" href="random_8cpp.html#a53e7e690c68e339c9e7b89593957137a">mString</a>;
-<a name="l00068"></a>00068             std::string s2=s1.str();
+<a name="l00061"></a>00061     <span class="keywordtype">void</span> init() {
+<a name="l00062"></a>00062         <span class="keywordflow">if</span> (!<a class="code" href="random_8cpp.html#ab29291663b453f8de2fecf35aa62e1d8">mGeneratorFn</a>) {
+<a name="l00063"></a>00063             <span class="keyword">typedef</span> default_random_t T;
+<a name="l00064"></a>00064             <a class="code" href="random_8cpp.html#a238ff0f867d5c1cbee8f90025cf78d84">mDefaultGenerator</a>.reset(<span class="keyword">new</span> T(boost::uint32_t(time(0)+clock())));
+<a name="l00065"></a>00065             random_generator<T> *obj=<span class="keyword">new</span> random_generator<T>(*mDefaultGenerator);
+<a name="l00066"></a>00066             set_generator(*obj, obj);
+<a name="l00067"></a>00067         }
+<a name="l00068"></a>00068     }
 <a name="l00069"></a>00069 
-<a name="l00070"></a>00070             boost::crc_32_type crc;
-<a name="l00071"></a>00071             crc.process_bytes(s2.c_str(), s2.length());
-<a name="l00072"></a>00072             <span class="keywordflow">return</span> crc.checksum();
-<a name="l00073"></a>00073         }
-<a name="l00074"></a>00074 
-<a name="l00075"></a>00075 <span class="preprocessor">        #ifdef XINT_SECURE</span>
-<a name="l00076"></a>00076 <span class="preprocessor"></span>            <span class="keyword">static</span> <span class="keywordtype">char</span> zero(<span class="keywordtype">char</span>) { <span class="keywordflow">return</span> 0; }
-<a name="l00077"></a>00077 
-<a name="l00078"></a>00078             ~SeedGenerator() {
-<a name="l00079"></a>00079                 <a class="code" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">mNumber</a>=0;
-<a name="l00080"></a>00080                 std::transform(mString.begin(), mString.end(), mString.begin(),
-<a name="l00081"></a>00081                     zero);
-<a name="l00082"></a>00082             }
-<a name="l00083"></a>00083 <span class="preprocessor">        #endif</span>
-<a name="l00084"></a>00084 <span class="preprocessor"></span>
-<a name="l00085"></a>00085         <span class="keyword">private</span>:
-<a name="l00086"></a><a class="code" href="random_8cpp.html#a5223229006a12ebbbbdfb70c32f58844">00086</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="random_8cpp.html#a5223229006a12ebbbbdfb70c32f58844">cSeedMaximumBytes</a>=4096;
-<a name="l00087"></a>00087 
-<a name="l00088"></a><a class="code" href="random_8cpp.html#a53e7e690c68e339c9e7b89593957137a">00088</a>         std::string mString;
-<a name="l00089"></a><a class="code" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">00089</a>         <span class="keywordtype">int</span> <a class="code" href="random_8cpp.html#a7d6e1aeab9ee350c5d9b29ea31b02573">mNumber</a>;
-<a name="l00090"></a>00090     };
-<a name="l00091"></a>00091 
-<a name="l00092"></a>00092     <span class="keywordtype">void</span> init();
-<a name="l00093"></a>00093 
-<a name="l00094"></a><a class="code" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">00094</a>     <span class="keyword">static</span> internal_generator_t *<a class="code" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">mGen</a>;
-<a name="l00095"></a><a class="code" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">00095</a>     <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">mSeeded</a>;
-<a name="l00096"></a>00096 
-<a name="l00097"></a>00097 <span class="preprocessor">    #ifdef XINT_THREADSAFE</span>
-<a name="l00098"></a>00098 <span class="preprocessor"></span>        <span class="keyword">static</span> boost::mutex mLock;
-<a name="l00099"></a>00099 <span class="preprocessor">    #endif</span>
-<a name="l00100"></a>00100 <span class="preprocessor"></span>};
+<a name="l00070"></a><a class="code" href="random_8cpp.html#ab29291663b453f8de2fecf35aa62e1d8">00070</a>     <span class="keyword">static</span> <a class="code" href="namespacexint_1_1detail.html#a9c9dc00dbbe287492696635ed41dce44">random_t</a> <a class="code" href="random_8cpp.html#ab29291663b453f8de2fecf35aa62e1d8">mGeneratorFn</a>;
+<a name="l00071"></a><a class="code" href="random_8cpp.html#a5a10f5470776b1e8b6c0dd791a9baa6a">00071</a>     <span class="keyword">static</span> std::auto_ptr<base_random_generator> <a class="code" href="random_8cpp.html#a5a10f5470776b1e8b6c0dd791a9baa6a">mGeneratorObj</a>;
+<a name="l00072"></a><a class="code" href="random_8cpp.html#a238ff0f867d5c1cbee8f90025cf78d84">00072</a>     <span class="keyword">static</span> std::auto_ptr<default_random_t> <a class="code" href="random_8cpp.html#a238ff0f867d5c1cbee8f90025cf78d84">mDefaultGenerator</a>;
+<a name="l00073"></a>00073 
+<a name="l00074"></a>00074 <span class="preprocessor">    #ifdef XINT_THREADSAFE</span>
+<a name="l00075"></a>00075 <span class="preprocessor"></span>        <span class="keyword">static</span> boost::mutex mLock;
+<a name="l00076"></a>00076 <span class="preprocessor">    #endif</span>
+<a name="l00077"></a>00077 <span class="preprocessor"></span>};
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079 std::auto_ptr<base_random_generator> <a class="code" href="random_8cpp.html#a5a10f5470776b1e8b6c0dd791a9baa6a">generator_t::mGeneratorObj</a>;
+<a name="l00080"></a>00080 std::auto_ptr<generator_t::default_random_t> <a class="code" href="random_8cpp.html#a238ff0f867d5c1cbee8f90025cf78d84">generator_t::mDefaultGenerator</a>;
+<a name="l00081"></a>00081 <a class="code" href="namespacexint_1_1detail.html#a9c9dc00dbbe287492696635ed41dce44">random_t</a> <a class="code" href="random_8cpp.html#ab29291663b453f8de2fecf35aa62e1d8">generator_t::mGeneratorFn</a>;
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083 <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
+<a name="l00084"></a>00084 <span class="preprocessor"></span>    boost::mutex generator_t::mLock;
+<a name="l00085"></a>00085 <span class="preprocessor">#endif</span>
+<a name="l00086"></a>00086 <span class="preprocessor"></span>
+<a name="l00087"></a>00087 } <span class="comment">// namespace</span>
+<a name="l00088"></a>00088 
+<a name="l00089"></a>00089 <span class="keyword">namespace </span>detail {
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091 <span class="keywordtype">void</span> <a class="code" href="namespacexint_1_1detail.html#ada65da12642b63f663b50382068a607f">set_random_generator</a>(<a class="code" href="namespacexint_1_1detail.html#a9c9dc00dbbe287492696635ed41dce44">random_t</a> fn, base_random_generator *obj) {
+<a name="l00092"></a>00092     generator_t::set_generator(fn, obj);
+<a name="l00093"></a>00093 }
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="namespacexint_1_1detail.html#a1dfc1e90886c4897a4b112f491b89b62">get_random</a>() {
+<a name="l00096"></a>00096     generator_t gen;
+<a name="l00097"></a>00097     <span class="keywordflow">return</span> gen();
+<a name="l00098"></a>00098 }
+<a name="l00099"></a>00099 
+<a name="l00100"></a>00100 } <span class="comment">// namespace detail</span>
 <a name="l00101"></a>00101 
-<a name="l00102"></a>00102 generator_t::internal_generator_t *<a class="code" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">generator_t::mGen</a>=0;
-<a name="l00103"></a>00103 <span class="keywordtype">bool</span> <a class="code" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">generator_t::mSeeded</a>=<span class="keyword">false</span>;
+<a name="l00103"></a>00103 <span class="comment">// The secure random generator</span>
 <a name="l00104"></a>00104 
-<a name="l00105"></a>00105 <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
-<a name="l00106"></a>00106 <span class="preprocessor"></span>    boost::mutex generator_t::mLock;
-<a name="l00107"></a>00107 <span class="preprocessor">#endif</span>
-<a name="l00108"></a>00108 <span class="preprocessor"></span>
-<a name="l00109"></a>00109 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">generator_t::seed_manual</a>(<span class="keyword">const</span> std::string& bytes) {
-<a name="l00110"></a>00110     SeedGenerator gen(bytes);
-<a name="l00111"></a>00111     <a class="code" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">mGen</a>->seed(gen);
-<a name="l00112"></a>00112     <a class="code" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">mSeeded</a>=<span class="keyword">true</span>;
-<a name="l00113"></a>00113 }
-<a name="l00114"></a>00114 
-<a name="l00115"></a>00115 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">generator_t::seed_secure</a>() {
-<a name="l00116"></a>00116     <span class="keyword">const</span> <span class="keywordtype">int</span> cBitsRequested=256,
-<a name="l00117"></a>00117         cBytesRequested=cBitsRequested / std::numeric_limits<char>::digits;
-<a name="l00118"></a>00118     <span class="keywordtype">bool</span> success=<span class="keyword">false</span>;
-<a name="l00119"></a>00119 
-<a name="l00120"></a>00120 <span class="preprocessor">    #ifdef _WIN32</span>
-<a name="l00121"></a>00121 <span class="preprocessor"></span>        <span class="comment">// This should work under WinXP, Vista, and Win7. No guarantees about</span>
-<a name="l00122"></a>00122         <span class="comment">// future compatibility, but I doubt that Microsoft will get rid of it</span>
-<a name="l00123"></a>00123         <span class="comment">// (it's too useful), and I doubt that they'll change it now that it's</span>
-<a name="l00124"></a>00124         <span class="comment">// well-known (it would break too many programs). We could also use the</span>
-<a name="l00125"></a>00125         <span class="comment">// rand_s function in more recent versions of Visual C++, but that</span>
-<a name="l00126"></a>00126         <span class="comment">// causes compatibility problems with older versions of Windows.</span>
-<a name="l00127"></a>00127         <span class="keyword">typedef</span> BOOLEAN (WINAPI *RtlGenRandomFn)(PVOID, ULONG);
-<a name="l00128"></a>00128         HMODULE dll=LoadLibrary(_T(<span class="stringliteral">"Advapi32.dll"</span>));
-<a name="l00129"></a>00129         <span class="keywordflow">if</span> (dll != 0) {
-<a name="l00130"></a>00130             RtlGenRandomFn RtlGenRandom=RtlGenRandomFn(GetProcAddress(dll,
-<a name="l00131"></a>00131                 <span class="stringliteral">"SystemFunction036"</span>));
-<a name="l00132"></a>00132             <span class="keywordflow">if</span> (RtlGenRandom != 0) {
-<a name="l00133"></a>00133                 std::vector<char> buffer(cBytesRequested, <span class="charliteral">'\0'</span>);
-<a name="l00134"></a>00134                 <span class="keywordflow">if</span> (RtlGenRandom(&buffer[0], cBytesRequested)) {
-<a name="l00135"></a>00135                     <span class="keywordtype">char</span> *c=&buffer[0];
-<a name="l00136"></a>00136                     <a class="code" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">seed_manual</a>(std::string(c, c+cBytesRequested));
-<a name="l00137"></a>00137                     success=<span class="keyword">true</span>;
-<a name="l00138"></a>00138                 }
-<a name="l00139"></a>00139             }
-<a name="l00140"></a>00140             FreeLibrary(dll);
-<a name="l00141"></a>00141         }
-<a name="l00142"></a>00142 <span class="preprocessor">    #else</span>
-<a name="l00143"></a>00143 <span class="preprocessor"></span>        <span class="comment">// This should be supported under most non-Windows systems. Note that</span>
-<a name="l00144"></a>00144         <span class="comment">// we're using /dev/urandom, not /dev/random -- /dev/random is more</span>
-<a name="l00145"></a>00145         <span class="comment">// secure, but it can be VERY slow.</span>
-<a name="l00146"></a>00146         std::ifstream rng(<span class="stringliteral">"/dev/urandom"</span>);
-<a name="l00147"></a>00147         <span class="keywordflow">if</span> (rng) {
-<a name="l00148"></a>00148             std::string rstr;
-<a name="l00149"></a>00149             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i < cBytesRequested; ++i)
-<a name="l00150"></a>00150                 rstr.push_back(rng.get());
-<a name="l00151"></a>00151             <a class="code" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">seed_manual</a>(rstr);
-<a name="l00152"></a>00152             success=<span class="keyword">true</span>;
-<a name="l00153"></a>00153         }
-<a name="l00154"></a>00154 <span class="preprocessor">    #endif</span>
-<a name="l00155"></a>00155 <span class="preprocessor"></span>
-<a name="l00156"></a>00156     <span class="keywordflow">return</span> success;
-<a name="l00157"></a>00157 }
-<a name="l00158"></a>00158 
-<a name="l00159"></a>00159 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">generator_t::seed_fallback</a>() {
-<a name="l00160"></a>00160     <span class="comment">// No cryptographically-secure device available. Fall back onto the</span>
-<a name="l00161"></a>00161     <span class="comment">// system clock. It's not much, but it's portable, fast, and will</span>
-<a name="l00162"></a>00162     <span class="comment">// provide at least a *little* entropy.</span>
-<a name="l00163"></a>00163     std::ostringstream out;
-<a name="l00164"></a>00164     out << time(0) << clock();
-<a name="l00165"></a>00165     <a class="code" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">seed_manual</a>(out.str());
-<a name="l00166"></a>00166 }
-<a name="l00167"></a>00167 
-<a name="l00168"></a>00168 generator_t::result_type generator_t::operator()() {
-<a name="l00169"></a>00169     <span class="keywordflow">if</span> (!<a class="code" href="random_8cpp.html#a7fadbfa933b8181768eb9e2a6cb5379f">mSeeded</a>)
-<a name="l00170"></a>00170         <span class="keywordflow">if</span> (!<a class="code" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">seed_secure</a>())
-<a name="l00171"></a>00171             <a class="code" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">seed_fallback</a>();
-<a name="l00172"></a>00172     <span class="keywordflow">return</span> (*<a class="code" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">mGen</a>)();
-<a name="l00173"></a>00173 }
-<a name="l00174"></a>00174 
-<a name="l00175"></a>00175 <span class="keywordtype">void</span> generator_t::init() {
-<a name="l00176"></a>00176     <span class="keywordflow">if</span> (!<a class="code" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">mGen</a>) <a class="code" href="random_8cpp.html#ad94db68c58845e9483f2241232395966">mGen</a>=<span class="keyword">new</span> internal_generator_t();
-<a name="l00177"></a>00177 }
-<a name="l00178"></a>00178 
-<a name="l00179"></a>00179 } <span class="comment">// namespace</span>
-<a name="l00180"></a>00180 
-<a name="l00181"></a>00181 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">seed_secure</a>() {
-<a name="l00182"></a>00182     generator_t gen;
-<a name="l00183"></a>00183     <span class="keywordflow">return</span> gen.seed_secure();
-<a name="l00184"></a>00184 }
+<a name="l00105"></a>00105 <span class="preprocessor">#ifdef _WIN32</span>
+<a name="l00106"></a>00106 <span class="preprocessor"></span>    <span class="keyword">struct </span>strong_random_generator::impl_t {
+<a name="l00107"></a>00107         <span class="keyword">typedef</span> BOOLEAN (WINAPI *RtlGenRandomFn)(PVOID, ULONG);
+<a name="l00108"></a>00108         <span class="keyword">typedef</span> DWORD <a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#ad036a77b12a57bb1aeb1b2dfeb7786ed">result_type</a>;
+<a name="l00109"></a>00109 
+<a name="l00110"></a>00110         <a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#a5ceb209ca0287aac772c87eff6167028">impl_t</a>(): dll(0), fn(0) {
+<a name="l00111"></a>00111             <span class="comment">// This should work under WinXP, Vista, and Win7. No guarantees about</span>
+<a name="l00112"></a>00112             <span class="comment">// future compatibility, but I doubt that Microsoft will get rid of it</span>
+<a name="l00113"></a>00113             <span class="comment">// (it's too useful), and I doubt that they'll change it now that it's</span>
+<a name="l00114"></a>00114             <span class="comment">// well-known (it would break too many programs). We could also use the</span>
+<a name="l00115"></a>00115             <span class="comment">// rand_s function in more recent versions of Visual C++, but that</span>
+<a name="l00116"></a>00116             <span class="comment">// causes compatibility problems with older versions of Windows.</span>
+<a name="l00117"></a>00117             dll=LoadLibrary(_T(<span class="stringliteral">"Advapi32.dll"</span>));
+<a name="l00118"></a>00118             <span class="keywordflow">if</span> (dll != 0) fn=RtlGenRandomFn(GetProcAddress(dll, <span class="stringliteral">"SystemFunction036"</span>));
+<a name="l00119"></a>00119             <span class="keywordflow">if</span> (fn == 0) {
+<a name="l00120"></a>00120                 destroy();
+<a name="l00121"></a>00121                 <span class="keywordflow">throw</span> no_strong_random();
+<a name="l00122"></a>00122             }
+<a name="l00123"></a>00123         }
+<a name="l00124"></a>00124 
+<a name="l00125"></a>00125         ~<a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#a5ceb209ca0287aac772c87eff6167028">impl_t</a>() { destroy(); }
+<a name="l00126"></a>00126 
+<a name="l00127"></a>00127         <a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#ad036a77b12a57bb1aeb1b2dfeb7786ed">result_type</a> <a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#a52493fa7d5f0831d1c9605077da7cc8e">operator()</a>() {
+<a name="l00128"></a>00128             <a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#ad036a77b12a57bb1aeb1b2dfeb7786ed">result_type</a> r=0;
+<a name="l00129"></a>00129             <span class="keywordflow">if</span> (!fn(&r, <span class="keyword">sizeof</span>(<a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#ad036a77b12a57bb1aeb1b2dfeb7786ed">result_type</a>)))
+<a name="l00130"></a>00130                 <span class="keywordflow">throw</span> no_strong_random(<span class="stringliteral">"RtlGenRandom failed"</span>);
+<a name="l00131"></a>00131             <span class="keywordflow">return</span> r;
+<a name="l00132"></a>00132         }
+<a name="l00133"></a>00133 
+<a name="l00134"></a>00134         <span class="keywordtype">void</span> destroy() { <span class="keywordflow">if</span> (dll) FreeLibrary(dll); }
+<a name="l00135"></a>00135 
+<a name="l00136"></a>00136         HMODULE dll;
+<a name="l00137"></a>00137         RtlGenRandomFn fn;
+<a name="l00138"></a>00138     };
+<a name="l00139"></a>00139 
+<a name="l00140"></a>00140     <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="l00141"></a>00141 <span class="preprocessor">#else</span>
+<a name="l00142"></a><a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html">00142</a> <span class="preprocessor"></span>    <span class="keyword">struct </span><a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html">strong_random_generator::impl_t</a> {
+<a name="l00143"></a><a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#ad036a77b12a57bb1aeb1b2dfeb7786ed">00143</a>         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#ad036a77b12a57bb1aeb1b2dfeb7786ed">result_type</a>;
+<a name="l00144"></a>00144 
+<a name="l00145"></a><a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#a5ceb209ca0287aac772c87eff6167028">00145</a>         <a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#a5ceb209ca0287aac772c87eff6167028">impl_t</a>(): <a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#a4863c36524d24aed3c9f7192e97b3d09">rng</a>(<span class="stringliteral">"/dev/urandom"</span>, std::ios::binary) {
+<a name="l00146"></a>00146             <span class="comment">// This should be supported under most non-Windows systems. Note</span>
+<a name="l00147"></a>00147             <span class="comment">// that we're using /dev/urandom, not /dev/random -- /dev/random is</span>
+<a name="l00148"></a>00148             <span class="comment">// more secure, but it can be VERY slow.</span>
+<a name="l00149"></a>00149             <span class="keywordflow">if</span> (!<a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#a4863c36524d24aed3c9f7192e97b3d09">rng</a>) <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1no__strong__random.html">no_strong_random</a>();
+<a name="l00150"></a>00150         }
+<a name="l00151"></a>00151 
+<a name="l00152"></a><a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#a52493fa7d5f0831d1c9605077da7cc8e">00152</a>         <a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#ad036a77b12a57bb1aeb1b2dfeb7786ed">result_type</a> <a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#a52493fa7d5f0831d1c9605077da7cc8e">operator()</a>() {
+<a name="l00153"></a>00153             <span class="keywordtype">int</span> r=<a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#a4863c36524d24aed3c9f7192e97b3d09">rng</a>.get();
+<a name="l00154"></a>00154             <span class="keywordflow">if</span> (r==EOF) <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1no__strong__random.html">no_strong_random</a>(<span class="stringliteral">"/dev/urandom returned EOF"</span>);
+<a name="l00155"></a>00155             <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#ad036a77b12a57bb1aeb1b2dfeb7786ed">result_type</a><span class="keyword">></span>(r);
+<a name="l00156"></a>00156         }
+<a name="l00157"></a>00157 
+<a name="l00158"></a><a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#a4863c36524d24aed3c9f7192e97b3d09">00158</a>         std::ifstream <a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html#a4863c36524d24aed3c9f7192e97b3d09">rng</a>;
+<a name="l00159"></a>00159     };
+<a name="l00160"></a>00160 
+<a name="l00161"></a><a class="code" href="classxint_1_1strong__random__generator.html#a57ff17a9c2b36775acfedd53f5a0b30e">00161</a>     <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="l00162"></a>00162 <span class="preprocessor">#endif</span>
+<a name="l00163"></a>00163 <span class="preprocessor"></span>
+<a name="l00164"></a>00164 <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="l00165"></a>00165 <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="l00166"></a>00166     (std::numeric_limits<impl_t::result_type>::min)();
+<a name="l00167"></a>00167 <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="l00168"></a>00168     (std::numeric_limits<impl_t::result_type>::max)();
+<a name="l00169"></a><a class="code" href="classxint_1_1strong__random__generator.html#a8841d21b6614967e0520f55c3093871a">00169</a> <a class="code" href="classxint_1_1strong__random__generator.html#a8841d21b6614967e0520f55c3093871a">strong_random_generator::strong_random_generator</a>(): impl(new <a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html">impl_t</a>) { }
+<a name="l00170"></a><a class="code" href="classxint_1_1strong__random__generator.html#ac75f659c2adb7c822d49fe534b2d76a4">00170</a> <a class="code" href="classxint_1_1strong__random__generator.html#ac75f659c2adb7c822d49fe534b2d76a4">strong_random_generator::~strong_random_generator</a>() { <span class="keyword">delete</span> <a class="code" href="classxint_1_1strong__random__generator.html#a9f055c0ff1a85a8c465099c596f368fa">impl</a>; }
+<a name="l00171"></a><a class="code" href="classxint_1_1strong__random__generator.html#a2bbb1944511585f66e5daec4737bd4e7">00171</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="l00172"></a>00172     <span class="keywordflow">return</span> (*<a class="code" href="classxint_1_1strong__random__generator.html#a9f055c0ff1a85a8c465099c596f368fa">impl</a>)(); }
+<a name="l00173"></a>00173 <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="l00174"></a>00174     <a class="code" href="namespacexint.html#a4c109bd4fe51e6cd67361200d952d9a4">BOOST_PREVENT_MACRO_SUBSTITUTION</a> ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> min_value; }
+<a name="l00175"></a>00175 <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="l00176"></a><a class="code" href="namespacexint.html#a4c109bd4fe51e6cd67361200d952d9a4">00176</a>     <a class="code" href="namespacexint.html#a4c109bd4fe51e6cd67361200d952d9a4">BOOST_PREVENT_MACRO_SUBSTITUTION</a> ()<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<<bits)-1, inclusive</span>
+<a name="l00181"></a>00181 integer <a class="code" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size</a>(<span class="keywordtype">size_t</span> bits, <span class="keywordtype">bool</span> highBitOn, <span class="keywordtype">bool</span> lowBitOn, <span class="keywordtype">bool</span>
+<a name="l00182"></a>00182     canBeNegative)
+<a name="l00183"></a>00183 {
+<a name="l00184"></a>00184     <span class="keywordflow">if</span> (bits<=0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">integer::zero</a>();
 <a name="l00185"></a>00185 
-<a name="l00186"></a>00186 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">seed_fallback</a>() {
-<a name="l00187"></a>00187     generator_t gen;
-<a name="l00188"></a>00188     gen.seed_fallback();
-<a name="l00189"></a>00189 }
-<a name="l00190"></a>00190 
-<a name="l00191"></a>00191 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">seed_manual</a>(<span class="keyword">const</span> std::string& value) {
-<a name="l00192"></a>00192     generator_t gen;
-<a name="l00193"></a>00193     gen.seed_manual(value);
-<a name="l00194"></a>00194 }
-<a name="l00195"></a>00195 
-<a name="l00196"></a>00196 <span class="comment">// Returns a positive (unless told otherwise) integer between zero and</span>
-<a name="l00197"></a>00197 <span class="comment">// (1<<bits)-1, inclusive</span>
-<a name="l00198"></a>00198 integer <a class="code" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size</a>(<span class="keywordtype">size_t</span> bits, <span class="keywordtype">bool</span> highBitOn, <span class="keywordtype">bool</span> lowBitOn, <span class="keywordtype">bool</span> canBeNegative) {
-<a name="l00199"></a>00199     <span class="keywordflow">if</span> (bits<=0) <span class="keywordflow">return</span> integer::zero();
-<a name="l00200"></a>00200 
-<a name="l00201"></a>00201     generator_t randomGenerator;
-<a name="l00202"></a>00202 
-<a name="l00203"></a>00203     <span class="keyword">const</span> <span class="keywordtype">size_t</span> cBitsPerIteration=std::numeric_limits<generator_t::result_type>::digits;
-<a name="l00204"></a>00204 
-<a name="l00205"></a>00205     <span class="comment">// Grab a set of random bits, of at least the specified size</span>
-<a name="l00206"></a>00206     <span class="keywordtype">int</span> iterations = (bits+cBitsPerIteration-1) / cBitsPerIteration;
-<a name="l00207"></a>00207     std::vector<generator_t::result_type> v;
-<a name="l00208"></a>00208     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i<iterations; ++i) v.push_back(randomGenerator());
+<a name="l00186"></a>00186     generator_t randomGenerator;
+<a name="l00187"></a>00187     <span class="keyword">const</span> <span class="keywordtype">size_t</span> cBitsPerIteration=std::numeric_limits<generator_t::result_type>::digits;
+<a name="l00188"></a>00188 
+<a name="l00189"></a>00189     <span class="comment">// Grab a set of random bits, of at least the specified size</span>
+<a name="l00190"></a>00190     <span class="keywordtype">size_t</span> iterations = (bits+cBitsPerIteration-1) / cBitsPerIteration;
+<a name="l00191"></a>00191     std::vector<generator_t::result_type> v;
+<a name="l00192"></a>00192     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i<iterations; ++i) v.push_back(randomGenerator());
+<a name="l00193"></a>00193 
+<a name="l00194"></a>00194     <span class="keyword">const</span> <span class="keywordtype">char</span> *vptr=(<span class="keyword">const</span> <span class="keywordtype">char</span> *)&v[0], *vptr_end=vptr+(v.size() * <span class="keyword">sizeof</span>(generator_t::result_type));
+<a name="l00195"></a>00195     integer p=<a class="code" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">from_binary</a>(std::string(vptr, vptr_end));
+<a name="l00196"></a>00196 
+<a name="l00197"></a>00197     <span class="comment">// Trim it to the proper length</span>
+<a name="l00198"></a>00198     <span class="keywordtype">size_t</span> index=(bits/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
+<a name="l00199"></a>00199     <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) << (bits % <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>))-1;
+<a name="l00200"></a>00200     <span class="keywordflow">if</span> (mask==0) { mask=<a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>; --index; }
+<a name="l00201"></a>00201     p._get_data()->digits[index] &= mask;
+<a name="l00202"></a>00202     <span class="keywordflow">for</span> (<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *i=p._get_data()->digits+index+1,
+<a name="l00203"></a>00203         *ie=p._get_data()->digits+p._get_data()->mLength; i<ie; ++i) *i=0;
+<a name="l00204"></a>00204     p._get_data()->skipLeadingZeros();
+<a name="l00205"></a>00205 
+<a name="l00206"></a>00206     <span class="keywordflow">if</span> (highBitOn) <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a>(p, bits-1);
+<a name="l00207"></a>00207     <span class="keywordflow">if</span> (lowBitOn) <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a>(p, 0);
+<a name="l00208"></a>00208     <span class="keywordflow">if</span> (canBeNegative) p._set_negative(randomGenerator() & 0x01);
 <a name="l00209"></a>00209 
-<a name="l00210"></a>00210     <span class="keyword">const</span> <span class="keywordtype">char</span> *vptr=(<span class="keyword">const</span> <span class="keywordtype">char</span> *)&v[0], *vptr_end=vptr+(v.size() * <span class="keyword">sizeof</span>(generator_t::result_type));
-<a name="l00211"></a>00211     integer p=<a class="code" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">from_binary</a>(std::string(vptr, vptr_end));
+<a name="l00210"></a>00210     <span class="keywordflow">return</span> p;
+<a name="l00211"></a>00211 }
 <a name="l00212"></a>00212 
-<a name="l00213"></a>00213     <span class="comment">// Trim it to the proper length</span>
-<a name="l00214"></a>00214     <span class="keywordtype">int</span> index=(bits/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
-<a name="l00215"></a>00215     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> mask=(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(1) << (bits % <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>))-1;
-<a name="l00216"></a>00216     <span class="keywordflow">if</span> (mask==0) { mask=<a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>; --index; }
-<a name="l00217"></a>00217     p._get_data()->digits[index] &= mask;
-<a name="l00218"></a>00218     <span class="keywordflow">for</span> (<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *i=p._get_data()->digits+index+1,
-<a name="l00219"></a>00219         *ie=p._get_data()->digits+p._get_data()->mLength; i<ie; ++i) *i=0;
-<a name="l00220"></a>00220     p._get_data()->skipLeadingZeros();
-<a name="l00221"></a>00221 
-<a name="l00222"></a>00222     <span class="keywordflow">if</span> (highBitOn) <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a>(p, bits-1);
-<a name="l00223"></a>00223     <span class="keywordflow">if</span> (lowBitOn) <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a>(p, 0);
-<a name="l00224"></a>00224     <span class="keywordflow">if</span> (canBeNegative) p._set_negative(randomGenerator() & 0x01);
-<a name="l00225"></a>00225 
-<a name="l00226"></a>00226     <span class="keywordflow">return</span> p;
-<a name="l00227"></a>00227 }
-<a name="l00228"></a>00228 
-<a name="l00229"></a>00229 <span class="keyword">template</span> <>
-<a name="l00230"></a>00230 integer <a class="code" href="namespacexint.html#a989d063e3298649704c804efca714ac6">random<integer></a>(<span class="keyword">const</span> integer& lowest, <span class="keyword">const</span> integer& highest) {
-<a name="l00231"></a>00231     integer range(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(highest-lowest+1));
-<a name="l00232"></a>00232     <span class="keywordflow">return</span> lowest+(<a class="code" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size</a>(<a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(range)) % range);
-<a name="l00233"></a>00233 }
-<a name="l00234"></a>00234 
-<a name="l00235"></a>00235 } <span class="comment">// namespace xint</span>
+<a name="l00213"></a>00213 } <span class="comment">// namespace xint</span>
 </pre></div></div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -308,7 +284,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/roots_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/roots_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/roots_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -62,10 +62,6 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a">xint::sqrt</a> (const integer &n)</td></tr>
 </table>
@@ -88,7 +84,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/roots_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/roots_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/roots_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -73,23 +73,28 @@
 <a name="l00017"></a>00017 <span class="keyword">namespace </span>xint {
 <a name="l00018"></a>00018 
 <a name="l00019"></a>00019 integer <a class="code" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a">sqrt</a>(<span class="keyword">const</span> integer& n) {
-<a name="l00020"></a>00020     <span class="keywordflow">if</span> (n.sign() <= 0) <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">integer::zero</a>();
-<a name="l00021"></a>00021 
-<a name="l00022"></a>00022     <span class="comment">// Initial guess is half the length of n, in bits</span>
-<a name="l00023"></a>00023     integer guess;
-<a name="l00024"></a>00024     <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a>(guess, <a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(n)/2);
-<a name="l00025"></a>00025 
-<a name="l00026"></a>00026     <span class="comment">// Now refine it until we're as close as integers can get</span>
-<a name="l00027"></a>00027     <span class="keywordflow">while</span> (1) {
-<a name="l00028"></a>00028         integer guess2=(guess + (n/guess)) >> 1;
-<a name="l00029"></a>00029         <span class="keywordflow">if</span> (guess == guess2) <span class="keywordflow">break</span>;
-<a name="l00030"></a>00030         guess=guess2;
-<a name="l00031"></a>00031     }
-<a name="l00032"></a>00032 
-<a name="l00033"></a>00033     <span class="keywordflow">return</span> guess;
-<a name="l00034"></a>00034 }
-<a name="l00035"></a>00035 
-<a name="l00036"></a>00036 } <span class="comment">// namespace xint</span>
+<a name="l00020"></a>00020     <span class="keywordflow">if</span> (n.sign() < 0) {
+<a name="l00021"></a>00021         <span class="keywordflow">if</span> (<a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>()) <span class="keywordflow">throw</span> cannot_represent(<span class="stringliteral">"library cannot "</span>
+<a name="l00022"></a>00022             <span class="stringliteral">"represent imaginary values (tried to take sqrt of negative "</span>
+<a name="l00023"></a>00023             <span class="stringliteral">"number)"</span>);
+<a name="l00024"></a>00024         <span class="keywordflow">else</span> <span class="keywordflow">return</span> integer(not_a_number());
+<a name="l00025"></a>00025     } <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="l00026"></a>00026 
+<a name="l00027"></a>00027     <span class="comment">// Initial guess is half the length of n, in bits</span>
+<a name="l00028"></a>00028     integer guess;
+<a name="l00029"></a>00029     <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a>(guess, <a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(n)/2);
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031     <span class="comment">// Now refine it until we're as close as integers can get</span>
+<a name="l00032"></a>00032     <span class="keywordflow">while</span> (1) {
+<a name="l00033"></a>00033         integer guess2=(guess + (n/guess)) >> 1;
+<a name="l00034"></a>00034         <span class="keywordflow">if</span> (guess == guess2) <span class="keywordflow">break</span>;
+<a name="l00035"></a>00035         guess=guess2;
+<a name="l00036"></a>00036     }
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038     <span class="keywordflow">return</span> guess;
+<a name="l00039"></a>00039 }
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041 } <span class="comment">// namespace xint</span>
 </pre></div></div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -109,7 +114,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t-members.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t-members.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -58,25 +59,25 @@
 <div class="contents">
 <h1>xint::detail::data_t Member List</h1>This is the complete list of members for <a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">add</a>(const data_t &addend)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(int digits, bool copydigits=false)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a>(size_t digits, bool copydigits=false)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">attach</a>()</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#acc02d0c3b8c867ff12af155dae8445dd">copy</a>(const data_t *c, int extraDigits=0)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a66862f94545c953f6604b4347205277b">copy</a>(const data_t *c, size_t extraDigits=0)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a9309667d3ac573346294e7b6e18c67ff">data_t</a>(digit_t initial1=0, digit_t initial2=0, digit_t initial3=0)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#ae5afaa677468a9624ed3fb04318fd2a3">data_t</a>(data_t *c)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">detach</a>()</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#aaf6f202db416ad8fe18ec8a6c8c48904">invert</a>()</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">mAllocated</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">negate</a>()</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a57fc3966c44d09daeede53899673cde3">quickset</a>(digit_t d1, digit_t d2=0, digit_t d3=0)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">realloc</a>(int newdigits)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">shift_left</a>(int byBits)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">shift_right</a>(int byBits)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a2bb2c79d47f2fda3605f34b80cb58b8b">realloc</a>(size_t newdigits)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a72785130c7c6490af874f450cf6e0086">shift_left</a>(size_t byBits)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a432ace7094bca306dcba254f862e2428">shift_right</a>(size_t byBits)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>()</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">subtract</a>(const data_t &subtrahend)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(digit_t *p, size_t count)</td><td><a class="el" href="structxint_1_1detail_1_1data__t.html">xint::detail::data_t</a></td><td></td></tr>
@@ -99,7 +100,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -70,23 +71,23 @@
 <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#ae5afaa677468a9624ed3fb04318fd2a3">data_t</a> (<a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> *c)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">attach</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">detach</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a> (int <a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, bool copydigits=false)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">realloc</a> (int newdigits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a4fe3935e29883193166966c49cd73139">alloc</a> (size_t <a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, bool copydigits=false)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a2bb2c79d47f2fda3605f34b80cb58b8b">realloc</a> (size_t newdigits)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#acc02d0c3b8c867ff12af155dae8445dd">copy</a> (const <a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> *c, int extraDigits=0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a66862f94545c953f6604b4347205277b">copy</a> (const <a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> *c, size_t extraDigits=0)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a> (<a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *p, size_t count)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a57fc3966c44d09daeede53899673cde3">quickset</a> (<a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d1, <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d2=0, <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d3=0)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#aaf6f202db416ad8fe18ec8a6c8c48904">invert</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#aa0dd7ef67ccdef3c3139f4afc84219bd">negate</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a143e6814a7aa20a0d61ed616b9940b2e">add</a> (const <a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> &addend)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">subtract</a> (const <a class="el" href="structxint_1_1detail_1_1data__t.html">data_t</a> &subtrahend)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">shift_left</a> (int byBits)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">shift_right</a> (int byBits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a72785130c7c6490af874f450cf6e0086">shift_left</a> (size_t byBits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a432ace7094bca306dcba254f862e2428">shift_right</a> (size_t byBits)</td></tr>
 <tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">mLength</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">mAllocated</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a> [<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>]</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a> [<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">QuickDigits::count</a>]</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">std::vector< <a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t.html#afb2d8673fc5d99d2ea006cd0aa32b744">mIsNegative</a></td></tr>
@@ -173,20 +174,20 @@
 
 <p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00198">198</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
 
-<p>References <a class="el" href="xint_8hpp_source.html#l00072">xint::detail::digit_overflowbit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00062">realloc()</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
+<p>References <a class="el" href="xint_8hpp_source.html#l00045">xint::detail::digit_overflowbit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00062">realloc()</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00132">xint::integer::operator+=()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00136">xint::integer::operator+=()</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a8b5fe67dc7c5808306707f2210ab5658"></a><!-- doxytag: member="xint::detail::data_t::alloc" ref="a8b5fe67dc7c5808306707f2210ab5658" args="(int digits, bool copydigits=false)" -->
+<a class="anchor" id="a4fe3935e29883193166966c49cd73139"></a><!-- doxytag: member="xint::detail::data_t::alloc" ref="a4fe3935e29883193166966c49cd73139" args="(size_t digits, bool copydigits=false)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname">void xint::detail::data_t::alloc </td>
           <td>(</td>
-          <td class="paramtype">int </td>
+          <td class="paramtype">size_t </td>
           <td class="paramname"> <em>digits</em>, </td>
         </tr>
         <tr>
@@ -208,7 +209,7 @@
 
 <p>References <a class="el" href="xint__data__t_8hpp_source.html#l00038">xint::detail::data_t::QuickDigits::count</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mAllocated</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">mQuickDigits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00045">mStorage</a>, and <a class="el" href="data__t_8cpp_source.html#l00165">zero()</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00061">xint::integer::_init()</a>, <a class="el" href="data__t_8cpp_source.html#l00153">copy()</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00062">realloc()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00065">xint::integer::_init()</a>, <a class="el" href="data__t_8cpp_source.html#l00153">copy()</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00062">realloc()</a>.</p>
 
 </div>
 </div>
@@ -231,11 +232,11 @@
 
 <p>References <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00080">xint::integer::_attach()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00084">xint::integer::_attach()</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="acc02d0c3b8c867ff12af155dae8445dd"></a><!-- doxytag: member="xint::detail::data_t::copy" ref="acc02d0c3b8c867ff12af155dae8445dd" args="(const data_t *c, int extraDigits=0)" -->
+<a class="anchor" id="a66862f94545c953f6604b4347205277b"></a><!-- doxytag: member="xint::detail::data_t::copy" ref="a66862f94545c953f6604b4347205277b" args="(const data_t *c, size_t extraDigits=0)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -248,7 +249,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">int </td>
+          <td class="paramtype">size_t </td>
           <td class="paramname"> <em>extraDigits</em> = <code>0</code></td><td> </td>
         </tr>
         <tr>
@@ -285,7 +286,7 @@
 
 <p>References <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00084">xint::integer::_detach()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00088">xint::integer::_detach()</a>.</p>
 
 </div>
 </div>
@@ -306,7 +307,7 @@
 
 <p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00170">170</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
 
-<p>References <a class="el" href="xint_8hpp_source.html#l00072">xint::detail::digit_overflowbit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00049">mIsNegative</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
+<p>References <a class="el" href="xint_8hpp_source.html#l00045">xint::detail::digit_overflowbit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00049">mIsNegative</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
 
 </div>
 </div>
@@ -370,14 +371,14 @@
 
 </div>
 </div>
-<a class="anchor" id="a935c926cadfe0b92efe3b03201353862"></a><!-- doxytag: member="xint::detail::data_t::realloc" ref="a935c926cadfe0b92efe3b03201353862" args="(int newdigits)" -->
+<a class="anchor" id="a2bb2c79d47f2fda3605f34b80cb58b8b"></a><!-- doxytag: member="xint::detail::data_t::realloc" ref="a2bb2c79d47f2fda3605f34b80cb58b8b" args="(size_t newdigits)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname">void xint::detail::data_t::realloc </td>
           <td>(</td>
-          <td class="paramtype">int </td>
+          <td class="paramtype">size_t </td>
           <td class="paramname"> <em>newdigits</em></td>
           <td> ) </td>
           <td><code> [inline]</code></td>
@@ -390,18 +391,18 @@
 
 <p>References <a class="el" href="data__t_8cpp_source.html#l00085">alloc()</a>.</p>
 
-<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, and <a class="el" href="data__t_8cpp_source.html#l00251">shift_left()</a>.</p>
+<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, and <a class="el" href="data__t_8cpp_source.html#l00252">shift_left()</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a4375d95de49470025539a9b41429bcf6"></a><!-- doxytag: member="xint::detail::data_t::shift_left" ref="a4375d95de49470025539a9b41429bcf6" args="(int byBits)" -->
+<a class="anchor" id="a72785130c7c6490af874f450cf6e0086"></a><!-- doxytag: member="xint::detail::data_t::shift_left" ref="a72785130c7c6490af874f450cf6e0086" args="(size_t byBits)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname">void xint::detail::data_t::shift_left </td>
           <td>(</td>
-          <td class="paramtype">int </td>
+          <td class="paramtype">size_t </td>
           <td class="paramname"> <em>byBits</em></td>
           <td> ) </td>
           <td></td>
@@ -410,22 +411,22 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00251">251</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00252">252</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
 
-<p>References <a class="el" href="xint_8hpp_source.html#l00069">xint::detail::bits_per_digit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00062">realloc()</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
+<p>References <a class="el" href="xint_8hpp_source.html#l00042">xint::detail::bits_per_digit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00062">realloc()</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00184">xint::integer::operator<<=()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00188">xint::integer::operator<<=()</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aacee3802bd433c989d9fdc6a1731019d"></a><!-- doxytag: member="xint::detail::data_t::shift_right" ref="aacee3802bd433c989d9fdc6a1731019d" args="(int byBits)" -->
+<a class="anchor" id="a432ace7094bca306dcba254f862e2428"></a><!-- doxytag: member="xint::detail::data_t::shift_right" ref="a432ace7094bca306dcba254f862e2428" args="(size_t byBits)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname">void xint::detail::data_t::shift_right </td>
           <td>(</td>
-          <td class="paramtype">int </td>
+          <td class="paramtype">size_t </td>
           <td class="paramname"> <em>byBits</em></td>
           <td> ) </td>
           <td></td>
@@ -434,11 +435,11 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00279">279</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
+<p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00280">280</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
 
-<p>References <a class="el" href="xint_8hpp_source.html#l00069">xint::detail::bits_per_digit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
+<p>References <a class="el" href="xint_8hpp_source.html#l00042">xint::detail::bits_per_digit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00192">xint::integer::operator>>=()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00196">xint::integer::operator>>=()</a>.</p>
 
 </div>
 </div>
@@ -461,7 +462,7 @@
 
 <p>References <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00049">mIsNegative</a>, and <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00061">xint::integer::_init()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="data__t_8cpp_source.html#l00251">shift_left()</a>, <a class="el" href="data__t_8cpp_source.html#l00279">shift_right()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">subtract()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00065">xint::integer::_init()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="data__t_8cpp_source.html#l00252">shift_left()</a>, <a class="el" href="data__t_8cpp_source.html#l00280">shift_right()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">subtract()</a>.</p>
 
 </div>
 </div>
@@ -483,9 +484,9 @@
 
 <p>Definition at line <a class="el" href="data__t_8cpp_source.html#l00225">225</a> of file <a class="el" href="data__t_8cpp_source.html">data_t.cpp</a>.</p>
 
-<p>References <a class="el" href="xint_8hpp_source.html#l00072">xint::detail::digit_overflowbit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
+<p>References <a class="el" href="xint_8hpp_source.html#l00045">xint::detail::digit_overflowbit</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00042">digits</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00048">mCopies</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00041">mLength</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00146">xint::integer::operator-=()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00150">xint::integer::operator-=()</a>.</p>
 
 </div>
 </div>
@@ -534,16 +535,16 @@
 
 <p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00042">42</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00210">xint::integer::_get_digit()</a>, <a class="el" href="integer_8cpp_source.html#l00061">xint::integer::_init()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, <a class="el" href="data__t_8cpp_source.html#l00085">alloc()</a>, <a class="el" href="data__t_8cpp_source.html#l00153">copy()</a>, <a class="el" href="data__t_8cpp_source.html#l00022">data_t()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="data__t_8cpp_source.html#l00251">shift_left()</a>, <a class="el" href="data__t_8cpp_source.html#l00279">shift_right()</a>, <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">subtract()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00214">xint::integer::_get_digit()</a>, <a class="el" href="integer_8cpp_source.html#l00065">xint::integer::_init()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, <a class="el" href="data__t_8cpp_source.html#l00085">alloc()</a>, <a class="el" href="data__t_8cpp_source.html#l00153">copy()</a>, <a class="el" href="data__t_8cpp_source.html#l00022">data_t()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="data__t_8cpp_source.html#l00252">shift_left()</a>, <a class="el" href="data__t_8cpp_source.html#l00280">shift_right()</a>, <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">subtract()</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a100abfc5841043a6c1c5d5afa2d6cd94"></a><!-- doxytag: member="xint::detail::data_t::mAllocated" ref="a100abfc5841043a6c1c5d5afa2d6cd94" args="" -->
+<a class="anchor" id="a3390530db8333b535f65d3cc01ff5236"></a><!-- doxytag: member="xint::detail::data_t::mAllocated" ref="a3390530db8333b535f65d3cc01ff5236" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">int <a class="el" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">xint::detail::data_t::mAllocated</a></td>
+          <td class="memname">size_t <a class="el" href="structxint_1_1detail_1_1data__t.html#a3390530db8333b535f65d3cc01ff5236">xint::detail::data_t::mAllocated</a></td>
         </tr>
       </table>
 </div>
@@ -568,7 +569,7 @@
 
 <p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00048">48</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00088">xint::integer::_make_unique()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00059">attach()</a>, <a class="el" href="data__t_8cpp_source.html#l00022">data_t()</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00060">detach()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="data__t_8cpp_source.html#l00251">shift_left()</a>, <a class="el" href="data__t_8cpp_source.html#l00279">shift_right()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">subtract()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00092">xint::integer::_make_unique()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00059">attach()</a>, <a class="el" href="data__t_8cpp_source.html#l00022">data_t()</a>, <a class="el" href="xint__data__t_8hpp_source.html#l00060">detach()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="data__t_8cpp_source.html#l00252">shift_left()</a>, <a class="el" href="data__t_8cpp_source.html#l00280">shift_right()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">subtract()</a>.</p>
 
 </div>
 </div>
@@ -585,16 +586,16 @@
 
 <p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00049">49</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
 
-<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00153">copy()</a>, <a class="el" href="data__t_8cpp_source.html#l00022">data_t()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="integer_8cpp_source.html#l00115">xint::integer::sign()</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
+<p>Referenced by <a class="el" href="data__t_8cpp_source.html#l00153">copy()</a>, <a class="el" href="data__t_8cpp_source.html#l00022">data_t()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="integer_8cpp_source.html#l00119">xint::integer::sign()</a>, and <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ac594577f74057c94ad70a3503068d286"></a><!-- doxytag: member="xint::detail::data_t::mLength" ref="ac594577f74057c94ad70a3503068d286" args="" -->
+<a class="anchor" id="a599933d272e3592b2d0985ca7f7c72e2"></a><!-- doxytag: member="xint::detail::data_t::mLength" ref="a599933d272e3592b2d0985ca7f7c72e2" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">int <a class="el" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">xint::detail::data_t::mLength</a></td>
+          <td class="memname">size_t <a class="el" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">xint::detail::data_t::mLength</a></td>
         </tr>
       </table>
 </div>
@@ -602,7 +603,7 @@
 
 <p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00041">41</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
 
-<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00214">xint::integer::_get_length()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, <a class="el" href="data__t_8cpp_source.html#l00085">alloc()</a>, <a class="el" href="data__t_8cpp_source.html#l00153">copy()</a>, <a class="el" href="data__t_8cpp_source.html#l00022">data_t()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, <a class="el" href="integer_8cpp_source.html#l00132">xint::integer::operator+=()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="data__t_8cpp_source.html#l00251">shift_left()</a>, <a class="el" href="data__t_8cpp_source.html#l00279">shift_right()</a>, <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">subtract()</a>.</p>
+<p>Referenced by <a class="el" href="integer_8cpp_source.html#l00218">xint::integer::_get_length()</a>, <a class="el" href="data__t_8cpp_source.html#l00198">add()</a>, <a class="el" href="data__t_8cpp_source.html#l00085">alloc()</a>, <a class="el" href="data__t_8cpp_source.html#l00153">copy()</a>, <a class="el" href="data__t_8cpp_source.html#l00022">data_t()</a>, <a class="el" href="data__t_8cpp_source.html#l00170">invert()</a>, <a class="el" href="data__t_8cpp_source.html#l00191">negate()</a>, <a class="el" href="integer_8cpp_source.html#l00136">xint::integer::operator+=()</a>, <a class="el" href="data__t_8cpp_source.html#l00074">quickset()</a>, <a class="el" href="data__t_8cpp_source.html#l00252">shift_left()</a>, <a class="el" href="data__t_8cpp_source.html#l00280">shift_right()</a>, <a class="el" href="data__t_8cpp_source.html#l00067">skipLeadingZeros()</a>, and <a class="el" href="data__t_8cpp_source.html#l00225">subtract()</a>.</p>
 
 </div>
 </div>
@@ -611,7 +612,7 @@
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> <a class="el" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">xint::detail::data_t::mQuickDigits</a>[<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>]</td>
+          <td class="memname"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> <a class="el" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">xint::detail::data_t::mQuickDigits</a>[<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">QuickDigits::count</a>]</td>
         </tr>
       </table>
 </div>
@@ -663,7 +664,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t_1_1_quick_digits-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t_1_1_quick_digits-members.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t_1_1_quick_digits-members.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,16 +51,17 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
 </div>
 <div class="contents">
 <h1>xint::detail::data_t::QuickDigits Member List</h1>This is the complete list of members for <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a>, including all inherited members.<table>
-  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">count</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td><td><code> [static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">intbits</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td><td><code> [static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td><td><code> [static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">count</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#af5323a8fbfdfaa3cae371872ec865fc5">intbits</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">minimum</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092">suggested</a></td><td><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td><td><code> [static]</code></td></tr>
 </table></div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -80,7 +81,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t_1_1_quick_digits.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t_1_1_quick_digits.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1data__t_1_1_quick_digits.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -64,21 +65,21 @@
 <p>List of all members.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static const int </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">intbits</a> = std::numeric_limits<unsigned int>::<a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static const int </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a> = (2*<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">intbits</a>/<a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static const int </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a> = 3</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static const int </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">count</a> = (<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a> < <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a> ? <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a> : <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a>)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#af5323a8fbfdfaa3cae371872ec865fc5">intbits</a> = std::numeric_limits<unsigned int>::<a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092">suggested</a> = (2*<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#af5323a8fbfdfaa3cae371872ec865fc5">intbits</a>/<a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">minimum</a> = 3</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">count</a> = (<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092">suggested</a> < <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">minimum</a> ? <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">minimum</a> : <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092">suggested</a>)</td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 
 <p>Definition at line <a class="el" href="xint__data__t_8hpp_source.html#l00033">33</a> of file <a class="el" href="xint__data__t_8hpp_source.html">xint_data_t.hpp</a>.</p>
 <hr/><h2>Member Data Documentation</h2>
-<a class="anchor" id="a4e25c9e14a1730c37e2c7383c46679ec"></a><!-- doxytag: member="xint::detail::data_t::QuickDigits::count" ref="a4e25c9e14a1730c37e2c7383c46679ec" args="" -->
+<a class="anchor" id="ac691b42c4404e59ae07f89146e722736"></a><!-- doxytag: member="xint::detail::data_t::QuickDigits::count" ref="ac691b42c4404e59ae07f89146e722736" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const int <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">xint::detail::data_t::QuickDigits::count</a> = (<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a> < <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a> ? <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a> : <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a>)<code> [static]</code></td>
+          <td class="memname">const size_t <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">xint::detail::data_t::QuickDigits::count</a> = (<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092">suggested</a> < <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">minimum</a> ? <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">minimum</a> : <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092">suggested</a>)<code> [static]</code></td>
         </tr>
       </table>
 </div>
@@ -90,12 +91,12 @@
 
 </div>
 </div>
-<a class="anchor" id="a8c823c135d72766b46249e6585585859"></a><!-- doxytag: member="xint::detail::data_t::QuickDigits::intbits" ref="a8c823c135d72766b46249e6585585859" args="" -->
+<a class="anchor" id="af5323a8fbfdfaa3cae371872ec865fc5"></a><!-- doxytag: member="xint::detail::data_t::QuickDigits::intbits" ref="af5323a8fbfdfaa3cae371872ec865fc5" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const int <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">xint::detail::data_t::QuickDigits::intbits</a> = std::numeric_limits<unsigned int>::<a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a><code> [static]</code></td>
+          <td class="memname">const size_t <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#af5323a8fbfdfaa3cae371872ec865fc5">xint::detail::data_t::QuickDigits::intbits</a> = std::numeric_limits<unsigned int>::<a class="el" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a><code> [static]</code></td>
         </tr>
       </table>
 </div>
@@ -105,12 +106,12 @@
 
 </div>
 </div>
-<a class="anchor" id="a5ee62e707000ba18c444ae3aeec89d75"></a><!-- doxytag: member="xint::detail::data_t::QuickDigits::minimum" ref="a5ee62e707000ba18c444ae3aeec89d75" args="" -->
+<a class="anchor" id="aeb7c43d282f871305e76936664cee25f"></a><!-- doxytag: member="xint::detail::data_t::QuickDigits::minimum" ref="aeb7c43d282f871305e76936664cee25f" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const int <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">xint::detail::data_t::QuickDigits::minimum</a> = 3<code> [static]</code></td>
+          <td class="memname">const size_t <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">xint::detail::data_t::QuickDigits::minimum</a> = 3<code> [static]</code></td>
         </tr>
       </table>
 </div>
@@ -120,12 +121,12 @@
 
 </div>
 </div>
-<a class="anchor" id="a1d6ffbc11a8c4ab2617a391f843a8a5e"></a><!-- doxytag: member="xint::detail::data_t::QuickDigits::suggested" ref="a1d6ffbc11a8c4ab2617a391f843a8a5e" args="" -->
+<a class="anchor" id="a789eadb40cb8c034823ecb5fb6094092"></a><!-- doxytag: member="xint::detail::data_t::QuickDigits::suggested" ref="a789eadb40cb8c034823ecb5fb6094092" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const int <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">xint::detail::data_t::QuickDigits::suggested</a> = (2*<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">intbits</a>/<a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>)<code> [static]</code></td>
+          <td class="memname">const size_t <a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092">xint::detail::data_t::QuickDigits::suggested</a> = (2*<a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#af5323a8fbfdfaa3cae371872ec865fc5">intbits</a>/<a class="el" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>)<code> [static]</code></td>
         </tr>
       </table>
 </div>
@@ -157,7 +158,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1token.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1token.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/structxint_1_1detail_1_1token.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -51,6 +51,7 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
+      <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -64,7 +65,7 @@
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00078">78</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
+<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00051">51</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
 <hr/>The documentation for this struct was generated from the following file:<ul>
 <li>I:/boost-sandbox/xInt/boost/xint/<a class="el" href="xint_8hpp_source.html">xint.hpp</a></li>
 </ul>
@@ -87,7 +88,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/xint_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/xint_8hpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint_8hpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -65,40 +65,45 @@
 <code>#include <boost/integer.hpp></code><br/>
 <code>#include <boost/cstdint.hpp></code><br/>
 <code>#include <boost/function.hpp></code><br/>
+<code>#include <boost/type_traits.hpp></code><br/>
 <code>#include <boost/static_assert.hpp></code><br/>
+<code>#include <boost/random/uniform_int.hpp></code><br/>
+<code>#include <boost/random/variate_generator.hpp></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  </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1token.html">xint::detail::token</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </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="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1random__generator.html">xint::detail::random_generator< T ></a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1integer.html">xint::integer</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </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="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__base.html">xint::invalid_base</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__digit.html">xint::invalid_digit</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1invalid__modulus.html">xint::invalid_modulus</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1divide__by__zero.html">xint::divide_by_zero</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1cannot__represent.html">xint::cannot_represent</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1too__big.html">xint::too_big</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">class  </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="memItemLeft" align="right" valign="top">class  </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="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classxint_1_1overflow__error.html">xint::overflow_error</a></td></tr>
 <tr><td colspan="2"><h2>Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html">xint::detail</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>implementation details, normal users should not need to use these. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Typedefs</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef boost::uintmax_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">xint::detail::doubledigit_t</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef boost::uint_t<br class="typebreak"/>
 < std::numeric_limits<br class="typebreak"/>
 < doubledigit_t >::digits/2 ><br class="typebreak"/>
 ::fast </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">xint::detail::digit_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef boost::function<br class="typebreak"/>
+< unsigned int()> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#a9c9dc00dbbe287492696635ed41dce44">xint::detail::random_t</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef std::auto_ptr<br class="typebreak"/>
 < detail::token > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">xint::token</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef boost::function< bool()> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">xint::callback_t</a></td></tr>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html#ada65da12642b63f663b50382068a607f">xint::detail::set_random_generator</a> (random_t fn, base_random_generator *obj)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int </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">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">xint::exceptions_allowed</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">token </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">xint::block_exceptions</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">token </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">xint::allow_exceptions</a> ()</td></tr>
@@ -142,37 +147,28 @@
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a594bd29593aad9a1c047af22e91e749c">xint::sqrmod</a> (const integer &n, const integer &modulus)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a1f8b43b537ff9de1d5612ed228a8fbe1">xint::powmod</a> (const integer &n, const integer &exponent, const integer &modulus, bool noMontgomery)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">xint::invmod</a> (const integer &n, const integer &m)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">xint::seed_secure</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">xint::seed_fallback</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">xint::seed_manual</a> (const std::string &value)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">xint::random_by_size</a> (size_t bits, bool highBitOn, bool lowBitOn, bool canBeNegative)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">xint::random</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae04e871bc550a858d66901f64d42b17f">xint::random</a> (const T &lessThanThis)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a342a8b817f74234c393fd9ed32f13f5f">xint::random</a> (const T &lowest, const T &highest)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab2d0fe2cf11b25d26c1b86280cb4dc99">xint::set_random_generator</a> (T &gen)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">xint::random_by_size</a> (size_t bits, bool highBitOn, bool lowBitOn, bool canBeNegative)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f">xint::is_prime</a> (const integer &n, callback_t callback)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#af148d73dc33718f9d893dac821ab699e">xint::random_prime</a> (size_t sizeInBits, callback_t callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#aab9cb2021cb63480542f266a67c50314">operator!</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a2271282006f914e5442f53508f6c5355">operator<</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a328006b6ca161372a3cd91ca199a56df">operator></a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#aa6909705d9662396b60b7dca7193895c">operator<=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a9b081858436ec650e95e857faff0cf4e">operator>=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a255c817c8569ac9365878a9476bfe3b3">operator==</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a7f95e1c65d52023897d57fac225ba297">operator!=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operator+</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &a)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operator-</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &a)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#aaaba5fbb60778e5deaf88549f5ec0278">operator+</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a2211cadf1f4c3abe22309fe025449687">operator-</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a17b0f742cf4240f0453ecdc690527f55">operator*</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a92017cd694e753636affcb05919a7dc2">operator/</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a33c06e966e5497a57df414783f4bd32d">operator%</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a279ea8fa85f56774ecf87a9f70e44986">operator&</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#ae43c9ba6b179f6336284e00609951c7c">operator|</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classxint_1_1integer.html">xint::integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="xint_8hpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">operator^</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n2)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template<> </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#a989d063e3298649704c804efca714ac6">xint::random< integer ></a> (const integer &lowest, const integer &highest)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </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> &num1)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a4f4a4771bf443e6724abbd18173ecc86">xint::operator<</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a1229d1f1efbdf3ffeac8b2964ca66093">xint::operator></a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ab9d5f34c4d4bed1c86380d4f72edcd9b">xint::operator<=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a766324a6f216f3b49a3e9aa885e9531c">xint::operator>=</a> (const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </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> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </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> &num1, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const integer & </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">xint::operator+</a> (const integer &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">xint::operator-</a> (const integer &a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a211ff80bb081c08674272cfcae736a93">xint::operator+</a> (const integer &num1, const integer &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a1e09422b575c6d29ea5c0d627b79c28e">xint::operator-</a> (const integer &num1, const integer &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aea36ad9037f109576d4f95ec72b5c825">xint::operator*</a> (const integer &num1, const integer &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a701217f7824c3e935fca25147da23807">xint::operator/</a> (const integer &num1, const integer &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#ae0505757986a9c7133552552471aae24">xint::operator%</a> (const integer &num1, const integer &num2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a742550f1c62ac8c2bde8e1ceab2a466c">xint::operator&</a> (const integer &n1, const integer &n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afa8f2a0ac996ad45efc73b2aa056cae2">xint::operator|</a> (const integer &n1, const integer &n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a81722cd257bc950ba7c56a202492544f">xint::operator^</a> (const integer &n1, const integer &n2)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template<typename charT , typename traits > </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream< charT, <br class="typebreak"/>
 traits > & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">xint::operator<<</a> (std::basic_ostream< charT, traits > &out, const <a class="el" href="classxint_1_1integer.html">xint::integer</a> &n)</td></tr>
@@ -189,505 +185,6 @@
 <tr><td class="memItemLeft" align="right" valign="top">const callback_t </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">xint::autobase</a> = (std::numeric_limits<size_t>::max)()</td></tr>
 </table>
-<hr/><h2>Function Documentation</h2>
-<a class="anchor" id="aab9cb2021cb63480542f266a67c50314"></a><!-- doxytag: member="xint.hpp::operator!" ref="aab9cb2021cb63480542f266a67c50314" args="(const xint::integer &n1)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool operator! </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em></td>
-          <td> ) </td>
-          <td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00054">54</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
-
-<p>References <a class="el" href="integer_8cpp_source.html#l00115">xint::integer::sign()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7f95e1c65d52023897d57fac225ba297"></a><!-- doxytag: member="xint.hpp::operator!=" ref="a7f95e1c65d52023897d57fac225ba297" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool operator!= </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00056">56</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a33c06e966e5497a57df414783f4bd32d"></a><!-- doxytag: member="xint.hpp::operator%" ref="a33c06e966e5497a57df414783f4bd32d" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator% </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00022">22</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">xint::mod()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a279ea8fa85f56774ecf87a9f70e44986"></a><!-- doxytag: member="xint.hpp::operator&" ref="a279ea8fa85f56774ecf87a9f70e44986" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator& </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00023">23</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">xint::bitwise_and()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a17b0f742cf4240f0453ecdc690527f55"></a><!-- doxytag: member="xint.hpp::operator*" ref="a17b0f742cf4240f0453ecdc690527f55" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator* </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00020">20</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">xint::multiply()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aaaba5fbb60778e5deaf88549f5ec0278"></a><!-- doxytag: member="xint.hpp::operator+" ref="aaaba5fbb60778e5deaf88549f5ec0278" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator+ </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00018">18</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">xint::add()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae6250b27c1717d3dfd4269c899ea1a0f"></a><!-- doxytag: member="xint.hpp::operator+" ref="ae6250b27c1717d3dfd4269c899ea1a0f" args="(const xint::integer &a)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const <a class="el" href="classxint_1_1integer.html">xint::integer</a>& operator+ </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>a</em></td>
-          <td> ) </td>
-          <td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00016">16</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2211cadf1f4c3abe22309fe025449687"></a><!-- doxytag: member="xint.hpp::operator-" ref="a2211cadf1f4c3abe22309fe025449687" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator- </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00019">19</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">xint::subtract()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a686d2e5cc5766a1d8bc21c77f01ffa19"></a><!-- doxytag: member="xint.hpp::operator-" ref="a686d2e5cc5766a1d8bc21c77f01ffa19" args="(const xint::integer &a)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator- </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>a</em></td>
-          <td> ) </td>
-          <td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00017">17</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">xint::negate()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a92017cd694e753636affcb05919a7dc2"></a><!-- doxytag: member="xint.hpp::operator/" ref="a92017cd694e753636affcb05919a7dc2" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator/ </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00021">21</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">xint::divide()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2271282006f914e5442f53508f6c5355"></a><!-- doxytag: member="xint.hpp::operator<" ref="a2271282006f914e5442f53508f6c5355" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool operator< </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00057">57</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa6909705d9662396b60b7dca7193895c"></a><!-- doxytag: member="xint.hpp::operator<=" ref="aa6909705d9662396b60b7dca7193895c" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool operator<= </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00059">59</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a255c817c8569ac9365878a9476bfe3b3"></a><!-- doxytag: member="xint.hpp::operator==" ref="a255c817c8569ac9365878a9476bfe3b3" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool operator== </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00055">55</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a328006b6ca161372a3cd91ca199a56df"></a><!-- doxytag: member="xint.hpp::operator>" ref="a328006b6ca161372a3cd91ca199a56df" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool operator> </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00058">58</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9b081858436ec650e95e857faff0cf4e"></a><!-- doxytag: member="xint.hpp::operator>=" ref="a9b081858436ec650e95e857faff0cf4e" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool operator>= </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="compare_8cpp_source.html#l00060">60</a> of file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">xint::compare()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1e8b5454f6cf0c613a259a6ad038b6ac"></a><!-- doxytag: member="xint.hpp::operator^" ref="a1e8b5454f6cf0c613a259a6ad038b6ac" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator^ </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00025">25</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">xint::bitwise_xor()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae43c9ba6b179f6336284e00609951c7c"></a><!-- doxytag: member="xint.hpp::operator|" ref="ae43c9ba6b179f6336284e00609951c7c" args="(const xint::integer &n1, const xint::integer &n2)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classxint_1_1integer.html">xint::integer</a> operator| </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n1</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classxint_1_1integer.html">xint::integer</a> & </td>
-          <td class="paramname"> <em>n2</em></td><td> </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="operators_8cpp_source.html#l00024">24</a> of file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">xint::bitwise_or()</a>.</p>
-
-</div>
-</div>
 </div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -707,7 +204,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/xint_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/xint_8hpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint_8hpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -55,435 +55,486 @@
     </ul>
   </div>
 <h1>I:/boost-sandbox/xInt/boost/xint/xint.hpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
-<a name="l00037"></a>00037 <span class="comment">//    Copyright 2010 by Chad Nelson</span>
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039 <span class="comment">//    Distributed under the Boost Software License, Version 1.0.</span>
-<a name="l00040"></a>00040 <span class="comment">//    See accompanying file LICENSE_1_0.txt or copy at</span>
-<a name="l00041"></a>00041 <span class="comment">//    http://www.boost.org/LICENSE_1_0.txt>
-<a name="l00042"></a>00042 
-<a name="l00043"></a>00043 <span class="preprocessor">#ifndef BOOST_INCLUDED_XINT_H</span>
-<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_INCLUDED_XINT_H</span>
-<a name="l00045"></a>00045 <span class="preprocessor"></span>
-<a name="l00046"></a>00046 <span class="preprocessor">#include <string></span>
-<a name="l00047"></a>00047 <span class="preprocessor">#include <limits></span>
-<a name="l00048"></a>00048 <span class="preprocessor">#include <memory></span> <span class="comment">// for auto_ptr</span>
-<a name="l00049"></a>00049 <span class="preprocessor">#include <cstddef></span> <span class="comment">// for size_t</span>
-<a name="l00050"></a>00050 <span class="preprocessor">#include <iostream></span>
-<a name="l00051"></a>00051 <span class="preprocessor">#include <stdexcept></span>
-<a name="l00052"></a>00052 <span class="preprocessor">#include <boost/integer.hpp></span>
-<a name="l00053"></a>00053 <span class="preprocessor">#include <boost/cstdint.hpp></span>
-<a name="l00054"></a>00054 <span class="preprocessor">#include <boost/function.hpp></span>
-<a name="l00055"></a>00055 <span class="preprocessor">#include <boost/static_assert.hpp></span>
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment">    The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment">    A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment">    Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment">    Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment">    See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment">        http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment">    This is the main header file for the library, and the only one that</span>
+<a name="l00012"></a>00012 <span class="comment">    programs using it should need to include.</span>
+<a name="l00013"></a>00013 <span class="comment">*/</span>
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 <span class="preprocessor">#ifndef BOOST_INCLUDED_XINT_H</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_INCLUDED_XINT_H</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include <string></span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include <limits></span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include <memory></span> <span class="comment">// for auto_ptr</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include <cstddef></span> <span class="comment">// for size_t</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include <iostream></span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include <stdexcept></span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include <boost/integer.hpp></span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include <boost/cstdint.hpp></span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include <boost/function.hpp></span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include <boost/type_traits.hpp></span>
+<a name="l00028"></a>00028 <span class="preprocessor">#include <boost/static_assert.hpp></span>
+<a name="l00029"></a>00029 <span class="preprocessor">#include <boost/random/uniform_int.hpp></span>
+<a name="l00030"></a>00030 <span class="preprocessor">#include <boost/random/variate_generator.hpp></span>
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 <span class="keyword">namespace </span>xint {
+<a name="l00033"></a>00033 
+<a name="l00035"></a>00035 <span class="comment">// The boring-but-necessary preliminary stuff</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="keyword">namespace </span>detail {
+<a name="l00038"></a><a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">00038</a>     <span class="keyword">typedef</span> boost::uintmax_t <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>;
+<a name="l00039"></a>00039     <span class="keyword">typedef</span> boost::uint_t<std::numeric_limits<doubledigit_t>::digits / 2>::fast
+<a name="l00040"></a><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">00040</a>         <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>;
+<a name="l00041"></a>00041 
+<a name="l00042"></a><a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">00042</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<digit_t>::digits;
+<a name="l00043"></a><a class="code" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">00043</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) << (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>-1));
+<a name="l00044"></a><a class="code" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">00044</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) << (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>*2-1));
+<a name="l00045"></a><a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">00045</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) << <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
+<a name="l00046"></a><a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">00046</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="l00047"></a>00047 
+<a name="l00048"></a>00048     <span class="keyword">const</span> <span class="keyword">extern</span> std::string <a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">nan_text</a>;
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050     <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>;
+<a name="l00051"></a><a class="code" href="structxint_1_1detail_1_1token.html">00051</a>     <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1token.html">token</a> { };
+<a name="l00052"></a>00052 
+<a name="l00053"></a><a class="code" href="structxint_1_1detail_1_1base__random__generator.html">00053</a>     <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1base__random__generator.html">base_random_generator</a> {
+<a name="l00054"></a><a class="code" href="structxint_1_1detail_1_1base__random__generator.html#a0556d7f290cd236303b3f1031611cb3e">00054</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="l00055"></a>00055     };
 <a name="l00056"></a>00056 
-<a name="l00058"></a>00058 <span class="keyword">namespace </span>xint
-<a name="l00059"></a>00059 {  
-<a name="l00061"></a>00061 <span class="comment">// The boring-but-necessary preliminary stuff</span>
-<a name="l00062"></a>00062 
-<a name="l00063"></a>00063 <span class="keyword">namespace </span>detail
-<a name="l00064"></a>00064 { 
-<a name="l00065"></a><a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">00065</a>     <span class="keyword">typedef</span> boost::uintmax_t <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>;
-<a name="l00066"></a>00066     <span class="keyword">typedef</span> boost::uint_t<std::numeric_limits<doubledigit_t>::digits / 2>::fast
-<a name="l00067"></a><a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">00067</a>         <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>;
-<a name="l00068"></a>00068 
-<a name="l00069"></a><a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">00069</a>     <span class="keyword">const</span> <span class="keywordtype">size_t</span>        <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>    = std::numeric_limits<digit_t>::digits;
-<a name="l00070"></a><a class="code" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">00070</a>     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>       <a class="code" href="namespacexint_1_1detail.html#a116bb5ce94c55f0eae3338d69fd5e8eb">digit_hibit</a>       = (<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(1) << (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>-1));
-<a name="l00071"></a><a class="code" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">00071</a>     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> <a class="code" href="namespacexint_1_1detail.html#a2af0686427ee285bd715330f12fcbc1c">doubledigit_hibit</a> = (<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(1) << (<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>*2-1));
-<a name="l00072"></a><a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">00072</a>     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a> <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a> = (<a class="code" href="namespacexint_1_1detail.html#aceb9b654c1c2daaf377b31bd4a089750">doubledigit_t</a>(1) << <a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
-<a name="l00073"></a><a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">00073</a>     <span class="keyword">const</span> <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>       <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">digit_mask</a>        = <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a>(<a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">digit_overflowbit</a>-1);
-<a name="l00074"></a>00074 
-<a name="l00075"></a>00075     <span class="keyword">const</span> <span class="keyword">extern</span> std::string <a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">nan_text</a>;
-<a name="l00076"></a>00076 
-<a name="l00077"></a>00077     <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>;
-<a name="l00078"></a><a class="code" href="structxint_1_1detail_1_1token.html">00078</a>     <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1token.html">token</a> { };
-<a name="l00079"></a>00079 } <span class="comment">// namespace detail</span>
+<a name="l00057"></a>00057     <span class="keyword">template</span> <<span class="keyword">class</span> T>
+<a name="l00058"></a><a class="code" href="structxint_1_1detail_1_1random__generator.html">00058</a>     <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1random__generator.html">random_generator</a>: <span class="keyword">public</span> <a class="code" href="structxint_1_1detail_1_1base__random__generator.html">base_random_generator</a> {
+<a name="l00059"></a><a class="code" href="structxint_1_1detail_1_1random__generator.html#aab9830c38c791b5c3ac0ef8328573bfd">00059</a>         <span class="keyword">typedef</span> boost::uniform_int<result_type> <a class="code" href="structxint_1_1detail_1_1random__generator.html#aab9830c38c791b5c3ac0ef8328573bfd">dist_t</a>;
+<a name="l00060"></a><a class="code" href="structxint_1_1detail_1_1random__generator.html#adbc88a70815fa4f72deb9bddaec86675">00060</a>         <span class="keyword">typedef</span> boost::variate_generator<T&, dist_t> <a class="code" href="structxint_1_1detail_1_1random__generator.html#adbc88a70815fa4f72deb9bddaec86675">gen_t</a>;
+<a name="l00061"></a><a class="code" href="structxint_1_1detail_1_1random__generator.html#a2a4312b1e08aec50fc7d7afc74c432a1">00061</a>         <a class="code" href="structxint_1_1detail_1_1random__generator.html#a2a4312b1e08aec50fc7d7afc74c432a1">random_generator</a>(T& g): <a class="code" href="structxint_1_1detail_1_1random__generator.html#a9a90a3050b2ff83d78ef8633deb5d42d">gen</a>(g,
+<a name="l00062"></a>00062             <a class="code" href="structxint_1_1detail_1_1random__generator.html#aab9830c38c791b5c3ac0ef8328573bfd">dist_t</a>((std::numeric_limits<<a class="code" href="structxint_1_1detail_1_1base__random__generator.html#a0556d7f290cd236303b3f1031611cb3e">result_type</a>>::min)(),
+<a name="l00063"></a>00063                 (std::numeric_limits<<a class="code" href="structxint_1_1detail_1_1base__random__generator.html#a0556d7f290cd236303b3f1031611cb3e">result_type</a>>::max)())) { }
+<a name="l00064"></a><a class="code" href="structxint_1_1detail_1_1random__generator.html#af4f51632b42ca812468f9d24fea20ce9">00064</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1random__generator.html#af4f51632b42ca812468f9d24fea20ce9">operator()</a>() { <span class="keywordflow">return</span> <a class="code" href="structxint_1_1detail_1_1random__generator.html#a9a90a3050b2ff83d78ef8633deb5d42d">gen</a>(); }
+<a name="l00065"></a><a class="code" href="structxint_1_1detail_1_1random__generator.html#a9a90a3050b2ff83d78ef8633deb5d42d">00065</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="l00066"></a>00066     };
+<a name="l00067"></a>00067 
+<a name="l00068"></a><a class="code" href="namespacexint_1_1detail.html#a9c9dc00dbbe287492696635ed41dce44">00068</a>     <span class="keyword">typedef</span> boost::function<unsigned int ()> <a class="code" href="namespacexint_1_1detail.html#a9c9dc00dbbe287492696635ed41dce44">random_t</a>;
+<a name="l00069"></a>00069 
+<a name="l00070"></a>00070     <span class="keywordtype">void</span> <a class="code" href="namespacexint_1_1detail.html#ada65da12642b63f663b50382068a607f">set_random_generator</a>(<a class="code" href="namespacexint_1_1detail.html#a9c9dc00dbbe287492696635ed41dce44">random_t</a> fn, <a class="code" href="structxint_1_1detail_1_1base__random__generator.html">base_random_generator</a> *obj);
+<a name="l00071"></a>00071     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="namespacexint_1_1detail.html#a1dfc1e90886c4897a4b112f491b89b62">get_random</a>();
+<a name="l00072"></a>00072 } <span class="comment">// namespace detail</span>
+<a name="l00073"></a>00073 
+<a name="l00074"></a><a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">00074</a> <span class="keyword">typedef</span> std::auto_ptr<detail::token> <a class="code" href="structxint_1_1detail_1_1token.html">token</a>;
+<a name="l00075"></a>00075 
+<a name="l00076"></a><a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">00076</a> <span class="keyword">typedef</span> boost::function<bool ()> <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a>;
+<a name="l00077"></a><a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">00077</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="l00078"></a>00078 
+<a name="l00079"></a><a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">00079</a> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a>=(std::numeric_limits<size_t>::max)();
 <a name="l00080"></a>00080 
-<a name="l00081"></a><a class="code" href="namespacexint.html#ad63045584f06221eb6a7581ad3091582">00081</a> <span class="keyword">typedef</span> std::auto_ptr<detail::token> <a class="code" href="structxint_1_1detail_1_1token.html">token</a>;
+<a name="l00081"></a>00081 <span class="keyword">class </span><a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>;
 <a name="l00082"></a>00082 
-<a name="l00083"></a><a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">00083</a> <span class="keyword">typedef</span> boost::function<bool ()> <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a>;
-<a name="l00084"></a><a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">00084</a> <span class="keyword">const</span> <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> <a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">no_callback</a>;
+<a name="l00084"></a>00084 <span class="comment">// The integer class</span>
 <a name="l00085"></a>00085 
-<a name="l00086"></a><a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">00086</a> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a>=(std::numeric_limits<size_t>::max)();
-<a name="l00087"></a>00087 
-<a name="l00088"></a>00088 <span class="keyword">class </span><a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>;
-<a name="l00089"></a>00089 
-<a name="l00091"></a>00091 <span class="comment">// The integer class</span>
-<a name="l00092"></a>00092 
-<a name="l00093"></a><a class="code" href="classxint_1_1integer.html">00093</a> <span class="keyword">class </span><a class="code" href="classxint_1_1integer.html">integer</a>
-<a name="l00094"></a>00094 {  
-<a name="l00095"></a>00095 
-<a name="l00096"></a>00096     <span class="keyword">public</span>:
-<a name="l00097"></a>00097     <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer</a>(); 
-<a name="l00098"></a>00098     <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b); 
-<a name="l00099"></a>00099 
-<a name="l00100"></a>00100     <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer</a>(<span class="keyword">const</span> T& n); 
-<a name="l00101"></a>00101     <span class="keyword">explicit</span> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer</a>(<span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> base=10); 
-<a name="l00102"></a>00102     <span class="keyword">explicit</span> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>&); 
-<a name="l00103"></a>00103     <a class="code" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">~integer</a>();
-<a name="l00104"></a>00104 
-<a name="l00105"></a>00105     <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">odd</a>() <span class="keyword">const</span>; 
-<a name="l00106"></a>00106     <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">even</a>() <span class="keyword">const</span>; 
-<a name="l00107"></a>00107     <span class="keywordtype">int</span>  <a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() <span class="keyword">const</span>; 
-<a name="l00108"></a>00108     <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a>() <span class="keyword">const</span>; 
-<a name="l00109"></a>00109 
-<a name="l00110"></a>00110     <span class="keywordtype">size_t</span> <a class="code" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">hex_digits</a>() <span class="keyword">const</span>; 
-<a name="l00111"></a>00111 
-<a name="l00112"></a>00112     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">operator=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &c);
-<a name="l00113"></a>00113 
-<a name="l00114"></a>00114     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">operator+=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b);
-<a name="l00115"></a>00115     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">operator-=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b);
-<a name="l00116"></a>00116     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">operator*=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b);
-<a name="l00117"></a>00117     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">operator/=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b);
-<a name="l00118"></a>00118     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">operator%=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b);
-<a name="l00119"></a>00119 
-<a name="l00120"></a>00120     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">operator++</a>();
-<a name="l00121"></a>00121     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">operator--</a>();
-<a name="l00122"></a>00122     <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">operator++</a>(<span class="keywordtype">int</span>);
-<a name="l00123"></a>00123     <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">operator--</a>(<span class="keywordtype">int</span>);
-<a name="l00124"></a>00124 
-<a name="l00125"></a>00125     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">operator&=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
-<a name="l00126"></a>00126     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">operator|=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
-<a name="l00127"></a>00127     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">operator^=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
-<a name="l00128"></a>00128     <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">operator<<</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>) <span class="keyword">const</span>;
-<a name="l00129"></a>00129     <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">operator>></a>(<span class="keywordtype">size_t</span> shift) <span class="keyword">const</span>;
-<a name="l00130"></a>00130     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">operator<<=</a>(<span class="keywordtype">size_t</span> shift);
-<a name="l00131"></a>00131     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">operator>>=</a>(<span class="keywordtype">size_t</span> shift);
+<a name="l00086"></a><a class="code" href="classxint_1_1integer.html">00086</a> <span class="keyword">class </span><a class="code" href="classxint_1_1integer.html">integer</a> {
+<a name="l00087"></a>00087     <span class="keyword">public</span>:
+<a name="l00088"></a>00088     <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer</a>();
+<a name="l00089"></a>00089     <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b);
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091     <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer</a>(<span class="keyword">const</span> T& n,
+<a name="l00092"></a>00092         <span class="keyword">typename</span> boost::enable_if<boost::is_integral<T> >::type* = 0,
+<a name="l00093"></a>00093         <span class="keyword">typename</span> boost::enable_if<boost::is_signed<T> >::type* = 0);
+<a name="l00094"></a>00094     <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer</a>(<span class="keyword">const</span> T& n,
+<a name="l00095"></a>00095         <span class="keyword">typename</span> boost::enable_if<boost::is_integral<T> >::type* = 0,
+<a name="l00096"></a>00096         <span class="keyword">typename</span> boost::enable_if<boost::is_unsigned<T> >::type* = 0);
+<a name="l00097"></a>00097 
+<a name="l00098"></a>00098     <span class="keyword">explicit</span> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer</a>(<span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> base=10);
+<a name="l00099"></a>00099     <span class="keyword">explicit</span> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>&);
+<a name="l00100"></a>00100     <a class="code" href="classxint_1_1integer.html#a4f687cc90353b1c347448f1d94fa157e">~integer</a>();
+<a name="l00101"></a>00101 
+<a name="l00102"></a>00102     <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#af2d420708a02755a8851140928e50e23">odd</a>() <span class="keyword">const</span>;
+<a name="l00103"></a>00103     <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#a2ffb63eee276c65d8ea8b365adeb1ee2">even</a>() <span class="keyword">const</span>;
+<a name="l00104"></a>00104     <span class="keywordtype">int</span>  <a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() <span class="keyword">const</span>;
+<a name="l00105"></a>00105     <span class="keywordtype">bool</span> <a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a>() <span class="keyword">const</span>; <span class="comment">// Tests for Not-a-Number</span>
+<a name="l00106"></a>00106 
+<a name="l00107"></a>00107     <span class="keywordtype">size_t</span> <a class="code" href="classxint_1_1integer.html#a25f066e30e4548bc22e0e9d75b809955">hex_digits</a>() <span class="keyword">const</span>;
+<a name="l00108"></a>00108 
+<a name="l00109"></a>00109     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#abfa13a313f2782885bbbfa9a5f4a22c2">operator=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &c);
+<a name="l00110"></a>00110 
+<a name="l00111"></a>00111     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#aa0259f75f66b97b68310cfed2c0ecc7b">operator+=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b);
+<a name="l00112"></a>00112     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a2ce7f54adccb88836d1474fc67fa9a62">operator-=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b);
+<a name="l00113"></a>00113     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a531cdc9ce5667c4553fd1e4dac151b51">operator*=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b);
+<a name="l00114"></a>00114     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a3366a33f7ca5ad3285515e260d0dce66">operator/=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b);
+<a name="l00115"></a>00115     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#abee8874a961c2bb15a288494e096f36b">operator%=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& b);
+<a name="l00116"></a>00116 
+<a name="l00117"></a>00117     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">operator++</a>();
+<a name="l00118"></a>00118     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">operator--</a>();
+<a name="l00119"></a>00119     <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a60cd241278892070d14a0d57e45c9264">operator++</a>(<span class="keywordtype">int</span>);
+<a name="l00120"></a>00120     <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a48452b868e2279e202039c9918f0dcf3">operator--</a>(<span class="keywordtype">int</span>);
+<a name="l00121"></a>00121 
+<a name="l00122"></a>00122     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a0d4c730e3d45d3fa2895b706b202d860">operator&=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
+<a name="l00123"></a>00123     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a1af418341e64a317b4cc41fcddaa849f">operator|=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
+<a name="l00124"></a>00124     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#afc13b5ae9c6f28ef5e75777976aeb56d">operator^=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
+<a name="l00125"></a>00125     <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a3733741d7e1c8ba1c1f490c8949a308f">operator<<</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>) <span class="keyword">const</span>;
+<a name="l00126"></a>00126     <a class="code" href="classxint_1_1integer.html">integer</a>  <a class="code" href="classxint_1_1integer.html#a5cbc6986de4ca89b49162736f8750986">operator>></a>(<span class="keywordtype">size_t</span> shift) <span class="keyword">const</span>;
+<a name="l00127"></a>00127     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a14545146f86ed797e97758d8aea32ecd">operator<<=</a>(<span class="keywordtype">size_t</span> shift);
+<a name="l00128"></a>00128     <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#aa0151e58a97bc1801221907d68582ec2">operator>>=</a>(<span class="keywordtype">size_t</span> shift);
+<a name="l00129"></a>00129 
+<a name="l00130"></a>00130     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2">zero</a>();
+<a name="l00131"></a>00131     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8">one</a>();
 <a name="l00132"></a>00132 
-<a name="l00133"></a>00133     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a64a0f99de7c33239237cb59d8464f3d2" title="Extended integer holding zero.">zero</a>(); 
-<a name="l00134"></a>00134     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="classxint_1_1integer.html#a9237b21f4162146c7b5749b169c081b8" title="Extended integer holding one.">one</a>(); 
-<a name="l00135"></a>00135 
-<a name="l00136"></a>00136     <span class="comment">// These are used internally, they're probably not useful outside of the</span>
-<a name="l00137"></a>00137     <span class="comment">// library's functions.</span>
-<a name="l00138"></a><a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">00138</a>     <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>()
-<a name="l00139"></a>00139     {  
-<a name="l00140"></a>00140       <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>; 
-<a name="l00141"></a>00141     }
-<a name="l00142"></a><a class="code" href="classxint_1_1integer.html#aff99f7868567ae0dd4666a985873a5a7">00142</a>     <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *<a class="code" href="classxint_1_1integer.html#aff99f7868567ae0dd4666a985873a5a7">_get_data</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>; }
-<a name="l00143"></a>00143     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> <a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(<span class="keywordtype">size_t</span> index) <span class="keyword">const</span>;
-<a name="l00144"></a>00144     <span class="keywordtype">size_t</span> <a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>() <span class="keyword">const</span>;
-<a name="l00145"></a>00145     <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">_set_negative</a>(<span class="keywordtype">bool</span> negative);
-<a name="l00146"></a>00146     <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
-<a name="l00147"></a>00147     <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>() <span class="keyword">const</span>;
-<a name="l00148"></a>00148 
-<a name="l00149"></a>00149     <span class="keyword">private</span>: 
-<a name="l00150"></a>00150     <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> init=0);
-<a name="l00151"></a>00151     <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &c);
-<a name="l00152"></a>00152     <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t n);
-<a name="l00153"></a>00153     <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
-<a name="l00154"></a>00154     <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a>();
-<a name="l00155"></a>00155 
-<a name="l00156"></a><a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">00156</a>     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> *<a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a>; 
-<a name="l00157"></a><a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">00157</a>     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> *<a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a>; 
-<a name="l00158"></a><a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">00158</a>     <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450" title="Raw data representing an extended integer.">data</a>; 
-<a name="l00159"></a>00159 };
-<a name="l00160"></a>00160 
-<a name="l00162"></a>00162 <span class="comment">// Exception-blocking and -allowing functions</span>
-<a name="l00163"></a>00163 
-<a name="l00164"></a>00164 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>();
-<a name="l00165"></a>00165 <a class="code" href="structxint_1_1detail_1_1token.html">token</a> <a class="code" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">block_exceptions</a>();
-<a name="l00166"></a>00166 <a class="code" href="structxint_1_1detail_1_1token.html">token</a> <a class="code" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">allow_exceptions</a>();
-<a name="l00167"></a>00167 
-<a name="l00169"></a>00169 <span class="comment">// Miscellaneous functions</span>
-<a name="l00170"></a>00170 
-<a name="l00171"></a>00171 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd">opt_secure_mode</a>();
-<a name="l00172"></a>00172 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ad55aa4d44083238d9ec313511f5b1dfa">opt_thread_safe</a>();
-<a name="l00173"></a>00173 <span class="keywordtype">int</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">compare</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &n2, <span class="keywordtype">bool</span> ignoresign=<span class="keyword">false</span>);
-<a name="l00174"></a>00174 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
-<a name="l00175"></a>00175 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">gcd</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& num2);
-<a name="l00176"></a>00176 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a17c5e4e807cfa425f48d9f5b464bc8dc">lcm</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& num2);
+<a name="l00133"></a>00133     <span class="comment">// These are used internally, they're probably not useful outside of the</span>
+<a name="l00134"></a>00134     <span class="comment">// library's functions.</span>
+<a name="l00135"></a><a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">00135</a>     <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *<a class="code" href="classxint_1_1integer.html#ae5578d7d5be17df3ecd3ddc5a852d0a0">_get_data</a>() { <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>; }
+<a name="l00136"></a><a class="code" href="classxint_1_1integer.html#aff99f7868567ae0dd4666a985873a5a7">00136</a>     <span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *<a class="code" href="classxint_1_1integer.html#aff99f7868567ae0dd4666a985873a5a7">_get_data</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>; }
+<a name="l00137"></a>00137     <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="l00138"></a>00138     <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="l00139"></a>00139     <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="l00140"></a>00140     <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#adc5c7b5bc30c0cfa30d62610e0bc0366">_make_unique</a>();
+<a name="l00141"></a>00141     <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="l00142"></a>00142 
+<a name="l00143"></a>00143     <span class="keyword">private</span>: 
+<a name="l00144"></a>00144     <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a> init=0);
+<a name="l00145"></a>00145     <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &c);
+<a name="l00146"></a>00146     <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t n);
+<a name="l00147"></a>00147     <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#ab76e68e21fd5fd584d40ab09a6f7197d">_attach</a>();
+<a name="l00148"></a>00148     <span class="keywordtype">void</span> <a class="code" href="classxint_1_1integer.html#a53752a9fd32dc65cb8085da60a44e6b4">_detach</a>();
+<a name="l00149"></a>00149 
+<a name="l00150"></a><a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">00150</a>     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> *<a class="code" href="classxint_1_1integer.html#a4903bda4b989056ee0c980aba7d07e06">cZero</a>, *<a class="code" href="classxint_1_1integer.html#a99deec6bc6eae551f358e4699075646a">cOne</a>;
+<a name="l00151"></a>00151 
+<a name="l00152"></a><a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">00152</a>     <a class="code" href="structxint_1_1detail_1_1data__t.html">detail::data_t</a> *<a class="code" href="classxint_1_1integer.html#a83a10805b1c61ed4c7b7b525a9b6b450">data</a>;
+<a name="l00153"></a>00153 };
+<a name="l00154"></a>00154 
+<a name="l00156"></a>00156 <span class="comment">// The random generator convenience class</span>
+<a name="l00157"></a>00157 
+<a name="l00158"></a><a class="code" href="classxint_1_1strong__random__generator.html">00158</a> <span class="keyword">class </span><a class="code" href="classxint_1_1strong__random__generator.html">strong_random_generator</a> {
+<a name="l00159"></a>00159     <span class="keyword">public</span>:
+<a name="l00160"></a><a class="code" href="classxint_1_1strong__random__generator.html#a470b586d0730deb716ffa3c13164e493">00160</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="l00161"></a>00161 
+<a name="l00162"></a>00162     <a class="code" href="classxint_1_1strong__random__generator.html#a8841d21b6614967e0520f55c3093871a">strong_random_generator</a>();
+<a name="l00163"></a>00163     <a class="code" href="classxint_1_1strong__random__generator.html#ac75f659c2adb7c822d49fe534b2d76a4">~strong_random_generator</a>();
+<a name="l00164"></a>00164     <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="l00165"></a>00165 
+<a name="l00166"></a><a class="code" href="classxint_1_1strong__random__generator.html#a1a808cca9189eb64f420e4745ca5122d">00166</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="l00167"></a><a class="code" href="classxint_1_1strong__random__generator.html#a4bea7dba7f086441548dfee576e54fce">00167</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="l00168"></a><a class="code" href="classxint_1_1strong__random__generator.html#aea47e4fbf8b0fe5914ade7ce2704a3c3">00168</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="l00169"></a>00169     <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="l00170"></a>00170     <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="l00171"></a>00171     <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="l00172"></a>00172 
+<a name="l00173"></a>00173     <span class="keyword">private</span>:
+<a name="l00174"></a><a class="code" href="classxint_1_1strong__random__generator.html#a9f055c0ff1a85a8c465099c596f368fa">00174</a>     <span class="keyword">struct </span><a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html">impl_t</a>;
+<a name="l00175"></a>00175     <a class="code" href="structxint_1_1strong__random__generator_1_1impl__t.html">impl_t</a> *<a class="code" href="classxint_1_1strong__random__generator.html#a9f055c0ff1a85a8c465099c596f368fa">impl</a>;
+<a name="l00176"></a>00176 };
 <a name="l00177"></a>00177 
-<a name="l00179"></a>00179 <span class="comment">// Mathematical primitives</span>
+<a name="l00179"></a>00179 <span class="comment">// Exception-blocking and -allowing functions</span>
 <a name="l00180"></a>00180 
-<a name="l00181"></a>00181 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
-<a name="l00182"></a>00182 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">negate</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
-<a name="l00183"></a>00183 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">add</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& addend);
-<a name="l00184"></a>00184 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& subtrahend);
-<a name="l00185"></a>00185 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">multiply</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& multiplicand);
-<a name="l00186"></a>00186 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">divide</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& dividend, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& divisor);
-<a name="l00187"></a>00187 std::pair<integer, integer> <a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">divide_r</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& dividend, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&
-<a name="l00188"></a>00188     divisor);
-<a name="l00189"></a>00189 
-<a name="l00191"></a>00191 <span class="comment">// Powers and roots</span>
-<a name="l00192"></a>00192 
-<a name="l00193"></a>00193 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">sqr</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
-<a name="l00194"></a>00194 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#aeee80b61e0cadc12f92752104e281b2c">pow</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& exponent);
-<a name="l00195"></a>00195 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#aea1ae2a423d401fa02d3f0621078fbf0">pow2</a>(<span class="keywordtype">size_t</span> exponent);
-<a name="l00196"></a>00196 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#aba188df925c87a0f33a79328e31e1a50">factorial</a>(<span class="keywordtype">size_t</span> n);
-<a name="l00197"></a>00197 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a">sqrt</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
-<a name="l00198"></a>00198 
-<a name="l00200"></a>00200 <span class="comment">// Conversion functions</span>
-<a name="l00201"></a>00201 
-<a name="l00202"></a>00202 <span class="keyword">template</span> <<span class="keyword">typename</span> T> T <a class="code" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">to</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
-<a name="l00203"></a>00203 std::string <a class="code" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">to_string</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> base=10, <span class="keywordtype">bool</span> upperCase=<span class="keyword">false</span>);
-<a name="l00204"></a>00204 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">from_string</a>(<span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> base=10);
-<a name="l00205"></a>00205 std::string <a class="code" href="namespacexint.html#ab8f33201a251e3e118dc82f214e22aeb">to_binary</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
-<a name="l00206"></a>00206 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">from_binary</a>(<span class="keyword">const</span> std::string& s);
-<a name="l00207"></a>00207 
-<a name="l00209"></a>00209 <span class="comment">// Bit-manipulation functions</span>
-<a name="l00210"></a>00210 
-<a name="l00211"></a>00211 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952">getbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> bit);
-<a name="l00212"></a>00212 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a>(<a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> bit);
-<a name="l00213"></a>00213 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a8982e3e3ab7c1c763416eadc479d9724">clearbit</a>(<a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> bit);
-<a name="l00214"></a>00214 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a20e8cf2664222955e68f2ef9020bb196">lowestbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> valueIfZero=0);
-<a name="l00215"></a>00215 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#afcfbe1d95a8dabc615e97565c0ba768c">highestbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> valueIfZero=0);
-<a name="l00216"></a>00216 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">bitwise_and</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
-<a name="l00217"></a>00217 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">bitwise_or</a> (<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
-<a name="l00218"></a>00218 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">bitwise_xor</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
-<a name="l00219"></a>00219 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">int</span> byBits);
-<a name="l00220"></a>00220 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">shift_left</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> byBits);
-<a name="l00221"></a>00221 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">shift_right</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> byBits);
-<a name="l00222"></a>00222 
-<a name="l00224"></a>00224 <span class="comment">// Modular math functions</span>
-<a name="l00225"></a>00225 
-<a name="l00226"></a>00226 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">mod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& modBy);
-<a name="l00227"></a>00227 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a67ad0747617ca6e780d6f67d60260450">mulmod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& by, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& modulus);
-<a name="l00228"></a>00228 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a594bd29593aad9a1c047af22e91e749c">sqrmod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& modulus);
-<a name="l00229"></a>00229 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a1f8b43b537ff9de1d5612ed228a8fbe1">powmod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& exponent, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&
-<a name="l00230"></a>00230     modulus, <span class="keywordtype">bool</span> noMontgomery=<span class="keyword">false</span>);
-<a name="l00231"></a>00231 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">invmod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& modulus);
-<a name="l00232"></a>00232 
-<a name="l00234"></a>00234 <span class="comment">// Random number functions</span>
-<a name="l00235"></a>00235 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ade2beef1aca9c4ebb119d16c2d068e70">seed_secure</a>();
-<a name="l00236"></a>00236 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a16e22040e770d828903bb5d11ed6e046">seed_fallback</a>();
-<a name="l00237"></a>00237 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#afeca589b50c2c8cb4bea98200ae51dbe">seed_manual</a>(<span class="keyword">const</span> std::string& value);
-<a name="l00238"></a>00238 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size</a>(<span class="keywordtype">size_t</span> sizeInBits, <span class="keywordtype">bool</span> highBitOn=<span class="keyword">false</span>, <span class="keywordtype">bool</span>
-<a name="l00239"></a>00239     lowBitOn=<span class="keyword">false</span>, <span class="keywordtype">bool</span> canBeNegative=<span class="keyword">false</span>);
-<a name="l00240"></a>00240 <span class="keyword">template</span> <<span class="keyword">typename</span> T> T <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>();
-<a name="l00241"></a>00241 <span class="keyword">template</span> <<span class="keyword">typename</span> T> T <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>(<span class="keyword">const</span> T& lessThanThis);
-<a name="l00242"></a>00242 <span class="keyword">template</span> <<span class="keyword">typename</span> T> T <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>(<span class="keyword">const</span> T& lowest, <span class="keyword">const</span> T& highest);
-<a name="l00243"></a>00243 
-<a name="l00245"></a>00245 <span class="comment">// Prime number functions</span>
-<a name="l00246"></a>00246 
-<a name="l00247"></a>00247 <span class="keywordtype">int</span> <a class="code" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f">is_prime</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> callback=<a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">no_callback</a>);
-<a name="l00248"></a>00248 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#af148d73dc33718f9d893dac821ab699e">random_prime</a>(<span class="keywordtype">size_t</span> sizeInBits, <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> callback=<a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">no_callback</a>);
+<a name="l00181"></a>00181 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ac8be41374700d89400f5ecddf0f789e3">exceptions_allowed</a>();
+<a name="l00182"></a>00182 <a class="code" href="structxint_1_1detail_1_1token.html">token</a> <a class="code" href="namespacexint.html#ae7e3f6afc701f6e8873a407bb418d04c">block_exceptions</a>();
+<a name="l00183"></a>00183 <a class="code" href="structxint_1_1detail_1_1token.html">token</a> <a class="code" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">allow_exceptions</a>();
+<a name="l00184"></a>00184 
+<a name="l00186"></a>00186 <span class="comment">// Miscellaneous functions</span>
+<a name="l00187"></a>00187 
+<a name="l00188"></a>00188 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a820d89c1d761a0a2c06479b1c1f9cecd">opt_secure_mode</a>();
+<a name="l00189"></a>00189 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ad55aa4d44083238d9ec313511f5b1dfa">opt_thread_safe</a>();
+<a name="l00190"></a>00190 <span class="keywordtype">int</span> <a class="code" href="namespacexint.html#aff82dd47fae4297b96282371abf4db06">compare</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a> &n2, <span class="keywordtype">bool</span> ignoresign=<span class="keyword">false</span>);
+<a name="l00191"></a>00191 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#aa074495871d366c760c5b0713f5ef048">log2</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
+<a name="l00192"></a>00192 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#ac9e11516ac502e97be1902cde50f97e7">gcd</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& num2);
+<a name="l00193"></a>00193 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a17c5e4e807cfa425f48d9f5b464bc8dc">lcm</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& num1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& num2);
+<a name="l00194"></a>00194 
+<a name="l00196"></a>00196 <span class="comment">// Mathematical primitives</span>
+<a name="l00197"></a>00197 
+<a name="l00198"></a>00198 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
+<a name="l00199"></a>00199 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a7d9010c1d7edb88471977aecb0f91d26">negate</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
+<a name="l00200"></a>00200 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a7cc636a05af16eba73014bf88273d163">add</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& addend);
+<a name="l00201"></a>00201 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#af196cd74cb23970032fddcce71957a80">subtract</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& subtrahend);
+<a name="l00202"></a>00202 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#af3d7059ec08bf075cec5685deca55c5d">multiply</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& multiplicand);
+<a name="l00203"></a>00203 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#abf3d47f1ef1fdf334097fab055886a44">divide</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& dividend, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& divisor);
+<a name="l00204"></a>00204 std::pair<integer, integer> <a class="code" href="namespacexint.html#a23d0a0bb05cec1917d96d6aaceeb875d">divide_r</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& dividend, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&
+<a name="l00205"></a>00205     divisor);
+<a name="l00206"></a>00206 
+<a name="l00208"></a>00208 <span class="comment">// Powers and roots</span>
+<a name="l00209"></a>00209 
+<a name="l00210"></a>00210 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a0aec423511839fd784b1654389dfcf5b">sqr</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
+<a name="l00211"></a>00211 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#aeee80b61e0cadc12f92752104e281b2c">pow</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& exponent);
+<a name="l00212"></a>00212 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#aea1ae2a423d401fa02d3f0621078fbf0">pow2</a>(<span class="keywordtype">size_t</span> exponent);
+<a name="l00213"></a>00213 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#aba188df925c87a0f33a79328e31e1a50">factorial</a>(<span class="keywordtype">size_t</span> n);
+<a name="l00214"></a>00214 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a74891726f8af86736169dd43b929ad0a">sqrt</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
+<a name="l00215"></a>00215 
+<a name="l00217"></a>00217 <span class="comment">// Conversion functions</span>
+<a name="l00218"></a>00218 
+<a name="l00219"></a>00219 <span class="keyword">template</span> <<span class="keyword">typename</span> T> T <a class="code" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">to</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
+<a name="l00220"></a>00220 std::string <a class="code" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">to_string</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> base=10, <span class="keywordtype">bool</span> upperCase=<span class="keyword">false</span>);
+<a name="l00221"></a>00221 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">from_string</a>(<span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> base=10);
+<a name="l00222"></a>00222 std::string <a class="code" href="namespacexint.html#ab8f33201a251e3e118dc82f214e22aeb">to_binary</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n);
+<a name="l00223"></a>00223 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#ac2ac2f74b45e4179560d845e6310be9a">from_binary</a>(<span class="keyword">const</span> std::string& s);
+<a name="l00224"></a>00224 
+<a name="l00226"></a>00226 <span class="comment">// Bit-manipulation functions</span>
+<a name="l00227"></a>00227 
+<a name="l00228"></a>00228 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a07bc7378c8a55e5f92aaef6d8b8ce952">getbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> bit);
+<a name="l00229"></a>00229 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#adf2652627e78682c17e120816987984a">setbit</a>(<a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> bit);
+<a name="l00230"></a>00230 <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#a8982e3e3ab7c1c763416eadc479d9724">clearbit</a>(<a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> bit);
+<a name="l00231"></a>00231 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#a20e8cf2664222955e68f2ef9020bb196">lowestbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> valueIfZero=0);
+<a name="l00232"></a>00232 <span class="keywordtype">size_t</span> <a class="code" href="namespacexint.html#afcfbe1d95a8dabc615e97565c0ba768c">highestbit</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> valueIfZero=0);
+<a name="l00233"></a>00233 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a06138585f07fe098e24718c46e3078e1">bitwise_and</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00234"></a>00234 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a8cd0a0dbc779e5a75c9e2f8027474e9a">bitwise_or</a> (<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00235"></a>00235 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a9ffe18a09f5dd354af7b967b032d3cbe">bitwise_xor</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00236"></a>00236 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a4f4dacd6f9398aaa500112731ab713ce">shift</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">int</span> byBits);
+<a name="l00237"></a>00237 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#abe0717f5f1bed3f2c108e654f92f168a">shift_left</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> byBits);
+<a name="l00238"></a>00238 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a33005f5e57bca2418fae44952e28bbbf">shift_right</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keywordtype">size_t</span> byBits);
+<a name="l00239"></a>00239 
+<a name="l00241"></a>00241 <span class="comment">// Modular math functions</span>
+<a name="l00242"></a>00242 
+<a name="l00243"></a>00243 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#af7a1a866478f5c0a2bc4615785f17e1a">mod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& modBy);
+<a name="l00244"></a>00244 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a67ad0747617ca6e780d6f67d60260450">mulmod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& by, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& modulus);
+<a name="l00245"></a>00245 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a594bd29593aad9a1c047af22e91e749c">sqrmod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& modulus);
+<a name="l00246"></a>00246 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a1f8b43b537ff9de1d5612ed228a8fbe1">powmod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& exponent, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>&
+<a name="l00247"></a>00247     modulus, <span class="keywordtype">bool</span> noMontgomery=<span class="keyword">false</span>);
+<a name="l00248"></a>00248 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a4a79f60ebe198eadf10b63924018ce66">invmod</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& modulus);
 <a name="l00249"></a>00249 
-<a name="l00250"></a>00250 } <span class="comment">// namespace xint</span>
-<a name="l00251"></a>00251 
-<a name="l00253"></a>00253 <span class="comment">// Global operators for the integer class</span>
-<a name="l00254"></a>00254 
-<a name="l00255"></a>00255 <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#ac7523d81be85d97950c95f10c17a8c9d">operator!</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1);
-<a name="l00256"></a>00256 <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#a13bf860274cbfba7049ee1109ef79ece">operator<</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2);
-<a name="l00257"></a>00257 <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#aafe4265378fbdfe8382de5624439cf86">operator></a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2);
-<a name="l00258"></a>00258 <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#aab167dd151d36a75704e98361c845e67">operator<=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2);
-<a name="l00259"></a>00259 <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#a3e59818919966e38b68c5af625acf65e">operator>=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2);
-<a name="l00260"></a>00260 <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#a8afed82c679c5a4edee2108ddbf24e76">operator==</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2);
-<a name="l00261"></a>00261 <span class="keywordtype">bool</span> <a class="code" href="compare_8cpp.html#ae28b8d9fc3781805e9bb9cfaf0dc01df">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2);
+<a name="l00251"></a>00251 <span class="comment">// Random number functions</span>
+<a name="l00252"></a>00252 
+<a name="l00253"></a>00253 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#ab2d0fe2cf11b25d26c1b86280cb4dc99">set_random_generator</a>(T &gen);
+<a name="l00254"></a>00254 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size</a>(<span class="keywordtype">size_t</span> sizeInBits, <span class="keywordtype">bool</span> highBitOn=<span class="keyword">false</span>, <span class="keywordtype">bool</span>
+<a name="l00255"></a>00255     lowBitOn=<span class="keyword">false</span>, <span class="keywordtype">bool</span> canBeNegative=<span class="keyword">false</span>);
+<a name="l00256"></a>00256 
+<a name="l00258"></a>00258 <span class="comment">// Prime number functions</span>
+<a name="l00259"></a>00259 
+<a name="l00260"></a>00260 <span class="keywordtype">int</span> <a class="code" href="namespacexint.html#ab205c4e52dbc6825cefe3a251f6ca99f">is_prime</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n, <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> callback=<a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">no_callback</a>);
+<a name="l00261"></a>00261 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#af148d73dc33718f9d893dac821ab699e">random_prime</a>(<span class="keywordtype">size_t</span> sizeInBits, <a class="code" href="namespacexint.html#ac8a660c33746c536469d347307b8da7a">callback_t</a> callback=<a class="code" href="namespacexint.html#a44496f258b36237d4cea35558a71017a">no_callback</a>);
 <a name="l00262"></a>00262 
-<a name="l00263"></a>00263 <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& <a class="code" href="operators_8cpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operator+</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& a);
-<a name="l00264"></a>00264 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operator-</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& a);
-<a name="l00265"></a>00265 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ae6250b27c1717d3dfd4269c899ea1a0f">operator+</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2);
-<a name="l00266"></a>00266 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a686d2e5cc5766a1d8bc21c77f01ffa19">operator-</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2);
-<a name="l00267"></a>00267 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a9b5f3e5db8d7dac5c83687433265d679">operator*</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2);
-<a name="l00268"></a>00268 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ade5c31d601a221f90102f09d3985a1b1">operator/</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2);
-<a name="l00269"></a>00269 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ab5c9d4bfca6c406876f2317fe4ebdc17">operator%</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2);
-<a name="l00270"></a>00270 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a279ea8fa85f56774ecf87a9f70e44986">operator&</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2);
-<a name="l00271"></a>00271 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#ae43c9ba6b179f6336284e00609951c7c">operator|</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2);
-<a name="l00272"></a>00272 <a class="code" href="classxint_1_1integer.html">xint::integer</a> <a class="code" href="operators_8cpp.html#a1e8b5454f6cf0c613a259a6ad038b6ac">operator^</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n2);
+<a name="l00264"></a>00264 <span class="comment">// Operators for the integer class</span>
+<a name="l00265"></a>00265 
+<a name="l00266"></a>00266 <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">integer</a>& n1);
+<a name="l00267"></a>00267 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a4f4a4771bf443e6724abbd18173ecc86">operator<</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00268"></a>00268 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a1229d1f1efbdf3ffeac8b2964ca66093">operator></a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00269"></a>00269 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ab9d5f34c4d4bed1c86380d4f72edcd9b">operator<=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00270"></a>00270 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a766324a6f216f3b49a3e9aa885e9531c">operator>=</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00271"></a>00271 <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">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00272"></a>00272 <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">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
 <a name="l00273"></a>00273 
-<a name="l00274"></a>00274 <span class="keyword">namespace </span>xint {
-<a name="l00275"></a>00275 
-<a name="l00277"></a>00277 <span class="comment">// Exception classes</span>
-<a name="l00278"></a>00278 
-<a name="l00279"></a><a class="code" href="classxint_1_1invalid__base.html">00279</a> <span class="keyword">class </span><a class="code" href="classxint_1_1invalid__base.html">invalid_base</a>: <span class="keyword">public</span> std::invalid_argument {
-<a name="l00280"></a>00280     <span class="keyword">public</span>:
-<a name="l00281"></a><a class="code" href="classxint_1_1invalid__base.html#a16a577d5584652ca358450cbb55b5d55">00281</a>     <a class="code" href="classxint_1_1invalid__base.html#a16a577d5584652ca358450cbb55b5d55">invalid_base</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"invalid base"</span>): invalid_argument(what)
-<a name="l00282"></a>00282         { }
-<a name="l00283"></a>00283 };
+<a name="l00274"></a>00274 <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& <a class="code" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">operator+</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& a);
+<a name="l00275"></a>00275 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">operator-</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& a);
+<a name="l00276"></a>00276 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a586fb0eb69100ec74be94008ac26670d">operator+</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00277"></a>00277 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a8a510361ed458133ebfa5fd95f8d9c27">operator-</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00278"></a>00278 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#aea36ad9037f109576d4f95ec72b5c825">operator*</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00279"></a>00279 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a701217f7824c3e935fca25147da23807">operator/</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00280"></a>00280 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#ae0505757986a9c7133552552471aae24">operator%</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00281"></a>00281 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a742550f1c62ac8c2bde8e1ceab2a466c">operator&</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00282"></a>00282 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#afa8f2a0ac996ad45efc73b2aa056cae2">operator|</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
+<a name="l00283"></a>00283 <a class="code" href="classxint_1_1integer.html">integer</a> <a class="code" href="namespacexint.html#a81722cd257bc950ba7c56a202492544f">operator^</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n1, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n2);
 <a name="l00284"></a>00284 
-<a name="l00285"></a><a class="code" href="classxint_1_1invalid__digit.html">00285</a> <span class="keyword">class </span><a class="code" href="classxint_1_1invalid__digit.html">invalid_digit</a>: <span class="keyword">public</span> std::range_error {
-<a name="l00286"></a>00286     <span class="keyword">public</span>:
-<a name="l00287"></a><a class="code" href="classxint_1_1invalid__digit.html#a832283e75569bd7e9d09f38ebae87a27">00287</a>     <a class="code" href="classxint_1_1invalid__digit.html#a832283e75569bd7e9d09f38ebae87a27">invalid_digit</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"invalid digit"</span>): range_error(what)
-<a name="l00288"></a>00288         { }
-<a name="l00289"></a>00289 };
-<a name="l00290"></a>00290 
-<a name="l00291"></a><a class="code" href="classxint_1_1invalid__modulus.html">00291</a> <span class="keyword">class </span><a class="code" href="classxint_1_1invalid__modulus.html">invalid_modulus</a>: <span class="keyword">public</span> std::invalid_argument {
-<a name="l00292"></a>00292     <span class="keyword">public</span>:
-<a name="l00293"></a><a class="code" href="classxint_1_1invalid__modulus.html#a691026e352d38fc5120c12d6d134e854">00293</a>     <a class="code" href="classxint_1_1invalid__modulus.html#a691026e352d38fc5120c12d6d134e854">invalid_modulus</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"invalid modulus"</span>):
-<a name="l00294"></a>00294         invalid_argument(what) { }
-<a name="l00295"></a>00295 };
-<a name="l00296"></a>00296 
-<a name="l00297"></a><a class="code" href="classxint_1_1divide__by__zero.html">00297</a> <span class="keyword">class </span><a class="code" href="classxint_1_1divide__by__zero.html">divide_by_zero</a>: <span class="keyword">public</span> std::invalid_argument {
-<a name="l00298"></a>00298     <span class="keyword">public</span>:
-<a name="l00299"></a><a class="code" href="classxint_1_1divide__by__zero.html#a31233d42a45ca6ef7078e700fa114ad2">00299</a>     <a class="code" href="classxint_1_1divide__by__zero.html#a31233d42a45ca6ef7078e700fa114ad2">divide_by_zero</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"divide by zero error"</span>):
-<a name="l00300"></a>00300         invalid_argument(what) { }
-<a name="l00301"></a>00301 };
-<a name="l00302"></a>00302 
-<a name="l00303"></a><a class="code" href="classxint_1_1too__big.html">00303</a> <span class="keyword">class </span><a class="code" href="classxint_1_1too__big.html">too_big</a>: <span class="keyword">public</span> std::range_error {
-<a name="l00304"></a>00304     <span class="keyword">public</span>:
-<a name="l00305"></a><a class="code" href="classxint_1_1too__big.html#a37a714ef8bfef8a1cf6cfa08a5db1ccc">00305</a>     <a class="code" href="classxint_1_1too__big.html#a37a714ef8bfef8a1cf6cfa08a5db1ccc">too_big</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"value out of range for requested "</span>
-<a name="l00306"></a>00306         <span class="stringliteral">"conversion"</span>): range_error(what) { }
-<a name="l00307"></a>00307 };
-<a name="l00308"></a>00308 
-<a name="l00309"></a><a class="code" href="classxint_1_1not__a__number.html">00309</a> <span class="keyword">class </span><a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>: <span class="keyword">public</span> std::runtime_error {
-<a name="l00310"></a>00310     <span class="keyword">public</span>:
-<a name="l00311"></a><a class="code" href="classxint_1_1not__a__number.html#a4ecc5bcc06a5d660176d51fc63c996cd">00311</a>     <a class="code" href="classxint_1_1not__a__number.html#a4ecc5bcc06a5d660176d51fc63c996cd">not_a_number</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"attempted to use a Not-a-Number"</span>):
-<a name="l00312"></a>00312         runtime_error(what) { }
-<a name="l00313"></a>00313 };
-<a name="l00314"></a>00314 
-<a name="l00316"></a>00316 <span class="comment">// Template function definitions</span>
+<a name="l00286"></a>00286 <span class="comment">// Exception classes</span>
+<a name="l00287"></a>00287 
+<a name="l00288"></a><a class="code" href="classxint_1_1invalid__base.html">00288</a> <span class="keyword">class </span><a class="code" href="classxint_1_1invalid__base.html">invalid_base</a>: <span class="keyword">public</span> std::invalid_argument {
+<a name="l00289"></a>00289     <span class="keyword">public</span>:
+<a name="l00290"></a><a class="code" href="classxint_1_1invalid__base.html#a16a577d5584652ca358450cbb55b5d55">00290</a>     <a class="code" href="classxint_1_1invalid__base.html#a16a577d5584652ca358450cbb55b5d55">invalid_base</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"invalid base"</span>): invalid_argument(what)
+<a name="l00291"></a>00291         { }
+<a name="l00292"></a>00292 };
+<a name="l00293"></a>00293 
+<a name="l00294"></a><a class="code" href="classxint_1_1invalid__digit.html">00294</a> <span class="keyword">class </span><a class="code" href="classxint_1_1invalid__digit.html">invalid_digit</a>: <span class="keyword">public</span> std::range_error {
+<a name="l00295"></a>00295     <span class="keyword">public</span>:
+<a name="l00296"></a><a class="code" href="classxint_1_1invalid__digit.html#a832283e75569bd7e9d09f38ebae87a27">00296</a>     <a class="code" href="classxint_1_1invalid__digit.html#a832283e75569bd7e9d09f38ebae87a27">invalid_digit</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"invalid digit"</span>): range_error(what)
+<a name="l00297"></a>00297         { }
+<a name="l00298"></a>00298 };
+<a name="l00299"></a>00299 
+<a name="l00300"></a><a class="code" href="classxint_1_1invalid__modulus.html">00300</a> <span class="keyword">class </span><a class="code" href="classxint_1_1invalid__modulus.html">invalid_modulus</a>: <span class="keyword">public</span> std::invalid_argument {
+<a name="l00301"></a>00301     <span class="keyword">public</span>:
+<a name="l00302"></a><a class="code" href="classxint_1_1invalid__modulus.html#a691026e352d38fc5120c12d6d134e854">00302</a>     <a class="code" href="classxint_1_1invalid__modulus.html#a691026e352d38fc5120c12d6d134e854">invalid_modulus</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"invalid modulus"</span>):
+<a name="l00303"></a>00303         invalid_argument(what) { }
+<a name="l00304"></a>00304 };
+<a name="l00305"></a>00305 
+<a name="l00306"></a><a class="code" href="classxint_1_1divide__by__zero.html">00306</a> <span class="keyword">class </span><a class="code" href="classxint_1_1divide__by__zero.html">divide_by_zero</a>: <span class="keyword">public</span> std::invalid_argument {
+<a name="l00307"></a>00307     <span class="keyword">public</span>:
+<a name="l00308"></a><a class="code" href="classxint_1_1divide__by__zero.html#a31233d42a45ca6ef7078e700fa114ad2">00308</a>     <a class="code" href="classxint_1_1divide__by__zero.html#a31233d42a45ca6ef7078e700fa114ad2">divide_by_zero</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"divide by zero error"</span>):
+<a name="l00309"></a>00309         invalid_argument(what) { }
+<a name="l00310"></a>00310 };
+<a name="l00311"></a>00311 
+<a name="l00312"></a><a class="code" href="classxint_1_1cannot__represent.html">00312</a> <span class="keyword">class </span><a class="code" href="classxint_1_1cannot__represent.html">cannot_represent</a>: <span class="keyword">public</span> std::invalid_argument {
+<a name="l00313"></a>00313     <span class="keyword">public</span>:
+<a name="l00314"></a><a class="code" href="classxint_1_1cannot__represent.html#abb9f7ccbc3ded22b615e08f8774a003b">00314</a>     <a class="code" href="classxint_1_1cannot__represent.html#abb9f7ccbc3ded22b615e08f8774a003b">cannot_represent</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"cannot represent the requested "</span>
+<a name="l00315"></a>00315         <span class="stringliteral">"value"</span>): invalid_argument(what) { }
+<a name="l00316"></a>00316 };
 <a name="l00317"></a>00317 
-<a name="l00318"></a>00318 <span class="keyword">template</span> <<span class="keyword">typename</span> T>
-<a name="l00319"></a><a class="code" href="classxint_1_1integer.html#a65df30415a5d2f91a72fb2c55d7cd33c">00319</a> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8" title="The extended integer class.">integer::integer</a>(<span class="keyword">const</span> T& n) {
-<a name="l00320"></a>00320     <span class="keywordflow">if</span> (std::numeric_limits<T>::is_signed) {
-<a name="l00321"></a>00321         <span class="keywordflow">if</span> (n >= 0) {
-<a name="l00322"></a>00322             <span class="keywordflow">if</span> (static_cast<T>(n & <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">detail::digit_mask</a>) == n)
-<a name="l00323"></a>00323                 <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a>(n));
-<a name="l00324"></a>00324             <span class="keywordflow">else</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t(n));
-<a name="l00325"></a>00325         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == (std::numeric_limits<T>::min)()) {
-<a name="l00326"></a>00326             <span class="comment">// Have to treat the minimum number carefully, because -n is not</span>
-<a name="l00327"></a>00327             <span class="comment">// what you'd think it is.</span>
-<a name="l00328"></a>00328             <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t(-(n+1)));
-<a name="l00329"></a>00329             <a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">_set_negative</a>(<span class="keyword">true</span>);
-<a name="l00330"></a>00330             --(*this);
-<a name="l00331"></a>00331         } <span class="keywordflow">else</span> {
-<a name="l00332"></a>00332             <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t(-n));
-<a name="l00333"></a>00333             <a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">_set_negative</a>(<span class="keyword">true</span>);
-<a name="l00334"></a>00334         }
-<a name="l00335"></a>00335     } <span class="keywordflow">else</span> {
-<a name="l00336"></a>00336         <span class="keywordflow">if</span> (static_cast<T>(n & <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">detail::digit_mask</a>) == n)
-<a name="l00337"></a>00337             <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a>(n));
-<a name="l00338"></a>00338         <span class="keywordflow">else</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t(n));
-<a name="l00339"></a>00339     }
-<a name="l00340"></a>00340 }
+<a name="l00318"></a><a class="code" href="classxint_1_1too__big.html">00318</a> <span class="keyword">class </span><a class="code" href="classxint_1_1too__big.html">too_big</a>: <span class="keyword">public</span> std::range_error {
+<a name="l00319"></a>00319     <span class="keyword">public</span>:
+<a name="l00320"></a><a class="code" href="classxint_1_1too__big.html#a37a714ef8bfef8a1cf6cfa08a5db1ccc">00320</a>     <a class="code" href="classxint_1_1too__big.html#a37a714ef8bfef8a1cf6cfa08a5db1ccc">too_big</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"value out of range for requested "</span>
+<a name="l00321"></a>00321         <span class="stringliteral">"conversion"</span>): range_error(what) { }
+<a name="l00322"></a>00322 };
+<a name="l00323"></a>00323 
+<a name="l00324"></a><a class="code" href="classxint_1_1not__a__number.html">00324</a> <span class="keyword">class </span><a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>: <span class="keyword">public</span> std::runtime_error {
+<a name="l00325"></a>00325     <span class="keyword">public</span>:
+<a name="l00326"></a><a class="code" href="classxint_1_1not__a__number.html#a4ecc5bcc06a5d660176d51fc63c996cd">00326</a>     <a class="code" href="classxint_1_1not__a__number.html#a4ecc5bcc06a5d660176d51fc63c996cd">not_a_number</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"attempted to use a Not-a-Number"</span>):
+<a name="l00327"></a>00327         runtime_error(what) { }
+<a name="l00328"></a>00328 };
+<a name="l00329"></a>00329 
+<a name="l00330"></a><a class="code" href="classxint_1_1no__strong__random.html">00330</a> <span class="keyword">class </span><a class="code" href="classxint_1_1no__strong__random.html">no_strong_random</a>: <span class="keyword">public</span> std::runtime_error {
+<a name="l00331"></a>00331     <span class="keyword">public</span>:
+<a name="l00332"></a><a class="code" href="classxint_1_1no__strong__random.html#abc003e134450711b6608ffba6037fae6">00332</a>     <a class="code" href="classxint_1_1no__strong__random.html#abc003e134450711b6608ffba6037fae6">no_strong_random</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"system does not have a strong "</span>
+<a name="l00333"></a>00333         <span class="stringliteral">"random generator"</span>): runtime_error(what) { }
+<a name="l00334"></a>00334 };
+<a name="l00335"></a>00335 
+<a name="l00336"></a><a class="code" href="classxint_1_1overflow__error.html">00336</a> <span class="keyword">class </span><a class="code" href="classxint_1_1overflow__error.html">overflow_error</a>: <span class="keyword">public</span> std::<a class="code" href="classxint_1_1overflow__error.html">overflow_error</a> {
+<a name="l00337"></a>00337     <span class="keyword">public</span>:
+<a name="l00338"></a><a class="code" href="classxint_1_1overflow__error.html#a6d862f28aa94f27cc210c1fb2e79f69c">00338</a>     <a class="code" href="classxint_1_1overflow__error.html#a6d862f28aa94f27cc210c1fb2e79f69c">overflow_error</a>(<span class="keyword">const</span> std::string& what=<span class="stringliteral">"overflow error in XInt library"</span>):
+<a name="l00339"></a>00339         std::<a class="code" href="classxint_1_1overflow__error.html">overflow_error</a>(what) { }
+<a name="l00340"></a>00340 };
 <a name="l00341"></a>00341 
-<a name="l00342"></a>00342 <span class="keyword">template</span> <<span class="keyword">typename</span> T>
-<a name="l00343"></a><a class="code" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">00343</a> T <a class="code" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">to</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n) {
-<a name="l00344"></a>00344     n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
-<a name="l00345"></a>00345     <span class="keywordflow">if</span> (n < (std::numeric_limits<T>::min)()
-<a name="l00346"></a>00346         || n > (std::numeric_limits<T>::max)())
-<a name="l00347"></a>00347             <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1too__big.html">too_big</a>(<span class="stringliteral">"value out of range for requested conversion"</span>);
-<a name="l00348"></a>00348 
-<a name="l00349"></a>00349     T rval=0;
-<a name="l00350"></a>00350     <span class="keywordtype">int</span> len=n.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>();
-<a name="l00351"></a>00351     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x=0; x<len; ++x)
-<a name="l00352"></a>00352         rval=static_cast<T>((rval * <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">detail::digit_overflowbit</a>)
-<a name="l00353"></a>00353             + n.<a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(len-x-1));
-<a name="l00354"></a>00354     <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() < 0) rval *= -1;
-<a name="l00355"></a>00355     <span class="keywordflow">return</span> rval;
-<a name="l00356"></a>00356 }
-<a name="l00357"></a>00357 
-<a name="l00358"></a>00358 <span class="keyword">template</span> <<span class="keyword">typename</span> T>
-<a name="l00359"></a><a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">00359</a> T <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>() {
-<a name="l00360"></a>00360     <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>((std::numeric_limits<T>::min)(),
-<a name="l00361"></a>00361         (std::numeric_limits<T>::max)());
-<a name="l00362"></a>00362 }
-<a name="l00363"></a>00363 
-<a name="l00364"></a>00364 <span class="keyword">template</span> <<span class="keyword">typename</span> T>
-<a name="l00365"></a><a class="code" href="namespacexint.html#ae04e871bc550a858d66901f64d42b17f">00365</a> T <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>(<span class="keyword">const</span> T& lessThanThis) {
-<a name="l00366"></a>00366     <span class="keywordflow">return</span> <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>(0, lessThanThis-1);
-<a name="l00367"></a>00367 }
-<a name="l00368"></a>00368 
-<a name="l00369"></a>00369 <span class="keyword">template</span> <<span class="keyword">typename</span> T>
-<a name="l00370"></a><a class="code" href="namespacexint.html#a342a8b817f74234c393fd9ed32f13f5f">00370</a> T <a class="code" href="namespacexint.html#a5e29caa361379cbda58d21cd569b0513">random</a>(<span class="keyword">const</span> T& lowest, <span class="keyword">const</span> T& highest) {
-<a name="l00371"></a>00371     <a class="code" href="classxint_1_1integer.html">integer</a> range(<a class="code" href="classxint_1_1integer.html">integer</a>(highest)-lowest+1);
-<a name="l00372"></a>00372     <span class="keywordflow">return</span> to<T>(lowest+(<a class="code" href="namespacexint.html#a6e66ca63ee442c0296ce41280fdae739">random_by_size</a>(std::numeric_limits<T>::digits+1)
-<a name="l00373"></a>00373         % range));
-<a name="l00374"></a>00374 }
-<a name="l00375"></a>00375 
-<a name="l00376"></a>00376 <span class="comment">// Customization for random integer within a range</span>
-<a name="l00377"></a>00377 <span class="keyword">template</span> <>
-<a name="l00378"></a>00378 integer <a class="code" href="namespacexint.html#a989d063e3298649704c804efca714ac6">random<integer></a>(<span class="keyword">const</span> integer& lowest, <span class="keyword">const</span> integer& highest);
-<a name="l00379"></a>00379 
-<a name="l00380"></a>00380 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits>
-<a name="l00381"></a><a class="code" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">00381</a> <span class="keyword">inline</span> std::basic_ostream<charT,traits>& <a class="code" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">operator<<</a>(std::basic_ostream<charT,
-<a name="l00382"></a>00382     traits>& out, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n)
-<a name="l00383"></a>00383 {
-<a name="l00384"></a>00384     <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a>()) {
-<a name="l00385"></a>00385         out << <a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">detail::nan_text</a>;
-<a name="l00386"></a>00386     } <span class="keywordflow">else</span> {
-<a name="l00387"></a>00387         <span class="keywordtype">int</span> base=((out.flags() & std::ios::hex) ? 16
-<a name="l00388"></a>00388             : (out.flags() & std::ios::oct) ? 8
-<a name="l00389"></a>00389             : 10);
-<a name="l00390"></a>00390         <span class="keywordtype">bool</span> upperCase=(out.flags() & std::ios::uppercase ? <span class="keyword">true</span> : <span class="keyword">false</span>);
-<a name="l00391"></a>00391 
-<a name="l00392"></a>00392         <span class="keywordflow">if</span> (out.flags() & std::ios::showbase) {
-<a name="l00393"></a>00393             <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() < 0) out << <span class="stringliteral">"-"</span>;
-<a name="l00394"></a>00394 
-<a name="l00395"></a>00395             <span class="keywordflow">if</span> (base==16 && upperCase) out << <span class="stringliteral">"0X"</span>;
-<a name="l00396"></a>00396             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base==16) out << <span class="stringliteral">"0x"</span>;
-<a name="l00397"></a>00397             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base==8) out << <span class="stringliteral">"0"</span>;
-<a name="l00398"></a>00398 
-<a name="l00399"></a>00399             out << <a class="code" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">xint::to_string</a>(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(n), base, upperCase);
-<a name="l00400"></a>00400         } <span class="keywordflow">else</span> {
-<a name="l00401"></a>00401             out << <a class="code" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">xint::to_string</a>(n, base, upperCase);
-<a name="l00402"></a>00402         }
-<a name="l00403"></a>00403     }
-<a name="l00404"></a>00404     <span class="keywordflow">return</span> out;
-<a name="l00405"></a>00405 }
-<a name="l00406"></a>00406 
-<a name="l00407"></a>00407 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits>
-<a name="l00408"></a><a class="code" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">00408</a> <span class="keyword">inline</span> std::basic_istream<charT,traits>& <a class="code" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">operator>></a>(std::basic_istream<charT,
-<a name="l00409"></a>00409     traits>& in, <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n)
-<a name="l00410"></a>00410 {
-<a name="l00411"></a>00411     <span class="keywordtype">int</span> hex=(in.flags() & std::ios::hex) ? 1 : 0;
-<a name="l00412"></a>00412     <span class="keywordtype">int</span> dec=(in.flags() & std::ios::dec) ? 1 : 0;
-<a name="l00413"></a>00413     <span class="keywordtype">int</span> oct=(in.flags() & std::ios::oct) ? 1 : 0;
-<a name="l00414"></a>00414     <span class="keywordtype">int</span> count=hex+dec+oct;
-<a name="l00415"></a>00415 
-<a name="l00416"></a>00416     <span class="keywordtype">size_t</span> base=<a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a>;
-<a name="l00417"></a>00417     <span class="keywordflow">if</span> (count==1) {
-<a name="l00418"></a>00418         <span class="keywordflow">if</span> (hex) base=16;
-<a name="l00419"></a>00419         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (oct) base=8;
-<a name="l00420"></a>00420         <span class="keywordflow">else</span> base=10;
-<a name="l00421"></a>00421     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count>1) base=10;
-<a name="l00422"></a>00422     <span class="comment">// else auto-base</span>
-<a name="l00423"></a>00423 
-<a name="l00424"></a>00424     std::string s;
-<a name="l00425"></a>00425     <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'+'</span>) {
-<a name="l00426"></a>00426         in.ignore();
-<a name="l00427"></a>00427     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'-'</span>) {
-<a name="l00428"></a>00428         in.ignore();
-<a name="l00429"></a>00429         s.push_back(<span class="charliteral">'-'</span>);
-<a name="l00430"></a>00430     }
+<a name="l00343"></a>00343 <span class="comment">// Template function definitions</span>
+<a name="l00344"></a>00344 
+<a name="l00345"></a><a class="code" href="classxint_1_1integer.html#a67db70248d9890990c257a1d069192e3">00345</a> <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer::integer</a>(<span class="keyword">const</span> T& n,
+<a name="l00346"></a>00346     <span class="keyword">typename</span> boost::enable_if<boost::is_integral<T> >::type*,
+<a name="l00347"></a>00347     <span class="keyword">typename</span> boost::enable_if<boost::is_signed<T> >::type*)
+<a name="l00348"></a>00348 {
+<a name="l00349"></a>00349     <span class="keywordflow">if</span> (n >= 0) {
+<a name="l00350"></a>00350         <span class="keywordflow">if</span> (static_cast<T>(n & <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">detail::digit_mask</a>) == n)
+<a name="l00351"></a>00351             <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a>(n));
+<a name="l00352"></a>00352         <span class="keywordflow">else</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t(n));
+<a name="l00353"></a>00353     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == (std::numeric_limits<T>::min)()) {
+<a name="l00354"></a>00354         <span class="comment">// Have to treat the minimum number carefully, because -n is not</span>
+<a name="l00355"></a>00355         <span class="comment">// what you'd think it is.</span>
+<a name="l00356"></a>00356         <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t(-(n+1)));
+<a name="l00357"></a>00357         <a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">_set_negative</a>(<span class="keyword">true</span>);
+<a name="l00358"></a>00358         --(*this);
+<a name="l00359"></a>00359     } <span class="keywordflow">else</span> {
+<a name="l00360"></a>00360         <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t(-n));
+<a name="l00361"></a>00361         <a class="code" href="classxint_1_1integer.html#ab2f4df250e1030c518180b7e832c5ebd">_set_negative</a>(<span class="keyword">true</span>);
+<a name="l00362"></a>00362     }
+<a name="l00363"></a>00363 }
+<a name="l00364"></a>00364 
+<a name="l00365"></a><a class="code" href="classxint_1_1integer.html#a0cad684bc9d7032497c7178edb91a5eb">00365</a> <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a class="code" href="classxint_1_1integer.html#ad32b3b13167c61e48aede083a3e1c7a8">integer::integer</a>(<span class="keyword">const</span> T& n,
+<a name="l00366"></a>00366     <span class="keyword">typename</span> boost::enable_if<boost::is_integral<T> >::type*,
+<a name="l00367"></a>00367     <span class="keyword">typename</span> boost::enable_if<boost::is_unsigned<T> >::type*)
+<a name="l00368"></a>00368 {
+<a name="l00369"></a>00369     <span class="keywordflow">if</span> (static_cast<T>(n & <a class="code" href="namespacexint_1_1detail.html#a051753e1bf43dcc77eaa93b8d4e49197">detail::digit_mask</a>) == n)
+<a name="l00370"></a>00370         <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">detail::digit_t</a>(n));
+<a name="l00371"></a>00371     <span class="keywordflow">else</span> <a class="code" href="classxint_1_1integer.html#aff4a9e0584c9f920a6cdfdc717bcda0d">_init</a>(boost::uintmax_t(n));
+<a name="l00372"></a>00372 }
+<a name="l00373"></a>00373 
+<a name="l00374"></a>00374 <span class="keyword">template</span> <<span class="keyword">typename</span> T>
+<a name="l00375"></a><a class="code" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">00375</a> T <a class="code" href="namespacexint.html#a21bd738b96eec205eedc7a9960e9a6e5">to</a>(<span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">integer</a>& n) {
+<a name="l00376"></a>00376     n.<a class="code" href="classxint_1_1integer.html#ad5935c358b92f15064b1f910613f7a3e">_throw_if_nan</a>();
+<a name="l00377"></a>00377     <span class="keywordflow">if</span> (n < (std::numeric_limits<T>::min)()
+<a name="l00378"></a>00378         || n > (std::numeric_limits<T>::max)())
+<a name="l00379"></a>00379             <span class="keywordflow">throw</span> <a class="code" href="classxint_1_1too__big.html">too_big</a>(<span class="stringliteral">"value out of range for requested conversion"</span>);
+<a name="l00380"></a>00380 
+<a name="l00381"></a>00381     T rval=0;
+<a name="l00382"></a>00382     <span class="keywordtype">size_t</span> len=n.<a class="code" href="classxint_1_1integer.html#a5723a74b98da2d5ed9452a7ec10c0ca2">_get_length</a>();
+<a name="l00383"></a>00383     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> x=0; x<len; ++x)
+<a name="l00384"></a>00384         rval=static_cast<T>((rval * <a class="code" href="namespacexint_1_1detail.html#a6746855fd8cde164294a46108d502e6a">detail::digit_overflowbit</a>)
+<a name="l00385"></a>00385             + n.<a class="code" href="classxint_1_1integer.html#a81ab47d2f92ec66ac1586b61d7fd8b60">_get_digit</a>(len-x-1));
+<a name="l00386"></a>00386     <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() < 0) rval *= -1;
+<a name="l00387"></a>00387     <span class="keywordflow">return</span> rval;
+<a name="l00388"></a>00388 }
+<a name="l00389"></a>00389 
+<a name="l00390"></a>00390 <span class="keyword">template</span> <<span class="keyword">typename</span> T>
+<a name="l00391"></a><a class="code" href="namespacexint.html#ab2d0fe2cf11b25d26c1b86280cb4dc99">00391</a> <span class="keywordtype">void</span> <a class="code" href="namespacexint.html#ab2d0fe2cf11b25d26c1b86280cb4dc99">set_random_generator</a>(T &gen) {
+<a name="l00392"></a>00392     <a class="code" href="structxint_1_1detail_1_1random__generator.html">detail::random_generator<T></a> *obj=<span class="keyword">new</span> <a class="code" href="structxint_1_1detail_1_1random__generator.html">detail::random_generator<T></a>(gen);
+<a name="l00393"></a>00393     <a class="code" href="namespacexint_1_1detail.html#ada65da12642b63f663b50382068a607f">detail::set_random_generator</a>(*obj, obj);
+<a name="l00394"></a>00394 }
+<a name="l00395"></a>00395 
+<a name="l00396"></a>00396 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits>
+<a name="l00397"></a><a class="code" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">00397</a> <span class="keyword">inline</span> std::basic_ostream<charT,traits>& <a class="code" href="namespacexint.html#aa5b0dc228caee6523766326cf40297cd">operator<<</a>(std::basic_ostream<charT,
+<a name="l00398"></a>00398     traits>& out, <span class="keyword">const</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n)
+<a name="l00399"></a>00399 {
+<a name="l00400"></a>00400     <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#aece07e741fa78e1329373ff10d44e264">nan</a>()) {
+<a name="l00401"></a>00401         out << <a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">detail::nan_text</a>;
+<a name="l00402"></a>00402     } <span class="keywordflow">else</span> {
+<a name="l00403"></a>00403         <span class="keywordtype">int</span> base=((out.flags() & std::ios::hex) ? 16
+<a name="l00404"></a>00404             : (out.flags() & std::ios::oct) ? 8
+<a name="l00405"></a>00405             : 10);
+<a name="l00406"></a>00406         <span class="keywordtype">bool</span> upperCase=(out.flags() & std::ios::uppercase ? <span class="keyword">true</span> : <span class="keyword">false</span>);
+<a name="l00407"></a>00407 
+<a name="l00408"></a>00408         <span class="keywordflow">if</span> (out.flags() & std::ios::showbase) {
+<a name="l00409"></a>00409             <span class="keywordflow">if</span> (n.<a class="code" href="classxint_1_1integer.html#a5d84398ce89b376f695ccded2d20c8c2">sign</a>() < 0) out << <span class="stringliteral">"-"</span>;
+<a name="l00410"></a>00410 
+<a name="l00411"></a>00411             <span class="keywordflow">if</span> (base==16 && upperCase) out << <span class="stringliteral">"0X"</span>;
+<a name="l00412"></a>00412             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base==16) out << <span class="stringliteral">"0x"</span>;
+<a name="l00413"></a>00413             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base==8) out << <span class="stringliteral">"0"</span>;
+<a name="l00414"></a>00414 
+<a name="l00415"></a>00415             out << <a class="code" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">xint::to_string</a>(<a class="code" href="namespacexint.html#ac9e4ed282bafa93dbf608350df0127ba">abs</a>(n), base, upperCase);
+<a name="l00416"></a>00416         } <span class="keywordflow">else</span> {
+<a name="l00417"></a>00417             out << <a class="code" href="namespacexint.html#a600fbf8ebbaa7253dd96817a404001fd">xint::to_string</a>(n, base, upperCase);
+<a name="l00418"></a>00418         }
+<a name="l00419"></a>00419     }
+<a name="l00420"></a>00420     <span class="keywordflow">return</span> out;
+<a name="l00421"></a>00421 }
+<a name="l00422"></a>00422 
+<a name="l00423"></a>00423 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits>
+<a name="l00424"></a><a class="code" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">00424</a> <span class="keyword">inline</span> std::basic_istream<charT,traits>& <a class="code" href="namespacexint.html#a27a0715c66d7350b0f3800f6e161816f">operator>></a>(std::basic_istream<charT,
+<a name="l00425"></a>00425     traits>& in, <a class="code" href="classxint_1_1integer.html">xint::integer</a>& n)
+<a name="l00426"></a>00426 {
+<a name="l00427"></a>00427     <span class="keywordtype">int</span> hex=(in.flags() & std::ios::hex) ? 1 : 0;
+<a name="l00428"></a>00428     <span class="keywordtype">int</span> dec=(in.flags() & std::ios::dec) ? 1 : 0;
+<a name="l00429"></a>00429     <span class="keywordtype">int</span> oct=(in.flags() & std::ios::oct) ? 1 : 0;
+<a name="l00430"></a>00430     <span class="keywordtype">int</span> count=hex+dec+oct;
 <a name="l00431"></a>00431 
-<a name="l00432"></a>00432     <span class="keywordflow">if</span> (base==<a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a>) {
-<a name="l00433"></a>00433         <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'0'</span>) {
-<a name="l00434"></a>00434             in.ignore();
-<a name="l00435"></a>00435             <span class="keywordtype">int</span> c=in.peek();
-<a name="l00436"></a>00436             <span class="keywordflow">if</span> (c==<span class="charliteral">'x'</span> || c==<span class="charliteral">'X'</span>) {
-<a name="l00437"></a>00437                 in.ignore();
-<a name="l00438"></a>00438                 base=16;
-<a name="l00439"></a>00439             } <span class="keywordflow">else</span> base=8;
-<a name="l00440"></a>00440         } <span class="keywordflow">else</span> base=10;
-<a name="l00441"></a>00441     }
-<a name="l00442"></a>00442 
-<a name="l00443"></a>00443     <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'#'</span>) {
-<a name="l00444"></a>00444         <span class="comment">// Must be either #NaN# or an error</span>
-<a name="l00445"></a>00445         <span class="keywordtype">char</span> buffer[6];
-<a name="l00446"></a>00446         std::streamsize size=in.readsome(buffer, 5);
-<a name="l00447"></a>00447         buffer[size]=0;
-<a name="l00448"></a>00448         std::string str(buffer);
-<a name="l00449"></a>00449 
-<a name="l00450"></a>00450         <span class="keywordflow">if</span> (str==<a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">detail::nan_text</a>) n=<a class="code" href="classxint_1_1integer.html">integer</a>(<a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>());
-<a name="l00451"></a>00451         <span class="keywordflow">else</span> in.setstate(std::ios::failbit);
-<a name="l00452"></a>00452     } <span class="keywordflow">else</span> {
-<a name="l00453"></a>00453         <span class="keywordflow">while</span> (in) {
-<a name="l00454"></a>00454             <span class="keywordtype">int</span> c=in.peek();
-<a name="l00455"></a>00455             <span class="keywordflow">if</span> ((base==8 && (c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'7'</span>)) ||
-<a name="l00456"></a>00456                 (base==10 && (c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'9'</span>)) ||
-<a name="l00457"></a>00457                 (base==16 && ((c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'9'</span>) || (c>=<span class="charliteral">'a'</span> && c<=<span class="charliteral">'f'</span>) ||
-<a name="l00458"></a>00458                     (c>=<span class="charliteral">'A'</span> && c<=<span class="charliteral">'F'</span>))))
-<a name="l00459"></a>00459             {
-<a name="l00460"></a>00460                 in.ignore();
-<a name="l00461"></a>00461                 s.push_back(<span class="keywordtype">char</span>(c));
-<a name="l00462"></a>00462             } <span class="keywordflow">else</span> <span class="keywordflow">break</span>;
-<a name="l00463"></a>00463         }
-<a name="l00464"></a>00464 
-<a name="l00465"></a>00465         <a class="code" href="structxint_1_1detail_1_1token.html">token</a> allow=<a class="code" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">allow_exceptions</a>();
-<a name="l00466"></a>00466         <span class="keywordflow">try</span> {
-<a name="l00467"></a>00467             <a class="code" href="classxint_1_1integer.html">xint::integer</a> testValue=<a class="code" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">xint::from_string</a>(s, base);
-<a name="l00468"></a>00468             n=testValue;
-<a name="l00469"></a>00469         } <span class="keywordflow">catch</span> (<a class="code" href="classxint_1_1invalid__digit.html">xint::invalid_digit</a>&) {
-<a name="l00470"></a>00470             <span class="comment">// Catch invalid strings</span>
-<a name="l00471"></a>00471             in.setstate(std::ios::failbit);
-<a name="l00472"></a>00472         }
-<a name="l00473"></a>00473     }
-<a name="l00474"></a>00474 
-<a name="l00475"></a>00475     <span class="keywordflow">return</span> in;
-<a name="l00476"></a>00476 }
-<a name="l00477"></a>00477 
-<a name="l00478"></a>00478 } <span class="comment">// namespace xint</span>
-<a name="l00479"></a>00479 
-<a name="l00480"></a>00480 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_H</span>
+<a name="l00432"></a>00432     <span class="keywordtype">size_t</span> base=<a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a>;
+<a name="l00433"></a>00433     <span class="keywordflow">if</span> (count==1) {
+<a name="l00434"></a>00434         <span class="keywordflow">if</span> (hex) base=16;
+<a name="l00435"></a>00435         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (oct) base=8;
+<a name="l00436"></a>00436         <span class="keywordflow">else</span> base=10;
+<a name="l00437"></a>00437     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count>1) base=10;
+<a name="l00438"></a>00438     <span class="comment">// else auto-base</span>
+<a name="l00439"></a>00439 
+<a name="l00440"></a>00440     std::string s;
+<a name="l00441"></a>00441     <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'+'</span>) {
+<a name="l00442"></a>00442         in.ignore();
+<a name="l00443"></a>00443     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'-'</span>) {
+<a name="l00444"></a>00444         in.ignore();
+<a name="l00445"></a>00445         s.push_back(<span class="charliteral">'-'</span>);
+<a name="l00446"></a>00446     }
+<a name="l00447"></a>00447 
+<a name="l00448"></a>00448     <span class="keywordflow">if</span> (base==<a class="code" href="namespacexint.html#a7a5434a5f5fb1db19f0de18014c4fc41">autobase</a>) {
+<a name="l00449"></a>00449         <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'0'</span>) {
+<a name="l00450"></a>00450             in.ignore();
+<a name="l00451"></a>00451             <span class="keywordtype">int</span> c=in.peek();
+<a name="l00452"></a>00452             <span class="keywordflow">if</span> (c==<span class="charliteral">'x'</span> || c==<span class="charliteral">'X'</span>) {
+<a name="l00453"></a>00453                 in.ignore();
+<a name="l00454"></a>00454                 base=16;
+<a name="l00455"></a>00455             } <span class="keywordflow">else</span> base=8;
+<a name="l00456"></a>00456         } <span class="keywordflow">else</span> base=10;
+<a name="l00457"></a>00457     }
+<a name="l00458"></a>00458 
+<a name="l00459"></a>00459     <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'#'</span>) {
+<a name="l00460"></a>00460         <span class="comment">// Must be either #NaN# or an error</span>
+<a name="l00461"></a>00461         <span class="keywordtype">char</span> buffer[6];
+<a name="l00462"></a>00462         std::streamsize size=in.readsome(buffer, 5);
+<a name="l00463"></a>00463         buffer[size]=0;
+<a name="l00464"></a>00464         std::string str(buffer);
+<a name="l00465"></a>00465 
+<a name="l00466"></a>00466         <span class="keywordflow">if</span> (str==<a class="code" href="namespacexint_1_1detail.html#aede27c67f3308e0805fc3093ffe6f4ce">detail::nan_text</a>) n=<a class="code" href="classxint_1_1integer.html">integer</a>(<a class="code" href="classxint_1_1not__a__number.html">not_a_number</a>());
+<a name="l00467"></a>00467         <span class="keywordflow">else</span> in.setstate(std::ios::failbit);
+<a name="l00468"></a>00468     } <span class="keywordflow">else</span> {
+<a name="l00469"></a>00469         <span class="keywordflow">while</span> (in) {
+<a name="l00470"></a>00470             <span class="keywordtype">int</span> c=in.peek();
+<a name="l00471"></a>00471             <span class="keywordflow">if</span> ((base==8 && (c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'7'</span>)) ||
+<a name="l00472"></a>00472                 (base==10 && (c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'9'</span>)) ||
+<a name="l00473"></a>00473                 (base==16 && ((c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'9'</span>) || (c>=<span class="charliteral">'a'</span> && c<=<span class="charliteral">'f'</span>) ||
+<a name="l00474"></a>00474                     (c>=<span class="charliteral">'A'</span> && c<=<span class="charliteral">'F'</span>))))
+<a name="l00475"></a>00475             {
+<a name="l00476"></a>00476                 in.ignore();
+<a name="l00477"></a>00477                 s.push_back(<span class="keywordtype">char</span>(c));
+<a name="l00478"></a>00478             } <span class="keywordflow">else</span> <span class="keywordflow">break</span>;
+<a name="l00479"></a>00479         }
+<a name="l00480"></a>00480 
+<a name="l00481"></a>00481         <a class="code" href="structxint_1_1detail_1_1token.html">token</a> allow=<a class="code" href="namespacexint.html#a4b5a1a791ba11bb8f158a3b56bd9723e">allow_exceptions</a>();
+<a name="l00482"></a>00482         <span class="keywordflow">try</span> {
+<a name="l00483"></a>00483             <a class="code" href="classxint_1_1integer.html">xint::integer</a> testValue=<a class="code" href="namespacexint.html#ad9dcb2b835be5f8ee918979945911ac0">xint::from_string</a>(s, base);
+<a name="l00484"></a>00484             n=testValue;
+<a name="l00485"></a>00485         } <span class="keywordflow">catch</span> (<a class="code" href="classxint_1_1invalid__digit.html">xint::invalid_digit</a>&) {
+<a name="l00486"></a>00486             <span class="comment">// Catch invalid strings</span>
+<a name="l00487"></a>00487             in.setstate(std::ios::failbit);
+<a name="l00488"></a>00488         }
+<a name="l00489"></a>00489     }
+<a name="l00490"></a>00490 
+<a name="l00491"></a>00491     <span class="keywordflow">return</span> in;
+<a name="l00492"></a>00492 }
+<a name="l00493"></a>00493 
+<a name="l00494"></a>00494 } <span class="comment">// namespace xint</span>
+<a name="l00495"></a>00495 
+<a name="l00496"></a>00496 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_H</span>
 </pre></div></div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -503,7 +554,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/xint__data__t_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/xint__data__t_8hpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__data__t_8hpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -65,15 +65,7 @@
 <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">xint::detail::data_t::QuickDigits</a></td></tr>
 <tr><td colspan="2"><h2>Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint_1_1detail.html">xint::detail</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>implementation details, normal users should not need to use these. </p>
-<br/></td></tr>
-</p>
 </table>
 </div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
@@ -94,7 +86,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/xint__data__t_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/xint__data__t_8hpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__data__t_8hpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -88,14 +88,14 @@
 <a name="l00032"></a><a class="code" href="structxint_1_1detail_1_1data__t.html">00032</a> <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a> {
 <a name="l00033"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">00033</a>     <span class="keyword">struct </span><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html">QuickDigits</a> {
 <a name="l00034"></a>00034         <span class="comment">// We want at least enough QuickDigits to hold two ints.</span>
-<a name="l00035"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">00035</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">intbits</a>=std::numeric_limits<unsigned int>::digits;
-<a name="l00036"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">00036</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a>=(2*<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a8c823c135d72766b46249e6585585859">intbits</a>/<a class="code" href="namespacexint_1_1detail.html#a9bd9e8d55061238d63913020d2721518">bits_per_digit</a>);
-<a name="l00037"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">00037</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a>=3;
-<a name="l00038"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">00038</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">count</a>=(<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a> < <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a> ? <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a5ee62e707000ba18c444ae3aeec89d75">minimum</a> : <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a1d6ffbc11a8c4ab2617a391f843a8a5e">suggested</a>);
+<a name="l00035"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#af5323a8fbfdfaa3cae371872ec865fc5">00035</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<unsigned int>::digits;
+<a name="l00036"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092">00036</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">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="l00037"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">00037</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">minimum</a>=3;
+<a name="l00038"></a><a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">00038</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">suggested</a> < <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">minimum</a> ? <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#aeb7c43d282f871305e76936664cee25f">minimum</a> : <a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a789eadb40cb8c034823ecb5fb6094092">suggested</a>);
 <a name="l00039"></a>00039     };
 <a name="l00040"></a>00040 
-<a name="l00041"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">00041</a>     <span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#ac594577f74057c94ad70a3503068d286">mLength</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a100abfc5841043a6c1c5d5afa2d6cd94">mAllocated</a>;
-<a name="l00042"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">00042</a>     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>[<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#a4e25c9e14a1730c37e2c7383c46679ec">QuickDigits::count</a>];
+<a name="l00041"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a599933d272e3592b2d0985ca7f7c72e2">00041</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="l00042"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">00042</a>     <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *<a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <a class="code" href="structxint_1_1detail_1_1data__t.html#a022f882ed0818612861b1a67881ae131">mQuickDigits</a>[<a class="code" href="structxint_1_1detail_1_1data__t_1_1_quick_digits.html#ac691b42c4404e59ae07f89146e722736">QuickDigits::count</a>];
 <a name="l00043"></a>00043 
 <a name="l00044"></a>00044 <span class="preprocessor">    #if !defined(XINT_SECURE)</span>
 <a name="l00045"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">00045</a> <span class="preprocessor"></span>        std::vector<digit_t> <a class="code" href="structxint_1_1detail_1_1data__t.html#a96c33fdc37dd3c774256f7ed20ce735c">mStorage</a>;
@@ -114,10 +114,10 @@
 <a name="l00058"></a>00058 <span class="preprocessor"></span>
 <a name="l00059"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">00059</a>     <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a7230e725461510f321bb1c45251b62f3">attach</a>() { ++<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>; }
 <a name="l00060"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">00060</a>     <span class="keywordtype">bool</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#afd5505e388c5bf8c9cf069df81a91818">detach</a>() { <span class="keywordflow">return</span> (--<a class="code" href="structxint_1_1detail_1_1data__t.html#a73bc854b5f9ced6576b97d2cff8f3a5d">mCopies</a>==0); }
-<a name="l00061"></a>00061     <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(<span class="keywordtype">int</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a5c9382aec147090d7e7e2b5e972402a9">digits</a>, <span class="keywordtype">bool</span> copydigits=<span class="keyword">false</span>);
-<a name="l00062"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">00062</a>     <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a935c926cadfe0b92efe3b03201353862">realloc</a>(<span class="keywordtype">int</span> newdigits) { <a class="code" href="structxint_1_1detail_1_1data__t.html#a8b5fe67dc7c5808306707f2210ab5658">alloc</a>(newdigits, <span class="keyword">true</span>); }
+<a name="l00061"></a>00061     <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="l00062"></a><a class="code" href="structxint_1_1detail_1_1data__t.html#a2bb2c79d47f2fda3605f34b80cb58b8b">00062</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="l00063"></a>00063     <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a6d45feedd311e26f7de06597fb0c6b81">skipLeadingZeros</a>();
-<a name="l00064"></a>00064     <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#acc02d0c3b8c867ff12af155dae8445dd">copy</a>(<span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a> *c, <span class="keywordtype">int</span> extraDigits=0);
+<a name="l00064"></a>00064     <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">data_t</a> *c, <span class="keywordtype">size_t</span> extraDigits=0);
 <a name="l00065"></a>00065     <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a288850fd62ef26302ce4767a45acd968">zero</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> *p, <span class="keywordtype">size_t</span> count);
 <a name="l00066"></a>00066 
 <a name="l00067"></a>00067     <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a57fc3966c44d09daeede53899673cde3">quickset</a>(<a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d1, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d2=0, <a class="code" href="namespacexint_1_1detail.html#a8843fb7e364832d8d5983de28bdbcf34">digit_t</a> d3=0);
@@ -131,8 +131,8 @@
 <a name="l00075"></a>00075     <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a650d374b8d38b369273830bb9d939da4">subtract</a>(<span class="keyword">const</span> <a class="code" href="structxint_1_1detail_1_1data__t.html">data_t</a>& subtrahend);
 <a name="l00076"></a>00076 
 <a name="l00077"></a>00077     <span class="comment">// These are also calculated in place, for maximum speed.</span>
-<a name="l00078"></a>00078     <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#a4375d95de49470025539a9b41429bcf6">shift_left</a>(<span class="keywordtype">int</span> byBits);
-<a name="l00079"></a>00079     <span class="keywordtype">void</span> <a class="code" href="structxint_1_1detail_1_1data__t.html#aacee3802bd433c989d9fdc6a1731019d">shift_right</a>(<span class="keywordtype">int</span> byBits);
+<a name="l00078"></a>00078     <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="l00079"></a>00079     <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="l00080"></a>00080 };
 <a name="l00081"></a>00081 
 <a name="l00082"></a>00082 } <span class="comment">// namespace detail</span>
@@ -158,7 +158,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/xint__fibonacci_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/xint__fibonacci_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__fibonacci_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -70,7 +70,8 @@
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Simple demo of xint sending the fibonacci sequence to stream output. </p>
-<p>Fibonacci numbers are a sequence of numbers, starting with the numbers 0 and 1, where each successive number is the sum of the previous two. The first few Fibonacci numbers are:</p>
+<p>Fibonacci numbers are a sequence of numbers, starting with the numbers 0 and 1, where each successive number is the sum of the previous two.</p>
+<p>The first few Fibonacci numbers are:</p>
 <p>0 1 1 2 3 5 8 13 21 34 55 89 144...</p>
 <p>You might be curious what the first Fibonacci number is that's too big to calculate using the standard C++ unsigned long type. A brute-force method of calculating this would be problematic, since it might not be possible to tell when it overflows. But with the XInt library, it's child's play.</p>
 <p>If you're not intimately familiar with the Fibonacci sequence, and how fast the numbers in it grow, the answer might shock you.</p>
@@ -93,7 +94,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="xint__fibonacci_8cpp_source.html#l00033">33</a> of file <a class="el" href="xint__fibonacci_8cpp_source.html">xint_fibonacci.cpp</a>.</p>
+<p>Definition at line <a class="el" href="xint__fibonacci_8cpp_source.html#l00040">40</a> of file <a class="el" href="xint__fibonacci_8cpp_source.html">xint_fibonacci.cpp</a>.</p>
 
 </div>
 </div>
@@ -116,7 +117,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/xint__fibonacci_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/xint__fibonacci_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__fibonacci_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -62,55 +62,55 @@
 <a name="l00006"></a>00006 <span class="comment">// (See accompanying file LICENSE_1_0.txt or copy at</span>
 <a name="l00007"></a>00007 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
 <a name="l00008"></a>00008 
-<a name="l00028"></a>00028 <span class="preprocessor">#include <iostream></span>
-<a name="l00029"></a>00029 <span class="preprocessor">#include <limits></span>
-<a name="l00030"></a>00030 
-<a name="l00031"></a>00031 <span class="preprocessor">#include <<a class="code" href="xint_8hpp.html">boost/xint/xint.hpp</a>></span>
-<a name="l00032"></a>00032 
-<a name="l00033"></a><a class="code" href="xint__fibonacci_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">00033</a> <span class="keywordtype">int</span> <a class="code" href="xint__fibonacci_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>() {
-<a name="l00034"></a>00034     <span class="keyword">using</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>;
-<a name="l00035"></a>00035     <span class="keyword">using</span> std::cout;
-<a name="l00036"></a>00036     <span class="keyword">using</span> std::endl;
-<a name="l00037"></a>00037     <span class="keyword">using</span> std::numeric_limits;
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039 <span class="comment">//[xint_fibonacci_snippet_1</span>
-<a name="l00040"></a>00040 
-<a name="l00041"></a>00041 <span class="comment">// Select our limit, in this case the largest number </span>
-<a name="l00042"></a>00042 <span class="comment">// that will fit into an unsigned long:</span>
-<a name="l00043"></a>00043   integer limit=(std::numeric_limits<unsigned long>::max)();
-<a name="l00044"></a>00044 
-<a name="l00045"></a>00045   <span class="comment">// Set the first two numbers in the sequence:</span>
-<a name="l00046"></a>00046   integer n, n1=0, n2=1;
-<a name="l00047"></a>00047 <span class="comment">//] [xint_fibonacci_snippet_1]</span>
-<a name="l00048"></a>00048 
-<a name="l00049"></a>00049     <span class="comment">// Now count the items in the sequence as we iterate over them,</span>
-<a name="l00050"></a>00050     <span class="comment">//  until we come to the first one greater than the limit we've set.</span>
-<a name="l00051"></a>00051     <span class="keywordtype">size_t</span> counter=0;
-<a name="l00052"></a>00052     cout << counter++ << <span class="stringliteral">": "</span> << n1 << endl;
-<a name="l00053"></a>00053     cout << counter++ << <span class="stringliteral">": "</span> << n2 << endl;
-<a name="l00054"></a>00054 
-<a name="l00055"></a>00055     <span class="keywordflow">while</span> (<span class="keyword">true</span>) {
-<a name="l00056"></a>00056         n = n1 + n2;
-<a name="l00057"></a>00057         <span class="keywordflow">if</span> (n > limit) <span class="keywordflow">break</span>;
-<a name="l00058"></a>00058         <span class="comment">// That one didn't do it, go back for another try.</span>
-<a name="l00059"></a>00059         cout << counter++ << <span class="stringliteral">": "</span> << n << endl;
-<a name="l00060"></a>00060 
-<a name="l00061"></a>00061         n1=n2;
-<a name="l00062"></a>00062         n2=n;
-<a name="l00063"></a>00063     }
-<a name="l00064"></a>00064 
-<a name="l00065"></a>00065     cout << <span class="stringliteral">"The answer is "</span> << counter << <span class="stringliteral">" ("</span> << n << <span class="stringliteral">")."</span> << endl;
-<a name="l00066"></a>00066 } <span class="comment">// int main()</span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include <iostream></span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include <limits></span>
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="preprocessor">#include <<a class="code" href="xint_8hpp.html">boost/xint/xint.hpp</a>></span>
+<a name="l00039"></a>00039 
+<a name="l00040"></a><a class="code" href="xint__fibonacci_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">00040</a> <span class="keywordtype">int</span> <a class="code" href="xint__fibonacci_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>() {
+<a name="l00041"></a>00041     <span class="keyword">using</span> <a class="code" href="classxint_1_1integer.html">xint::integer</a>;
+<a name="l00042"></a>00042     <span class="keyword">using</span> std::cout;
+<a name="l00043"></a>00043     <span class="keyword">using</span> std::endl;
+<a name="l00044"></a>00044     <span class="keyword">using</span> std::numeric_limits;
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="comment">//[xint_fibonacci_snippet_1</span>
+<a name="l00047"></a>00047 
+<a name="l00048"></a>00048 <span class="comment">// Select our limit, in this case the largest number </span>
+<a name="l00049"></a>00049 <span class="comment">// that will fit into an unsigned long:</span>
+<a name="l00050"></a>00050   integer limit=(std::numeric_limits<unsigned long>::max)();
+<a name="l00051"></a>00051 
+<a name="l00052"></a>00052   <span class="comment">// Set the first two numbers in the sequence:</span>
+<a name="l00053"></a>00053   integer n, n1=0, n2=1;
+<a name="l00054"></a>00054 <span class="comment">//] [xint_fibonacci_snippet_1]</span>
+<a name="l00055"></a>00055 
+<a name="l00056"></a>00056     <span class="comment">// Now count the items in the sequence as we iterate over them,</span>
+<a name="l00057"></a>00057     <span class="comment">//  until we come to the first one greater than the limit we've set.</span>
+<a name="l00058"></a>00058     <span class="keywordtype">size_t</span> counter=0;
+<a name="l00059"></a>00059     cout << counter++ << <span class="stringliteral">": "</span> << n1 << endl;
+<a name="l00060"></a>00060     cout << counter++ << <span class="stringliteral">": "</span> << n2 << endl;
+<a name="l00061"></a>00061 
+<a name="l00062"></a>00062     <span class="keywordflow">while</span> (<span class="keyword">true</span>) {
+<a name="l00063"></a>00063         n = n1 + n2;
+<a name="l00064"></a>00064         <span class="keywordflow">if</span> (n > limit) <span class="keywordflow">break</span>;
+<a name="l00065"></a>00065         <span class="comment">// That one didn't do it, go back for another try.</span>
+<a name="l00066"></a>00066         cout << counter++ << <span class="stringliteral">": "</span> << n << endl;
 <a name="l00067"></a>00067 
-<a name="l00068"></a>00068 
-<a name="l00069"></a>00069 <span class="comment">/*</span>
-<a name="l00070"></a>00070 <span class="comment">//[xint_fibonacci_output_1</span>
-<a name="l00071"></a>00071 <span class="comment"></span>
-<a name="l00072"></a>00072 <span class="comment"></span>
-<a name="l00073"></a>00073 <span class="comment"></span>
-<a name="l00074"></a>00074 <span class="comment">//] [xint_fibonacci_output_1]</span>
-<a name="l00075"></a>00075 <span class="comment">*/</span>
-<a name="l00076"></a>00076 
+<a name="l00068"></a>00068         n1=n2;
+<a name="l00069"></a>00069         n2=n;
+<a name="l00070"></a>00070     }
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072     cout << <span class="stringliteral">"The answer is "</span> << counter << <span class="stringliteral">" ("</span> << n << <span class="stringliteral">")."</span> << endl;
+<a name="l00073"></a>00073 } <span class="comment">// int main()</span>
+<a name="l00074"></a>00074 
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076 <span class="comment">/*</span>
+<a name="l00077"></a>00077 <span class="comment">//[xint_fibonacci_output_1</span>
+<a name="l00078"></a>00078 <span class="comment"></span>
+<a name="l00079"></a>00079 <span class="comment"></span>
+<a name="l00080"></a>00080 <span class="comment"></span>
+<a name="l00081"></a>00081 <span class="comment">//] [xint_fibonacci_output_1]</span>
+<a name="l00082"></a>00082 <span class="comment">*/</span>
+<a name="l00083"></a>00083 
 </pre></div></div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -130,7 +130,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/xint__monty_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/xint__monty_8hpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__monty_8hpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -61,10 +61,6 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">digit_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#afd561fd7c7631267fbc7e5c75c2bde71">xint::inverse0</a> (const integer &n)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aaf3b26669d4e61f6af5dcae42b20e08b">xint::montgomeryR</a> (const integer &n)</td></tr>
@@ -92,7 +88,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/xint__monty_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/xint__monty_8hpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__monty_8hpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -103,7 +103,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/xint__simple_8cpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/xint__simple_8cpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__simple_8cpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -110,7 +110,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/xint__simple_8cpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/xint__simple_8cpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__simple_8cpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -124,7 +124,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/xint__test_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/xint__test_8hpp.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__test_8hpp.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -61,10 +61,6 @@
 <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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html">xint</a></td></tr>
-
-<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>namespace for all extended integer classes and functions. </p>
-<br/></td></tr>
-</p>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a972fb39595e902be6c50629356b44e5b">xint::testAll</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a509778d505a3c8a0b335817150eaead2">xint::testBitManipulations</a> ()</td></tr>
@@ -73,7 +69,6 @@
 <tr><td class="memItemLeft" align="right" valign="top">bool </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 </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 </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#aa1dbeb0c1ad12e8a8de7efb6c47e455f">xint::testRandom</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacexint.html#a9cce0401174b9ae173671b0800c5f457">xint::testMontyPowerMod</a> ()</td></tr>
 </table>
@@ -96,7 +91,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>
Modified: sandbox/xint/libs/xint/doc/doxygen/html/xint__test_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/doxygen/html/xint__test_8hpp_source.html	(original)
+++ sandbox/xint/libs/xint/doc/doxygen/html/xint__test_8hpp_source.html	2010-03-31 10:48:23 EDT (Wed, 31 Mar 2010)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
-  <title>Quickbook Doxygen Index Prototype Tue Mar 30 18:10:43 2010 xInt eXtended Integer Library </title>
+  <title>Quickbook Doxygen Index Prototype Wed Mar 31 15:44:54 2010 xInt eXtended Integer Library </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="my_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -79,13 +79,12 @@
 <a name="l00023"></a>00023 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a4ed78ff75865ae44a00d3709dd88c3a1">testDivideMod</a>();
 <a name="l00024"></a>00024 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ae4ef5f20964fa995df7828f27bd7adbe">testConvert</a>();
 <a name="l00025"></a>00025 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ae3305f62ca9be58fbc11dbd4c703f38b">testStreams</a>();
-<a name="l00026"></a>00026 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#aa1dbeb0c1ad12e8a8de7efb6c47e455f">testRandom</a>();
-<a name="l00027"></a>00027 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ac40068d64f8c4d9002a0687935888c42">testMontyMultiply</a>();
-<a name="l00028"></a>00028 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a9cce0401174b9ae173671b0800c5f457">testMontyPowerMod</a>();
-<a name="l00029"></a>00029 
-<a name="l00030"></a>00030 } <span class="comment">// namespace xint</span>
-<a name="l00031"></a>00031 
-<a name="l00032"></a>00032 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_TEST_H</span>
+<a name="l00026"></a>00026 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#ac40068d64f8c4d9002a0687935888c42">testMontyMultiply</a>();
+<a name="l00027"></a>00027 <span class="keywordtype">bool</span> <a class="code" href="namespacexint.html#a9cce0401174b9ae173671b0800c5f457">testMontyPowerMod</a>();
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 } <span class="comment">// namespace xint</span>
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_TEST_H</span>
 </pre></div></div>
 <!-- xint custom Doxygen footer my_doxygen_footer.html  -->-
 
@@ -105,7 +104,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below:  -->
      <p>Copyright © 2009 - 2010 Chad Nelson, Oak Circle Software, Inc</p>
       <!-- 2010 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
-     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Tue Mar 30 18:10:43 2010</p>
+     <p>Doxygen Documentation generated by  
 1.6.3, Revised at Wed Mar 31 15:44:54 2010</p>
   </address>
   </tr>
 </tbody>