|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r61756 - in sandbox/xint: boost/xint doc doc/dox src
From: chad.thecomfychair_at_[hidden]
Date: 2010-05-04 10:23:36
Author: chadnelson
Date: 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
New Revision: 61756
URL: http://svn.boost.org/trac/boost/changeset/61756
Log:
Fixed a problem causing baseline and move results to be worse than expected. Copy-on-write is still faster by over 20% though.
Text files modified:
sandbox/xint/boost/xint/fixed_integer.hpp | 6
sandbox/xint/boost/xint/internals.hpp | 13
sandbox/xint/boost/xint/random.hpp | 5
sandbox/xint/doc/acknowledgements.html | 16
sandbox/xint/doc/acknowledgements_8dox.html | 2
sandbox/xint/doc/annotated.html | 2
sandbox/xint/doc/base__integer_8cpp.html | 2
sandbox/xint/doc/base__integer_8cpp_source.html | 324 ++++++++++----------
sandbox/xint/doc/bit__manipulations_8cpp.html | 2
sandbox/xint/doc/bit__manipulations_8cpp_source.html | 10
sandbox/xint/doc/classboost_1_1xint_1_1base__divide__t-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1base__divide__t.html | 20
sandbox/xint/doc/classboost_1_1xint_1_1default__random__generator-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1default__random__generator.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer__any-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer__any.html | 14
sandbox/xint/doc/classboost_1_1xint_1_1integer-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1integer.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1nothrow__integer-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1nothrow__integer.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1strong__random__generator-members.html | 2
sandbox/xint/doc/classboost_1_1xint_1_1strong__random__generator.html | 2
sandbox/xint/doc/classdisable__boost__rv__ref.html | 2
sandbox/xint/doc/classes.html | 2
sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1fixed__integer_3_01_bits_01_4_01_4-members.html | 2
sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1fixed__integer_3_01_bits_01_4_01_4.html | 2
sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4-members.html | 2
sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4.html | 2
sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4-members.html | 2
sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4.html | 2
sandbox/xint/doc/compare_8cpp.html | 2
sandbox/xint/doc/compare_8cpp_source.html | 2
sandbox/xint/doc/complexity.html | 2
sandbox/xint/doc/complexity_8dox.html | 2
sandbox/xint/doc/convert_8cpp.html | 2
sandbox/xint/doc/convert_8cpp_source.html | 8
sandbox/xint/doc/copyonwrite_8dox.html | 2
sandbox/xint/doc/cow.html | 2
sandbox/xint/doc/data__t_8cpp.html | 2
sandbox/xint/doc/data__t_8cpp_source.html | 2
sandbox/xint/doc/dependencies.html | 2
sandbox/xint/doc/dependencies_8dox.html | 2
sandbox/xint/doc/dox/acknowledgements.dox | 20
sandbox/xint/doc/ex__fibonacci.html | 2
sandbox/xint/doc/ex__fibonacci_8dox.html | 2
sandbox/xint/doc/exceptions.html | 2
sandbox/xint/doc/exceptions_8dox.html | 2
sandbox/xint/doc/exceptions_8hpp.html | 2
sandbox/xint/doc/exceptions_8hpp_source.html | 2
sandbox/xint/doc/files.html | 2
sandbox/xint/doc/fixed__and__variable.html | 2
sandbox/xint/doc/fixed__and__variable_8dox.html | 2
sandbox/xint/doc/fixed__integer_8hpp.html | 2
sandbox/xint/doc/fixed__integer_8hpp_source.html | 8
sandbox/xint/doc/functions.html | 2
sandbox/xint/doc/functions_0x62.html | 2
sandbox/xint/doc/functions_0x63.html | 2
sandbox/xint/doc/functions_0x64.html | 2
sandbox/xint/doc/functions_0x65.html | 2
sandbox/xint/doc/functions_0x66.html | 2
sandbox/xint/doc/functions_0x68.html | 2
sandbox/xint/doc/functions_0x69.html | 2
sandbox/xint/doc/functions_0x6d.html | 2
sandbox/xint/doc/functions_0x6e.html | 2
sandbox/xint/doc/functions_0x6f.html | 2
sandbox/xint/doc/functions_0x71.html | 2
sandbox/xint/doc/functions_0x72.html | 2
sandbox/xint/doc/functions_0x73.html | 2
sandbox/xint/doc/functions_0x74.html | 2
sandbox/xint/doc/functions_0x7a.html | 2
sandbox/xint/doc/functions_0x7e.html | 2
sandbox/xint/doc/functions_func.html | 2
sandbox/xint/doc/functions_type.html | 2
sandbox/xint/doc/functions_vars.html | 2
sandbox/xint/doc/gcd_8cpp.html | 2
sandbox/xint/doc/gcd_8cpp_source.html | 18
sandbox/xint/doc/globals.html | 2
sandbox/xint/doc/globals_defs.html | 2
sandbox/xint/doc/hierarchy.html | 2
sandbox/xint/doc/history.html | 2
sandbox/xint/doc/history_8dox.html | 2
sandbox/xint/doc/index.html | 2
sandbox/xint/doc/index_8dox.html | 2
sandbox/xint/doc/integer_8cpp.html | 2
sandbox/xint/doc/integer_8cpp_source.html | 10
sandbox/xint/doc/integer_8hpp.html | 2
sandbox/xint/doc/integer_8hpp_source.html | 2
sandbox/xint/doc/internals_8hpp.html | 2
sandbox/xint/doc/internals_8hpp_source.html | 619 ++++++++++++++++++++-------------------
sandbox/xint/doc/misc_8cpp.html | 2
sandbox/xint/doc/misc_8cpp_source.html | 2
sandbox/xint/doc/modular_8cpp.html | 2
sandbox/xint/doc/modular_8cpp_source.html | 8
sandbox/xint/doc/monty_8cpp.html | 2
sandbox/xint/doc/monty_8cpp_source.html | 2
sandbox/xint/doc/monty_8hpp.html | 2
sandbox/xint/doc/monty_8hpp_source.html | 2
sandbox/xint/doc/namespaceboost.html | 2
sandbox/xint/doc/namespaceboost_1_1xint.html | 4
sandbox/xint/doc/namespaceboost_1_1xint_1_1detail.html | 2
sandbox/xint/doc/namespaceboost_1_1xint_1_1exceptions.html | 2
sandbox/xint/doc/namespacemembers.html | 2
sandbox/xint/doc/namespacemembers_func.html | 2
sandbox/xint/doc/namespacemembers_type.html | 2
sandbox/xint/doc/namespacemembers_vars.html | 2
sandbox/xint/doc/namespaces.html | 2
sandbox/xint/doc/namespacestd.html | 2
sandbox/xint/doc/nan.html | 2
sandbox/xint/doc/nan_8dox.html | 2
sandbox/xint/doc/nothrow__bit__manipulations_8cpp.html | 2
sandbox/xint/doc/nothrow__bit__manipulations_8cpp_source.html | 2
sandbox/xint/doc/nothrow__compare_8cpp.html | 2
sandbox/xint/doc/nothrow__compare_8cpp_source.html | 2
sandbox/xint/doc/nothrow__convert_8cpp.html | 2
sandbox/xint/doc/nothrow__convert_8cpp_source.html | 2
sandbox/xint/doc/nothrow__gcd_8cpp.html | 2
sandbox/xint/doc/nothrow__gcd_8cpp_source.html | 2
sandbox/xint/doc/nothrow__integer_8cpp.html | 2
sandbox/xint/doc/nothrow__integer_8cpp_source.html | 12
sandbox/xint/doc/nothrow__integer_8hpp.html | 2
sandbox/xint/doc/nothrow__integer_8hpp_source.html | 2
sandbox/xint/doc/nothrow__misc_8cpp.html | 2
sandbox/xint/doc/nothrow__misc_8cpp_source.html | 2
sandbox/xint/doc/nothrow__modular_8cpp.html | 2
sandbox/xint/doc/nothrow__modular_8cpp_source.html | 2
sandbox/xint/doc/nothrow__operators_8cpp.html | 2
sandbox/xint/doc/nothrow__operators_8cpp_source.html | 2
sandbox/xint/doc/nothrow__powers_8cpp.html | 2
sandbox/xint/doc/nothrow__powers_8cpp_source.html | 2
sandbox/xint/doc/nothrow__primes_8cpp.html | 2
sandbox/xint/doc/nothrow__primes_8cpp_source.html | 2
sandbox/xint/doc/nothrow__primitives_8cpp.html | 2
sandbox/xint/doc/nothrow__primitives_8cpp_source.html | 2
sandbox/xint/doc/nothrow__roots_8cpp.html | 2
sandbox/xint/doc/nothrow__roots_8cpp_source.html | 2
sandbox/xint/doc/operators_8cpp.html | 2
sandbox/xint/doc/operators_8cpp_source.html | 2
sandbox/xint/doc/powers_8cpp.html | 2
sandbox/xint/doc/powers_8cpp_source.html | 8
sandbox/xint/doc/primes.html | 2
sandbox/xint/doc/primes_8cpp.html | 2
sandbox/xint/doc/primes_8cpp_source.html | 2
sandbox/xint/doc/primes_8dox.html | 2
sandbox/xint/doc/primitives_8cpp.html | 2
sandbox/xint/doc/primitives_8cpp_source.html | 591 ++++++++++++++++++-------------------
sandbox/xint/doc/r__core.html | 2
sandbox/xint/doc/r__core_8dox.html | 2
sandbox/xint/doc/r__cow.html | 2
sandbox/xint/doc/r__cow_8dox.html | 2
sandbox/xint/doc/r__exception__blocking.html | 2
sandbox/xint/doc/r__exception__blocking_8dox.html | 2
sandbox/xint/doc/r__insecure__default.html | 2
sandbox/xint/doc/r__insecure__default_8dox.html | 2
sandbox/xint/doc/r__interface.html | 2
sandbox/xint/doc/r__interface_8dox.html | 2
sandbox/xint/doc/r__interface__design__only.html | 2
sandbox/xint/doc/r__interface__design__only_8dox.html | 2
sandbox/xint/doc/r__nan.html | 2
sandbox/xint/doc/r__nan_8dox.html | 2
sandbox/xint/doc/r__negzero.html | 2
sandbox/xint/doc/r__negzero_8dox.html | 2
sandbox/xint/doc/r__random.html | 2
sandbox/xint/doc/r__random_8dox.html | 2
sandbox/xint/doc/r__shared__ptr.html | 2
sandbox/xint/doc/r__shared__ptr_8dox.html | 2
sandbox/xint/doc/random.html | 2
sandbox/xint/doc/random_8cpp.html | 2
sandbox/xint/doc/random_8cpp_source.html | 2
sandbox/xint/doc/random_8dox.html | 2
sandbox/xint/doc/random_8hpp.html | 2
sandbox/xint/doc/random_8hpp_source.html | 33 +-
sandbox/xint/doc/rationale.html | 2
sandbox/xint/doc/rationale_8dox.html | 2
sandbox/xint/doc/roots_8cpp.html | 2
sandbox/xint/doc/roots_8cpp_source.html | 8
sandbox/xint/doc/securemode.html | 2
sandbox/xint/doc/securemode_8dox.html | 2
sandbox/xint/doc/testing.html | 2
sandbox/xint/doc/testing_8dox.html | 2
sandbox/xint/doc/threadsafe.html | 2
sandbox/xint/doc/threadsafe_8dox.html | 2
sandbox/xint/doc/xint_8hpp.html | 2
sandbox/xint/doc/xint_8hpp_source.html | 2
sandbox/xint/doc/zero.html | 2
sandbox/xint/doc/zero_8dox.html | 2
sandbox/xint/src/base_integer.cpp | 24 +
sandbox/xint/src/bit_manipulations.cpp | 8
sandbox/xint/src/convert.cpp | 6
sandbox/xint/src/gcd.cpp | 16
sandbox/xint/src/integer.cpp | 8
sandbox/xint/src/modular.cpp | 6
sandbox/xint/src/nothrow_integer.cpp | 10
sandbox/xint/src/powers.cpp | 6
sandbox/xint/src/primitives.cpp | 41 +-
sandbox/xint/src/roots.cpp | 6
217 files changed, 1143 insertions(+), 1115 deletions(-)
Modified: sandbox/xint/boost/xint/fixed_integer.hpp
==============================================================================
--- sandbox/xint/boost/xint/fixed_integer.hpp (original)
+++ sandbox/xint/boost/xint/fixed_integer.hpp 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -79,8 +79,8 @@
%integer types.
*/
//!@{
- fixed_integer<Bits>& operator=(const fixed_integer<Bits>& c) { _attach(c);
- return *this; }
+ fixed_integer<Bits>& operator=(const fixed_integer<Bits>& c) { _attach(c,
+ false); return *this; }
bool operator!() const { return _is_zero(); }
fixed_integer<Bits> operator-() const { return negate(*this); }
@@ -333,7 +333,7 @@
fixed_integer_any(preallocated_zero.get())
{
if (b._is_nan()) throw exceptions::not_a_number();
- _attach(b);
+ _attach(b, false);
}
/*! \copydoc integer::integer(const std::string&, size_t)
Modified: sandbox/xint/boost/xint/internals.hpp
==============================================================================
--- sandbox/xint/boost/xint/internals.hpp (original)
+++ sandbox/xint/boost/xint/internals.hpp 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -185,20 +185,20 @@
size_t _fixed_bits() const;
bool _get_readonly() const;
+ void _mark_movable();
+ bool _is_movable() const;
bool _get_negative() const;
void _set_negative(bool neg);
void _toggle_negative();
void _realloc(size_t new_digit_count);
void _cleanup();
- void _attach(const base_integer& copy);
+ void _attach(const base_integer& copy, bool treat_as_movable);
void _increment(bool absolute_value=false);
void _decrement(bool absolute_value=false);
- void _add(const base_integer& n);
- void _subtract(const base_integer& n);
- integer _to_integer() const;
+ integer _to_integer(bool treat_as_movable) const;
void _set_signed(boost::intmax_t n);
void _set_unsigned(boost::uintmax_t n, bool negative=false);
@@ -213,8 +213,8 @@
base_integer(const base_integer& c, bool fixed);
explicit base_integer(data_t *adopt, bool neg=false);
base_integer(size_t count, digit_t mask);
- void _base_attach(data_t *new_data, flag_t flags=0, size_t
- extra_allocation=0);
+ void _base_attach(data_t *new_data, flag_t flags = 0, size_t
+ extra_allocation = 0, bool is_movable = false);
void _set_readonly();
@@ -222,6 +222,7 @@
static const flag_t flag_negative = 0x01;
static const flag_t flag_readonly = 0x02;
static const flag_t flag_fixedlength = 0x04;
+ static const flag_t flag_movable = 0x08;
private:
flag_t flags;
Modified: sandbox/xint/boost/xint/random.hpp
==============================================================================
--- sandbox/xint/boost/xint/random.hpp (original)
+++ sandbox/xint/boost/xint/random.hpp 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -124,8 +124,9 @@
bool can_be_negative)
{
detail::random_generator<T> generator(gen);
- return BOOST_XINT_MOVE(detail::random_by_size(generator, bits, high_bit_on,
- low_bit_on, can_be_negative));
+ integer r(detail::random_by_size(generator, bits, high_bit_on, low_bit_on,
+ can_be_negative));
+ return BOOST_XINT_MOVE(r);
}
/*! \brief Generate a randomly-generated prime number of a particular bit-size.
Modified: sandbox/xint/doc/acknowledgements.html
==============================================================================
--- sandbox/xint/doc/acknowledgements.html (original)
+++ sandbox/xint/doc/acknowledgements.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -30,13 +30,20 @@
<li>Providing test cases and documentation tweaks;</li>
<li>General advice and moral support.</li>
</ul>
-<p>The library wouldn't be nearly as good without his work, and I hope I didn't irritate him too much. :-)</p>
+<p>...and to Jeffrey Lee Hellrung, Jr., for...</p>
+<ul>
+<li>advice on implementing move-aware objects;</li>
+<li>an invigorating discussion on the differing needs of an integer library versus a floating-point one;</li>
+<li>politely pointing out a logic bug that I was blind to;</li>
+<li>and several other things that I'm sure I missed.</li>
+</ul>
+<p>The library wouldn't be nearly as good without their work.</p>
<p>Other contributors from the Boost development list, roughly in the order that they contributed:</p>
<ul>
<li>Steven Watanabe, for an improvement to the template constructor, and for comments on the random number code.</li>
<li>Scott McMurray, for comments on the random number code, the Not-a-Number value, and the blockable exceptions design, and for accidentally pointing out an error in the square-root function, among other things.</li>
-<li>"Pavel" for suggesting adding the algorithmic complexity of each function to the documentation, and for understanding what I was trying to explain when no one else seemed to.</li>
-<li>Jeffrey Lee Hellrung, Jr., for advice on implementing move-aware objects, and for an invigorating discussion on the differing needs of an integer library versus a floating-point one, among other things.</li>
+<li>"Pavel" for suggesting adding the algorithmic complexity of each function to the documentation, and for more than once understanding what I was trying to explain when no one else seemed to.</li>
+<li>Vincente Juan Botet Escribá, for doubting everything I wrote... irritating, but sometimes useful.</li>
<li>Peter Dimov, for suggesting a separate <code>overflow_error</code> exception class.</li>
<li>"Fred," a.k.a. "Gottlob Frege", for information on infinities.</li>
<li>Joachim Faulhaber, for a discussion of intervals and interval containers.</li>
@@ -46,7 +53,6 @@
<p>And the other Boost development list members who joined the discussion:</p>
<ul>
<li>Anders Dalvander</li>
-<li>Vincente Juan Botet Escribá</li>
<li>Arash Partow</li>
<li>Robert Stewart</li>
<li>Frank Mori Hess</li>
@@ -58,7 +64,7 @@
</ul>
<p>If I've forgotten anyone, please let me know and I'll correct the oversight. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/acknowledgements_8dox.html
==============================================================================
--- sandbox/xint/doc/acknowledgements_8dox.html (original)
+++ sandbox/xint/doc/acknowledgements_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/acknowledgements.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/annotated.html
==============================================================================
--- sandbox/xint/doc/annotated.html (original)
+++ sandbox/xint/doc/annotated.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -50,7 +50,7 @@
<tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">boost::xint::exceptions::too_big</a></td><td class="indexvalue"></td></tr>
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/base__integer_8cpp.html
==============================================================================
--- sandbox/xint/doc/base__integer_8cpp.html (original)
+++ sandbox/xint/doc/base__integer_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -44,7 +44,7 @@
<p>Definition in file <a class="el" href="base__integer_8cpp_source.html">base_integer.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/base__integer_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/base__integer_8cpp_source.html (original)
+++ sandbox/xint/doc/base__integer_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -61,7 +61,7 @@
<a name="l00042"></a>00042 base_integer::base_integer(<span class="keyword">const</span> base_integer& c, <span class="keywordtype">bool</span> fixed): flags(0), data(0)
<a name="l00043"></a>00043 {
<a name="l00044"></a>00044 <span class="keywordflow">if</span> (fixed) flags |= flag_fixedlength;
-<a name="l00045"></a>00045 _attach(c);
+<a name="l00045"></a>00045 _attach(c, <span class="keyword">false</span>);
<a name="l00046"></a>00046 }
<a name="l00047"></a>00047
<a name="l00048"></a>00048 base_integer::base_integer(<span class="keywordtype">size_t</span> count, digit_t mask): flags(flag_fixedlength),
@@ -214,166 +214,176 @@
<a name="l00195"></a>00195 }
<a name="l00196"></a>00196 }
<a name="l00197"></a>00197
-<a name="l00198"></a>00198 <span class="keywordtype">void</span> base_integer::_swap(base_integer& other) {
-<a name="l00199"></a>00199 flag_t tempflags = flags;
-<a name="l00200"></a>00200 flags = other.flags;
-<a name="l00201"></a>00201 other.flags = tempflags;
-<a name="l00202"></a>00202
-<a name="l00203"></a>00203 data_t *tempdata = data;
-<a name="l00204"></a>00204 data = other.data;
-<a name="l00205"></a>00205 other.data = tempdata;
-<a name="l00206"></a>00206 }
-<a name="l00207"></a>00207
-<a name="l00208"></a>00208 <span class="keywordtype">void</span> base_integer::_base_attach(data_t *new_data, flag_t setflags, <span class="keywordtype">size_t</span>
-<a name="l00209"></a>00209 extra_allocation)
-<a name="l00210"></a>00210 {
-<a name="l00211"></a>00211 <span class="preprocessor"> #ifdef BOOST_XINT_USE_COPY_ON_WRITE</span>
-<a name="l00212"></a>00212 <span class="preprocessor"></span> <span class="keywordtype">bool</span> adopt=<span class="keyword">true</span>;
-<a name="l00213"></a>00213 <span class="preprocessor"> #else</span>
-<a name="l00214"></a>00214 <span class="preprocessor"></span> <span class="keywordtype">bool</span> adopt=(new_data && new_data->copies == 0);
-<a name="l00215"></a>00215 <span class="preprocessor"> #endif</span>
-<a name="l00216"></a>00216 <span class="preprocessor"></span>
-<a name="l00217"></a>00217 <span class="keywordflow">if</span> (data != new_data || extra_allocation != 0) {
-<a name="l00218"></a>00218 <span class="comment">// If only one of them is fixed-length, the data can't be adopted.</span>
-<a name="l00219"></a>00219 <span class="keywordflow">if</span> (adopt && new_data && _is_fixed() != (new_data->fixed_mask != 0))
-<a name="l00220"></a>00220 adopt=<span class="keyword">false</span>;
-<a name="l00221"></a>00221
-<a name="l00222"></a>00222 <span class="comment">// If either of them are fixed-length, and they're not the same fixed-</span>
-<a name="l00223"></a>00223 <span class="comment">// length, then the data can't be adopted.</span>
-<a name="l00224"></a>00224 <span class="keywordflow">if</span> (adopt && data && new_data && (data->fixed_mask ||
-<a name="l00225"></a>00225 new_data->fixed_mask) && (data->fixed_mask != new_data->fixed_mask
-<a name="l00226"></a>00226 || data->max_length != new_data->max_length)) adopt=<span class="keyword">false</span>;
-<a name="l00227"></a>00227
-<a name="l00228"></a>00228 <span class="comment">// If we don't have a data item, but we're supposed to allocate extra</span>
-<a name="l00229"></a>00229 <span class="comment">// data, we can't adopt the existing data item.</span>
-<a name="l00230"></a>00230 <span class="keywordflow">if</span> (adopt && extra_allocation != 0 && !data) adopt=<span class="keyword">false</span>;
-<a name="l00231"></a>00231
-<a name="l00232"></a>00232 <span class="comment">// If extra_allocation is requested, and it's a variable-length integer,</span>
-<a name="l00233"></a>00233 <span class="comment">// check the max_size. If there isn't enough to fit in the</span>
-<a name="l00234"></a>00234 <span class="comment">// extra_allocation, don't allow adoption.</span>
-<a name="l00235"></a>00235 <span class="keywordflow">if</span> (adopt && extra_allocation != 0 && data->fixed_mask == 0)
-<a name="l00236"></a>00236 <span class="keywordflow">if</span> (data->length + extra_allocation > data->max_length) adopt=<span class="keyword">false</span>;
-<a name="l00237"></a>00237
-<a name="l00238"></a>00238 <span class="keywordflow">if</span> (adopt) {
-<a name="l00239"></a>00239 <span class="keywordflow">if</span> (data && --data->copies == 0) deallocate(data);
-<a name="l00240"></a>00240 data=new_data;
-<a name="l00241"></a>00241 <span class="keywordflow">if</span> (data) ++data->copies;
-<a name="l00242"></a>00242 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (new_data != 0) {
-<a name="l00243"></a>00243 <span class="comment">// Duplicate the data in a unique data_t item</span>
-<a name="l00244"></a>00244 <span class="keywordflow">if</span> (data == 0) {
-<a name="l00245"></a>00245 data = (_is_fixed() ?
-<a name="l00246"></a>00246 allocate_fixed(new_data->fixed_mask, new_data->max_length,
-<a name="l00247"></a>00247 0) :
-<a name="l00248"></a>00248 allocate(new_data->length + extra_allocation, 0));
-<a name="l00249"></a>00249 ++data->copies;
-<a name="l00250"></a>00250 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((data->copies > 1 || data->max_length < new_data->length
-<a name="l00251"></a>00251 + extra_allocation) || _get_readonly())
-<a name="l00252"></a>00252 {
-<a name="l00253"></a>00253 data_t *olddata = data;
-<a name="l00254"></a>00254 data = (_is_fixed() ?
-<a name="l00255"></a>00255 allocate_fixed(data->fixed_mask, data->max_length, 0) :
+<a name="l00198"></a>00198 <span class="keywordtype">void</span> base_integer::_mark_movable() {
+<a name="l00199"></a>00199 <span class="keywordflow">if</span> (_is_unique()) flags |= flag_movable;
+<a name="l00200"></a>00200 }
+<a name="l00201"></a>00201
+<a name="l00202"></a>00202 <span class="keywordtype">bool</span> base_integer::_is_movable()<span class="keyword"> const </span>{
+<a name="l00203"></a>00203 <span class="keywordflow">return</span> ((flags & flag_movable) ? <span class="keyword">true</span> : <span class="keyword">false</span>);
+<a name="l00204"></a>00204 }
+<a name="l00205"></a>00205
+<a name="l00206"></a>00206 <span class="keywordtype">void</span> base_integer::_swap(base_integer& other) {
+<a name="l00207"></a>00207 flag_t tempflags = flags;
+<a name="l00208"></a>00208 flags = other.flags;
+<a name="l00209"></a>00209 other.flags = tempflags;
+<a name="l00210"></a>00210
+<a name="l00211"></a>00211 data_t *tempdata = data;
+<a name="l00212"></a>00212 data = other.data;
+<a name="l00213"></a>00213 other.data = tempdata;
+<a name="l00214"></a>00214 }
+<a name="l00215"></a>00215
+<a name="l00216"></a>00216 <span class="keywordtype">void</span> base_integer::_base_attach(data_t *new_data, flag_t setflags, <span class="keywordtype">size_t</span>
+<a name="l00217"></a>00217 extra_allocation, <span class="keywordtype">bool</span> is_movable)
+<a name="l00218"></a>00218 {
+<a name="l00219"></a>00219 <span class="preprocessor"> #ifdef BOOST_XINT_USE_COPY_ON_WRITE</span>
+<a name="l00220"></a>00220 <span class="preprocessor"></span> <span class="keywordtype">bool</span> adopt=<span class="keyword">true</span>;
+<a name="l00221"></a>00221 <span class="preprocessor"> #else</span>
+<a name="l00222"></a>00222 <span class="preprocessor"></span> <span class="keywordtype">bool</span> adopt=(new_data && is_movable);
+<a name="l00223"></a>00223 <span class="preprocessor"> #endif</span>
+<a name="l00224"></a>00224 <span class="preprocessor"></span>
+<a name="l00225"></a>00225 <span class="keywordflow">if</span> (data != new_data || extra_allocation != 0) {
+<a name="l00226"></a>00226 <span class="comment">// If only one of them is fixed-length, the data can't be adopted.</span>
+<a name="l00227"></a>00227 <span class="keywordflow">if</span> (adopt && new_data && _is_fixed() != (new_data->fixed_mask != 0))
+<a name="l00228"></a>00228 adopt=<span class="keyword">false</span>;
+<a name="l00229"></a>00229
+<a name="l00230"></a>00230 <span class="comment">// If either of them are fixed-length, and they're not the same fixed-</span>
+<a name="l00231"></a>00231 <span class="comment">// length, then the data can't be adopted.</span>
+<a name="l00232"></a>00232 <span class="keywordflow">if</span> (adopt && data && new_data && (data->fixed_mask ||
+<a name="l00233"></a>00233 new_data->fixed_mask) && (data->fixed_mask != new_data->fixed_mask
+<a name="l00234"></a>00234 || data->max_length != new_data->max_length)) adopt=<span class="keyword">false</span>;
+<a name="l00235"></a>00235
+<a name="l00236"></a>00236 <span class="comment">// If we don't have a data item, but we're supposed to allocate extra</span>
+<a name="l00237"></a>00237 <span class="comment">// data, we can't adopt the existing data item.</span>
+<a name="l00238"></a>00238 <span class="keywordflow">if</span> (adopt && extra_allocation != 0 && !data) adopt=<span class="keyword">false</span>;
+<a name="l00239"></a>00239
+<a name="l00240"></a>00240 <span class="comment">// If extra_allocation is requested, and it's a variable-length integer,</span>
+<a name="l00241"></a>00241 <span class="comment">// check the max_size. If there isn't enough to fit in the</span>
+<a name="l00242"></a>00242 <span class="comment">// extra_allocation, don't allow adoption.</span>
+<a name="l00243"></a>00243 <span class="keywordflow">if</span> (adopt && extra_allocation != 0 && data->fixed_mask == 0)
+<a name="l00244"></a>00244 <span class="keywordflow">if</span> (data->length + extra_allocation > data->max_length) adopt=<span class="keyword">false</span>;
+<a name="l00245"></a>00245
+<a name="l00246"></a>00246 <span class="keywordflow">if</span> (adopt) {
+<a name="l00247"></a>00247 <span class="keywordflow">if</span> (data && --data->copies == 0) deallocate(data);
+<a name="l00248"></a>00248 data=new_data;
+<a name="l00249"></a>00249 <span class="keywordflow">if</span> (data) ++data->copies;
+<a name="l00250"></a>00250 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (new_data != 0) {
+<a name="l00251"></a>00251 <span class="comment">// Duplicate the data in a unique data_t item</span>
+<a name="l00252"></a>00252 <span class="keywordflow">if</span> (data == 0) {
+<a name="l00253"></a>00253 data = (_is_fixed() ?
+<a name="l00254"></a>00254 allocate_fixed(new_data->fixed_mask, new_data->max_length,
+<a name="l00255"></a>00255 0) :
<a name="l00256"></a>00256 allocate(new_data->length + extra_allocation, 0));
<a name="l00257"></a>00257 ++data->copies;
-<a name="l00258"></a>00258 <span class="keywordflow">if</span> (--olddata->copies == 0) deallocate(olddata);
-<a name="l00259"></a>00259 }
-<a name="l00260"></a>00260 data->length = (std::min)(new_data->length + extra_allocation,
-<a name="l00261"></a>00261 data->max_length);
-<a name="l00262"></a>00262
-<a name="l00263"></a>00263 digit_t *s = new_data->magnitude, *se = s + new_data->length;
-<a name="l00264"></a>00264 digit_t *t = data->magnitude, *te = t + data->length;
-<a name="l00265"></a>00265 <span class="keywordflow">while</span> (t != te && s != se) *t++ = *s++;
-<a name="l00266"></a>00266 zero(t, te);
-<a name="l00267"></a>00267 } <span class="keywordflow">else</span> {
-<a name="l00268"></a>00268 <span class="keywordflow">if</span> (--data->copies == 0) deallocate(data);
-<a name="l00269"></a>00269 data=0;
-<a name="l00270"></a>00270 }
-<a name="l00271"></a>00271 }
-<a name="l00272"></a>00272 flags = setflags;
-<a name="l00273"></a>00273 }
-<a name="l00274"></a>00274
-<a name="l00275"></a>00275 <span class="keywordtype">void</span> base_integer::_attach(<span class="keyword">const</span> base_integer& copy) {
-<a name="l00276"></a>00276 _base_attach(copy.data, copy.flags);
-<a name="l00277"></a>00277 <span class="keywordflow">if</span> (data) _cleanup();
-<a name="l00278"></a>00278 }
-<a name="l00279"></a>00279
-<a name="l00280"></a>00280 <span class="keywordtype">void</span> base_integer::_cleanup() {
-<a name="l00281"></a>00281 digit_t *p = data->magnitude + data->length - 1;
-<a name="l00282"></a>00282 <span class="keywordflow">if</span> (data->fixed_mask != 0 && p == data->magnitude + data->max_length - 1)
-<a name="l00283"></a>00283 *p &= data->fixed_mask;
-<a name="l00284"></a>00284 <span class="keywordflow">if</span> (*p == 0) {
-<a name="l00285"></a>00285 <span class="keywordflow">if</span> (p != data->magnitude) {
-<a name="l00286"></a>00286 <span class="keywordflow">while</span> (--p != data->magnitude && *p == 0); <span class="comment">// Null loop</span>
-<a name="l00287"></a>00287 <span class="keywordflow">if</span> (*p == 0) _set_negative(<span class="keyword">false</span>); <span class="comment">// It's zero.</span>
-<a name="l00288"></a>00288 data->length = p - data->magnitude + 1;
-<a name="l00289"></a>00289 } <span class="comment">// It's zero, but it may legitimately be a "negative zero", leave it.</span>
-<a name="l00290"></a>00290 }
-<a name="l00291"></a>00291 }
-<a name="l00292"></a>00292
-<a name="l00293"></a>00293 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a> base_integer::_to_integer()<span class="keyword"> const </span>{
-<a name="l00294"></a>00294 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a> r;
-<a name="l00295"></a>00295 r._attach(*<span class="keyword">this</span>);
-<a name="l00296"></a>00296 <span class="keywordflow">return</span> r;
-<a name="l00297"></a>00297 }
-<a name="l00298"></a>00298
-<a name="l00299"></a>00299 <span class="keywordtype">void</span> base_integer::_increment(<span class="keywordtype">bool</span> absolute_value) {
-<a name="l00300"></a>00300 _make_unique();
-<a name="l00301"></a>00301 <span class="keywordflow">if</span> (_is_zero()) {
-<a name="l00302"></a>00302 data->magnitude[0] = 1;
-<a name="l00303"></a>00303 _set_negative(<span class="keyword">false</span>);
-<a name="l00304"></a>00304 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!absolute_value && _get_negative()) {
-<a name="l00305"></a>00305 _decrement(<span class="keyword">true</span>);
-<a name="l00306"></a>00306 } <span class="keywordflow">else</span> {
-<a name="l00307"></a>00307 _realloc(_get_length() + 1);
-<a name="l00308"></a>00308 digit_t *p = _get_writable_digits(), *pe = p + _get_length();
-<a name="l00309"></a>00309
-<a name="l00310"></a>00310 <span class="keywordflow">while</span> (p < pe) {
-<a name="l00311"></a>00311 <span class="keywordflow">if</span> (*p == digit_mask) *p++ = 0;
-<a name="l00312"></a>00312 <span class="keywordflow">else</span> { *p++ += 1; <span class="keywordflow">break</span>; }
-<a name="l00313"></a>00313 }
-<a name="l00314"></a>00314 _cleanup();
-<a name="l00315"></a>00315 }
-<a name="l00316"></a>00316 }
-<a name="l00317"></a>00317
-<a name="l00318"></a>00318 <span class="keywordtype">void</span> base_integer::_decrement(<span class="keywordtype">bool</span> absolute_value) {
-<a name="l00319"></a>00319 _make_unique();
-<a name="l00320"></a>00320 <span class="keywordflow">if</span> (_is_zero()) {
-<a name="l00321"></a>00321 data->magnitude[0]=1;
-<a name="l00322"></a>00322 _set_negative(<span class="keyword">true</span>);
-<a name="l00323"></a>00323 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!absolute_value && _get_negative()) {
-<a name="l00324"></a>00324 _increment(<span class="keyword">true</span>);
-<a name="l00325"></a>00325 } <span class="keywordflow">else</span> {
-<a name="l00326"></a>00326 digit_t *p = _get_writable_digits(), *pe = p + _get_length();
-<a name="l00327"></a>00327 <span class="keywordflow">while</span> (p != pe) {
-<a name="l00328"></a>00328 <span class="keywordflow">if</span> (*p == 0) *p++ = digit_mask;
-<a name="l00329"></a>00329 <span class="keywordflow">else</span> { *p++ -= 1; <span class="keywordflow">break</span>; }
-<a name="l00330"></a>00330 }
-<a name="l00331"></a>00331 _cleanup();
-<a name="l00332"></a>00332 }
-<a name="l00333"></a>00333 }
-<a name="l00334"></a>00334
-<a name="l00336"></a>00336
-<a name="l00337"></a>00337 <span class="keywordtype">void</span> base_variable_length_integer::_attach_0() {
-<a name="l00338"></a>00338 _base_attach(variable_zerodata());
-<a name="l00339"></a>00339 }
-<a name="l00340"></a>00340
-<a name="l00341"></a>00341 <span class="keywordtype">size_t</span> log10_bits(<span class="keywordtype">size_t</span> bits) {
-<a name="l00342"></a>00342 assert(std::numeric_limits<boost::intmax_t>::digits >= 32);
-<a name="l00343"></a>00343 <span class="keyword">const</span> boost::intmax_t large_step(1000000000), small_step(10);
-<a name="l00344"></a>00344 <span class="keyword">const</span> <span class="keywordtype">size_t</span> count_per_large_step = 9, count_per_small_step = 1;
-<a name="l00345"></a>00345 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a> n(<a class="code" href="namespaceboost_1_1xint.html#af710e4b39cfa66096c202f17d12cc7b7" title="Calculate the value of 2e">pow2</a>(bits)-1);
+<a name="l00258"></a>00258 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((data->copies > 1 || data->max_length < new_data->length
+<a name="l00259"></a>00259 + extra_allocation) || _get_readonly())
+<a name="l00260"></a>00260 {
+<a name="l00261"></a>00261 data_t *olddata = data;
+<a name="l00262"></a>00262 data = (_is_fixed() ?
+<a name="l00263"></a>00263 allocate_fixed(data->fixed_mask, data->max_length, 0) :
+<a name="l00264"></a>00264 allocate(new_data->length + extra_allocation, 0));
+<a name="l00265"></a>00265 ++data->copies;
+<a name="l00266"></a>00266 <span class="keywordflow">if</span> (--olddata->copies == 0) deallocate(olddata);
+<a name="l00267"></a>00267 }
+<a name="l00268"></a>00268 data->length = (std::min)(new_data->length + extra_allocation,
+<a name="l00269"></a>00269 data->max_length);
+<a name="l00270"></a>00270
+<a name="l00271"></a>00271 digit_t *s = new_data->magnitude, *se = s + new_data->length;
+<a name="l00272"></a>00272 digit_t *t = data->magnitude, *te = t + data->length;
+<a name="l00273"></a>00273 <span class="keywordflow">while</span> (t != te && s != se) *t++ = *s++;
+<a name="l00274"></a>00274 zero(t, te);
+<a name="l00275"></a>00275 } <span class="keywordflow">else</span> {
+<a name="l00276"></a>00276 <span class="keywordflow">if</span> (--data->copies == 0) deallocate(data);
+<a name="l00277"></a>00277 data=0;
+<a name="l00278"></a>00278 }
+<a name="l00279"></a>00279 }
+<a name="l00280"></a>00280 flags = setflags;
+<a name="l00281"></a>00281 }
+<a name="l00282"></a>00282
+<a name="l00283"></a>00283 <span class="keywordtype">void</span> base_integer::_attach(<span class="keyword">const</span> base_integer& copy, <span class="keywordtype">bool</span> movable) {
+<a name="l00284"></a>00284 <span class="keywordtype">bool</span> move = (copy._is_movable() || (movable && copy.data &&
+<a name="l00285"></a>00285 copy.data->copies <= 1));
+<a name="l00286"></a>00286 _base_attach(copy.data, copy.flags, 0, move);
+<a name="l00287"></a>00287 <span class="keywordflow">if</span> (data) _cleanup();
+<a name="l00288"></a>00288 }
+<a name="l00289"></a>00289
+<a name="l00290"></a>00290 <span class="keywordtype">void</span> base_integer::_cleanup() {
+<a name="l00291"></a>00291 digit_t *p = data->magnitude + data->length - 1;
+<a name="l00292"></a>00292 <span class="keywordflow">if</span> (data->fixed_mask != 0 && p == data->magnitude + data->max_length - 1)
+<a name="l00293"></a>00293 *p &= data->fixed_mask;
+<a name="l00294"></a>00294 <span class="keywordflow">if</span> (*p == 0) {
+<a name="l00295"></a>00295 <span class="keywordflow">if</span> (p != data->magnitude) {
+<a name="l00296"></a>00296 <span class="keywordflow">while</span> (--p != data->magnitude && *p == 0); <span class="comment">// Null loop</span>
+<a name="l00297"></a>00297 <span class="keywordflow">if</span> (*p == 0) _set_negative(<span class="keyword">false</span>); <span class="comment">// It's zero.</span>
+<a name="l00298"></a>00298 data->length = p - data->magnitude + 1;
+<a name="l00299"></a>00299 } <span class="comment">// It's zero, but it may legitimately be a "negative zero", leave it.</span>
+<a name="l00300"></a>00300 }
+<a name="l00301"></a>00301 }
+<a name="l00302"></a>00302
+<a name="l00303"></a>00303 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a> base_integer::_to_integer(<span class="keywordtype">bool</span> treat_as_movable)<span class="keyword"> const </span>{
+<a name="l00304"></a>00304 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a> r;
+<a name="l00305"></a>00305 r._attach(*<span class="keyword">this</span>, treat_as_movable);
+<a name="l00306"></a>00306 <span class="keywordflow">return</span> r;
+<a name="l00307"></a>00307 }
+<a name="l00308"></a>00308
+<a name="l00309"></a>00309 <span class="keywordtype">void</span> base_integer::_increment(<span class="keywordtype">bool</span> absolute_value) {
+<a name="l00310"></a>00310 _make_unique();
+<a name="l00311"></a>00311 <span class="keywordflow">if</span> (_is_zero()) {
+<a name="l00312"></a>00312 data->magnitude[0] = 1;
+<a name="l00313"></a>00313 _set_negative(<span class="keyword">false</span>);
+<a name="l00314"></a>00314 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!absolute_value && _get_negative()) {
+<a name="l00315"></a>00315 _decrement(<span class="keyword">true</span>);
+<a name="l00316"></a>00316 } <span class="keywordflow">else</span> {
+<a name="l00317"></a>00317 _realloc(_get_length() + 1);
+<a name="l00318"></a>00318 digit_t *p = _get_writable_digits(), *pe = p + _get_length();
+<a name="l00319"></a>00319
+<a name="l00320"></a>00320 <span class="keywordflow">while</span> (p < pe) {
+<a name="l00321"></a>00321 <span class="keywordflow">if</span> (*p == digit_mask) *p++ = 0;
+<a name="l00322"></a>00322 <span class="keywordflow">else</span> { *p++ += 1; <span class="keywordflow">break</span>; }
+<a name="l00323"></a>00323 }
+<a name="l00324"></a>00324 _cleanup();
+<a name="l00325"></a>00325 }
+<a name="l00326"></a>00326 }
+<a name="l00327"></a>00327
+<a name="l00328"></a>00328 <span class="keywordtype">void</span> base_integer::_decrement(<span class="keywordtype">bool</span> absolute_value) {
+<a name="l00329"></a>00329 _make_unique();
+<a name="l00330"></a>00330 <span class="keywordflow">if</span> (_is_zero()) {
+<a name="l00331"></a>00331 data->magnitude[0]=1;
+<a name="l00332"></a>00332 _set_negative(<span class="keyword">true</span>);
+<a name="l00333"></a>00333 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!absolute_value && _get_negative()) {
+<a name="l00334"></a>00334 _increment(<span class="keyword">true</span>);
+<a name="l00335"></a>00335 } <span class="keywordflow">else</span> {
+<a name="l00336"></a>00336 digit_t *p = _get_writable_digits(), *pe = p + _get_length();
+<a name="l00337"></a>00337 <span class="keywordflow">while</span> (p != pe) {
+<a name="l00338"></a>00338 <span class="keywordflow">if</span> (*p == 0) *p++ = digit_mask;
+<a name="l00339"></a>00339 <span class="keywordflow">else</span> { *p++ -= 1; <span class="keywordflow">break</span>; }
+<a name="l00340"></a>00340 }
+<a name="l00341"></a>00341 _cleanup();
+<a name="l00342"></a>00342 }
+<a name="l00343"></a>00343 }
+<a name="l00344"></a>00344
<a name="l00346"></a>00346
-<a name="l00347"></a>00347 <span class="keywordtype">size_t</span> r = 0;
-<a name="l00348"></a>00348 <span class="keywordflow">while</span> (n >= large_step) { n /= large_step; r += count_per_large_step; }
-<a name="l00349"></a>00349 <span class="keywordflow">while</span> (n >= small_step) { n /= small_step; r += count_per_small_step; }
-<a name="l00350"></a>00350 <span class="keywordflow">return</span> r;
-<a name="l00351"></a>00351 }
-<a name="l00352"></a>00352
-<a name="l00353"></a>00353 } <span class="comment">// namespace detail</span>
-<a name="l00355"></a>00355 <span class="comment"></span>
-<a name="l00356"></a>00356 } <span class="comment">// namespace xint</span>
-<a name="l00357"></a>00357 } <span class="comment">// namespace boost</span>
+<a name="l00347"></a>00347 <span class="keywordtype">void</span> base_variable_length_integer::_attach_0() {
+<a name="l00348"></a>00348 _base_attach(variable_zerodata());
+<a name="l00349"></a>00349 }
+<a name="l00350"></a>00350
+<a name="l00351"></a>00351 <span class="keywordtype">size_t</span> log10_bits(<span class="keywordtype">size_t</span> bits) {
+<a name="l00352"></a>00352 assert(std::numeric_limits<boost::intmax_t>::digits >= 32);
+<a name="l00353"></a>00353 <span class="keyword">const</span> boost::intmax_t large_step(1000000000), small_step(10);
+<a name="l00354"></a>00354 <span class="keyword">const</span> <span class="keywordtype">size_t</span> count_per_large_step = 9, count_per_small_step = 1;
+<a name="l00355"></a>00355 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a> n(<a class="code" href="namespaceboost_1_1xint.html#af710e4b39cfa66096c202f17d12cc7b7" title="Calculate the value of 2e">pow2</a>(bits)-1);
+<a name="l00356"></a>00356
+<a name="l00357"></a>00357 <span class="keywordtype">size_t</span> r = 0;
+<a name="l00358"></a>00358 <span class="keywordflow">while</span> (n >= large_step) { n /= large_step; r += count_per_large_step; }
+<a name="l00359"></a>00359 <span class="keywordflow">while</span> (n >= small_step) { n /= small_step; r += count_per_small_step; }
+<a name="l00360"></a>00360 <span class="keywordflow">return</span> r;
+<a name="l00361"></a>00361 }
+<a name="l00362"></a>00362
+<a name="l00363"></a>00363 } <span class="comment">// namespace detail</span>
+<a name="l00365"></a>00365 <span class="comment"></span>
+<a name="l00366"></a>00366 } <span class="comment">// namespace xint</span>
+<a name="l00367"></a>00367 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/bit__manipulations_8cpp.html
==============================================================================
--- sandbox/xint/doc/bit__manipulations_8cpp.html (original)
+++ sandbox/xint/doc/bit__manipulations_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -70,7 +70,7 @@
<p>Definition in file <a class="el" href="bit__manipulations_8cpp_source.html">bit_manipulations.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/bit__manipulations_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/bit__manipulations_8cpp_source.html (original)
+++ sandbox/xint/doc/bit__manipulations_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -165,7 +165,7 @@
<a name="l00145"></a>00145
<a name="l00146"></a>00146 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> byBits) {
<a name="l00147"></a>00147 <span class="keywordflow">if</span> (byBits==0) {
-<a name="l00148"></a>00148 target._attach(n);
+<a name="l00148"></a>00148 target._attach(n, <span class="keyword">false</span>);
<a name="l00149"></a>00149 <span class="keywordflow">return</span>;
<a name="l00150"></a>00150 }
<a name="l00151"></a>00151
@@ -198,12 +198,12 @@
<a name="l00178"></a>00178 }
<a name="l00179"></a>00179 answer._cleanup();
<a name="l00180"></a>00180 answer._set_negative(n._get_negative());
-<a name="l00181"></a>00181 target._attach(answer);
+<a name="l00181"></a>00181 target._attach(answer, <span class="keyword">true</span>);
<a name="l00182"></a>00182 }
<a name="l00183"></a>00183
<a name="l00184"></a>00184 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> byBits) {
<a name="l00185"></a>00185 <span class="keywordflow">if</span> (byBits==0) {
-<a name="l00186"></a>00186 target._attach(n);
+<a name="l00186"></a>00186 target._attach(n, <span class="keyword">false</span>);
<a name="l00187"></a>00187 <span class="keywordflow">return</span>;
<a name="l00188"></a>00188 }
<a name="l00189"></a>00189
@@ -231,7 +231,7 @@
<a name="l00211"></a>00211 }
<a name="l00212"></a>00212 answer._cleanup();
<a name="l00213"></a>00213 answer._set_negative(n._get_negative());
-<a name="l00214"></a>00214 target._attach(answer);
+<a name="l00214"></a>00214 target._attach(answer, <span class="keyword">true</span>);
<a name="l00215"></a>00215 }
<a name="l00216"></a>00216
<a name="l00217"></a>00217 } <span class="comment">// namespace detail</span>
@@ -294,7 +294,7 @@
<a name="l00380"></a>00380 } <span class="comment">// namespace xint</span>
<a name="l00381"></a>00381 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1base__divide__t-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1base__divide__t-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1base__divide__t-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -36,7 +36,7 @@
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a></td><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t< T ></a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a></td><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t< T ></a></td><td></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1base__divide__t.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1base__divide__t.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1base__divide__t.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -52,7 +52,7 @@
<p>Holds the results from a division-with-remainder call. </p>
<p>This class serves essentially the same purpose as an <code>std::pair</code>. The only reason it exists is that <code>std::pair</code> doesn't work well with Boost.Move on some compilers. </p>
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00375">375</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00376">376</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
<hr/><h2>Constructor & Destructor Documentation</h2>
<a class="anchor" id="a78e4dd66f424388d1db839ef53e25997"></a><!-- doxytag: member="boost::xint::base_divide_t::base_divide_t" ref="a78e4dd66f424388d1db839ef53e25997" args="()" -->
<div class="memitem">
@@ -71,7 +71,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00377">377</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00378">378</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
</div>
</div>
@@ -102,7 +102,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00378">378</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00379">379</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
</div>
</div>
@@ -124,7 +124,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00379">379</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00380">380</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
</div>
</div>
@@ -146,7 +146,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00381">381</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00382">382</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
</div>
</div>
@@ -169,7 +169,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00387">387</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00388">388</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
</div>
</div>
@@ -191,7 +191,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00384">384</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00385">385</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
</div>
</div>
@@ -209,7 +209,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00391">391</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00392">392</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
</div>
</div>
@@ -226,7 +226,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00391">391</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00392">392</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
</div>
</div>
@@ -234,7 +234,7 @@
<li><a class="el" href="internals_8hpp_source.html">internals.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1default__random__generator-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1default__random__generator-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1default__random__generator-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::default_random_generator Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1default__random__generator.html">boost::xint::default_random_generator</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1default__random__generator.html#a4289636c47258469b78703ae791812f6">default_random_generator</a>()</td><td><a class="el" href="classboost_1_1xint_1_1default__random__generator.html">boost::xint::default_random_generator</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1default__random__generator.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1default__random__generator.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1default__random__generator.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -71,7 +71,7 @@
<li><a class="el" href="random_8hpp_source.html">random.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::cannot_represent Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html">boost::xint::exceptions::cannot_represent</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html#a0968d8ac61c24529816bcaf69d155b75">cannot_represent</a>(const std::string &what="cannot represent the requested value")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html">boost::xint::exceptions::cannot_represent</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -63,7 +63,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::divide_by_zero Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">boost::xint::exceptions::divide_by_zero</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html#aaff4d720e4a134315acde919ff06e640">divide_by_zero</a>(const std::string &what="divide by zero error")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">boost::xint::exceptions::divide_by_zero</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -63,7 +63,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::invalid_argument Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">boost::xint::exceptions::invalid_argument</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html#a8ba3e56172de34c772b287ce8e325f32">invalid_argument</a>(const std::string &what="invalid argument")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">boost::xint::exceptions::invalid_argument</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -63,7 +63,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::invalid_base Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">boost::xint::exceptions::invalid_base</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html#a4647071020547bd103ee885bec7edffa">invalid_base</a>(const std::string &what="invalid base")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">boost::xint::exceptions::invalid_base</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -63,7 +63,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::invalid_digit Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html">boost::xint::exceptions::invalid_digit</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html#abcdf43b30c3910dde89e406ca802eacc">invalid_digit</a>(const std::string &what="invalid digit")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html">boost::xint::exceptions::invalid_digit</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -63,7 +63,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::invalid_modulus Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html">boost::xint::exceptions::invalid_modulus</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html#a16c06e28a7f483b0ca2fb5906d53278d">invalid_modulus</a>(const std::string &what="invalid modulus")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html">boost::xint::exceptions::invalid_modulus</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -63,7 +63,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::no_strong_random Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">boost::xint::exceptions::no_strong_random</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html#ab225c7d5d10a03eac6d5e9c784135675">no_strong_random</a>(const std::string &what="system does not have a strong random generator")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">boost::xint::exceptions::no_strong_random</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -64,7 +64,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::not_a_number Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">boost::xint::exceptions::not_a_number</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html#aa47b024550fd673bd497e0875443c67f">not_a_number</a>(const std::string &what="attempted to use a Not-a-Number")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">boost::xint::exceptions::not_a_number</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -64,7 +64,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::overflow_error Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">boost::xint::exceptions::overflow_error</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html#a767d8fbe5816d77fa0aadf9481d0bd5a">overflow_error</a>(const std::string &what="overflow error: can't obtain enough memory to represent the requested number")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">boost::xint::exceptions::overflow_error</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -64,7 +64,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::too_big Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">boost::xint::exceptions::too_big</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html#a111e2c1a759054d80afcd5fa4af2995c">too_big</a>(const std::string &what="value out of range for requested conversion")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">boost::xint::exceptions::too_big</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -63,7 +63,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -66,7 +66,7 @@
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1fixed__integer.html#a8741f3260d2a5a74c4d5cedf8a7d2a82">operator~</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1fixed__integer.html">boost::xint::fixed_integer< Bits ></a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1fixed__integer.html#a82f0342baba940b21f046be76b3a1fc9">sign</a>(bool signed_zero=false) const </td><td><a class="el" href="classboost_1_1xint_1_1fixed__integer.html">boost::xint::fixed_integer< Bits ></a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -963,7 +963,7 @@
<li><a class="el" href="fixed__integer_8hpp_source.html">fixed_integer.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer__any-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer__any-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer__any-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -33,7 +33,7 @@
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1fixed__integer__any.html#a9f0620259b6e2cdf3ea6e2bad2a21d22">fixed_integer_any</a>(detail::data_t *adopt, bool neg=false)</td><td><a class="el" href="classboost_1_1xint_1_1fixed__integer__any.html">boost::xint::fixed_integer_any</a></td><td><code> [inline, explicit, protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1fixed__integer__any.html#abdd088ce22d3afd4a8c3dcc402401ace">fixed_integer_any</a>(const fixed_integer_any &c)</td><td><a class="el" href="classboost_1_1xint_1_1fixed__integer__any.html">boost::xint::fixed_integer_any</a></td><td><code> [inline, explicit, protected]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer__any.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer__any.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer__any.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -59,7 +59,7 @@
<p>The base class for all <a class="el" href="classboost_1_1xint_1_1fixed__integer.html" title="A fixed-size integer type.">fixed_integer</a> types. </p>
<p>This class eases operations on different-sized <a class="el" href="classboost_1_1xint_1_1fixed__integer.html" title="A fixed-size integer type.">fixed_integer</a> types. </p>
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00333">333</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00334">334</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
<hr/><h2>Constructor & Destructor Documentation</h2>
<a class="anchor" id="af6e682f145aaa5ceea6f8d81bf533442"></a><!-- doxytag: member="boost::xint::fixed_integer_any::fixed_integer_any" ref="af6e682f145aaa5ceea6f8d81bf533442" 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">
@@ -94,7 +94,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00341">341</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00342">342</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
</div>
</div>
@@ -131,7 +131,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00347">347</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00348">348</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
</div>
</div>
@@ -160,7 +160,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00354">354</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00355">355</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
</div>
</div>
@@ -189,7 +189,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00356">356</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00357">357</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
</div>
</div>
@@ -209,7 +209,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00358">358</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00359">359</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
</div>
</div>
@@ -217,7 +217,7 @@
<li><a class="el" href="internals_8hpp_source.html">internals.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1integer-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1integer-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1integer-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -66,7 +66,7 @@
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer.html#a6821767d0ec6c762a4c1002944550aae">sign</a>(bool signed_zero=false) const </td><td><a class="el" href="classboost_1_1xint_1_1integer.html">boost::xint::integer</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">zero</a>()</td><td><a class="el" href="classboost_1_1xint_1_1integer.html">boost::xint::integer</a></td><td><code> [static]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1integer.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1integer.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1integer.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -1020,7 +1020,7 @@
<li><a class="el" href="integer_8cpp_source.html">integer.cpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1nothrow__integer-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1nothrow__integer-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1nothrow__integer-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -69,7 +69,7 @@
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1nothrow__integer.html#a76bc6cf5315c6b7ee6083f28acfa7ddf">sign</a>(bool signed_zero=false) const </td><td><a class="el" href="classboost_1_1xint_1_1nothrow__integer.html">boost::xint::nothrow_integer</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1nothrow__integer.html#a2b3241400b0691fa5bd612358b48ccdd">zero</a>()</td><td><a class="el" href="classboost_1_1xint_1_1nothrow__integer.html">boost::xint::nothrow_integer</a></td><td><code> [static]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1nothrow__integer.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1nothrow__integer.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1nothrow__integer.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -1081,7 +1081,7 @@
<li><a class="el" href="nothrow__integer_8cpp_source.html">nothrow_integer.cpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1strong__random__generator-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1strong__random__generator-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1strong__random__generator-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -38,7 +38,7 @@
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a03606cc093b70870d2661aedccf12c26">strong_random_generator</a>()</td><td><a class="el" href="classboost_1_1xint_1_1strong__random__generator.html">boost::xint::strong_random_generator</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1strong__random__generator.html#a38abfddb5372dc090429ba1c4132ad9c">~strong_random_generator</a>()</td><td><a class="el" href="classboost_1_1xint_1_1strong__random__generator.html">boost::xint::strong_random_generator</a></td><td></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classboost_1_1xint_1_1strong__random__generator.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1strong__random__generator.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1strong__random__generator.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -238,7 +238,7 @@
<li><a class="el" href="random_8cpp_source.html">random.cpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classdisable__boost__rv__ref.html
==============================================================================
--- sandbox/xint/doc/classdisable__boost__rv__ref.html (original)
+++ sandbox/xint/doc/classdisable__boost__rv__ref.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -38,7 +38,7 @@
<li><a class="el" href="internals_8hpp_source.html">internals.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classes.html
==============================================================================
--- sandbox/xint/doc/classes.html (original)
+++ sandbox/xint/doc/classes.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -39,7 +39,7 @@
</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="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4.html">numeric_limits< boost::xint::nothrow_integer ></a> (<a class="el" href="namespacestd.html">std</a>) </td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">too_big</a> (<a class="el" href="namespaceboost_1_1xint_1_1exceptions.html">boost::xint::exceptions</a>) </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_F">F</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_S">S</a> | <a class="qindex" href="#letter_T">T</a></div>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1fixed__integer_3_01_bits_01_4_01_4-members.html
==============================================================================
--- sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1fixed__integer_3_01_bits_01_4_01_4-members.html (original)
+++ sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1fixed__integer_3_01_bits_01_4_01_4-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -58,7 +58,7 @@
<tr class="memlist"><td><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1fixed__integer_3_01_bits_01_4_01_4.html#a48dff429909593ae6d19eba404126e8b">tinyness_before</a></td><td><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1fixed__integer_3_01_bits_01_4_01_4.html">std::numeric_limits< boost::xint::fixed_integer< Bits > ></a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1fixed__integer_3_01_bits_01_4_01_4.html#ae13ce885b1b7b9e4f4a491acd5d434c0">traps</a></td><td><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1fixed__integer_3_01_bits_01_4_01_4.html">std::numeric_limits< boost::xint::fixed_integer< Bits > ></a></td><td><code> [static]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1fixed__integer_3_01_bits_01_4_01_4.html
==============================================================================
--- sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1fixed__integer_3_01_bits_01_4_01_4.html (original)
+++ sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1fixed__integer_3_01_bits_01_4_01_4.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -636,7 +636,7 @@
<li><a class="el" href="fixed__integer_8hpp_source.html">fixed_integer.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4-members.html
==============================================================================
--- sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4-members.html (original)
+++ sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -58,7 +58,7 @@
<tr class="memlist"><td><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4.html#a6f43a2e1dcba42a7cf73a1a4323ed931">tinyness_before</a></td><td><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4.html">std::numeric_limits< boost::xint::integer ></a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4.html#ad469dddd16a7ba6fed9e88c969a5faa6">traps</a></td><td><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4.html">std::numeric_limits< boost::xint::integer ></a></td><td><code> [static]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4.html
==============================================================================
--- sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4.html (original)
+++ sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -558,7 +558,7 @@
<li><a class="el" href="integer_8hpp_source.html">integer.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4-members.html
==============================================================================
--- sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4-members.html (original)
+++ sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4-members.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -58,7 +58,7 @@
<tr class="memlist"><td><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4.html#a2cb05a6ce2f537c0be893bb3260fb186">tinyness_before</a></td><td><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4.html">std::numeric_limits< boost::xint::nothrow_integer ></a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4.html#a9d18eb71d6bad51653de3f58f62d5f47">traps</a></td><td><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4.html">std::numeric_limits< boost::xint::nothrow_integer ></a></td><td><code> [static]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4.html
==============================================================================
--- sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4.html (original)
+++ sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -558,7 +558,7 @@
<li><a class="el" href="nothrow__integer_8hpp_source.html">nothrow_integer.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/compare_8cpp.html
==============================================================================
--- sandbox/xint/doc/compare_8cpp.html (original)
+++ sandbox/xint/doc/compare_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -67,7 +67,7 @@
<p>Definition in file <a class="el" href="compare_8cpp_source.html">compare.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/compare_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/compare_8cpp_source.html (original)
+++ sandbox/xint/doc/compare_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -115,7 +115,7 @@
<a name="l00119"></a>00119 } <span class="comment">// namespace xint</span>
<a name="l00120"></a>00120 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/complexity.html
==============================================================================
--- sandbox/xint/doc/complexity.html (original)
+++ sandbox/xint/doc/complexity.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -26,7 +26,7 @@
<h1><a class="anchor" id="complexity">A Note on Algorithmic Complexity </a></h1><p>This documentation includes a time-complexity estimate, in big-O notation, for each algorithm. The <code>n</code> in the complexity estimates is roughly the number of bits in the parameter(s). (More accurately, it's the number of <code>digit_t</code> values needed to hold those bits.)</p>
<p>The time complexity is well-known for some algorithms, but for others, I had to make an educated guess. If you discover an error in the listed complexity, please report it. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/complexity_8dox.html
==============================================================================
--- sandbox/xint/doc/complexity_8dox.html (original)
+++ sandbox/xint/doc/complexity_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/complexity.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/convert_8cpp.html
==============================================================================
--- sandbox/xint/doc/convert_8cpp.html (original)
+++ sandbox/xint/doc/convert_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -58,7 +58,7 @@
<p>Definition in file <a class="el" href="convert_8cpp_source.html">convert.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/convert_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/convert_8cpp_source.html (original)
+++ sandbox/xint/doc/convert_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -97,7 +97,7 @@
<a name="l00080"></a>00080 <span class="comment">// this function, I'll add it later.</span>
<a name="l00081"></a>00081
<a name="l00082"></a>00082 <span class="keyword">const</span> integer <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>(base);
-<a name="l00083"></a>00083 <a class="code" href="classboost_1_1xint_1_1integer.html#a5c47ab8e93d541e298dcfa3d73845d5a">integer::divide_t</a> a(n._to_integer(), <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>());
+<a name="l00083"></a>00083 <a class="code" href="classboost_1_1xint_1_1integer.html#a5c47ab8e93d541e298dcfa3d73845d5a">integer::divide_t</a> a(n._to_integer(<span class="keyword">false</span>), <a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>());
<a name="l00084"></a>00084 a.quotient._set_negative(<span class="keyword">false</span>);
<a name="l00085"></a>00085
<a name="l00086"></a>00086 integer r;
@@ -158,7 +158,7 @@
<a name="l00141"></a>00141 }
<a name="l00142"></a>00142 r._set_negative(negate);
<a name="l00143"></a>00143
-<a name="l00144"></a>00144 target._attach(r);
+<a name="l00144"></a>00144 target._attach(r, <span class="keyword">true</span>);
<a name="l00145"></a>00145 }
<a name="l00146"></a>00146
<a name="l00147"></a>00147 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a61303b2b007d23cc8c9b7450c848c14d" title="Creates a binary representation of an integer.">to_binary</a>(<a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58">xint::binary_t</a>& target, <span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> bits) {
@@ -193,7 +193,7 @@
<a name="l00176"></a>00176 *t++ = static_cast<digit_t>(bitqueue.pop(bits_per_digit));
<a name="l00177"></a>00177
<a name="l00178"></a>00178 r._cleanup();
-<a name="l00179"></a>00179 target._attach(r);
+<a name="l00179"></a>00179 target._attach(r, <span class="keyword">true</span>);
<a name="l00180"></a>00180 }
<a name="l00181"></a>00181
<a name="l00182"></a>00182 } <span class="comment">// namespace detail</span>
@@ -227,7 +227,7 @@
<a name="l00305"></a>00305 } <span class="comment">// namespace xint</span>
<a name="l00306"></a>00306 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/copyonwrite_8dox.html
==============================================================================
--- sandbox/xint/doc/copyonwrite_8dox.html (original)
+++ sandbox/xint/doc/copyonwrite_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/copyonwrite.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/cow.html
==============================================================================
--- sandbox/xint/doc/cow.html (original)
+++ sandbox/xint/doc/cow.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -26,7 +26,7 @@
<h1><a class="anchor" id="cow">Copying and Argument-Passing </a></h1><p>By default, the integer and nothrow_integer classes use copy-on-write, which means that if you copy one of them, the copy and the original share the same storage. They are only assigned separate storage when one of them is changed. This mechanism makes copying a number (explicitly, by returning it, or by using it as a non-reference parameter to a function) very fast, regardless of its size.</p>
<p>Unfortunately, copy-on-write isn't compatible with thread-safe operation. If you need to use the library from multiple threads, you can disable this behavior by compiling it with <a class="el" href="threadsafe.html">the thread-safe option</a>. This option also enables move semantics, via Boost.Move, which provide a similar speed increase, though at the time of this writing, not as good as copy-on-write can. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/data__t_8cpp.html
==============================================================================
--- sandbox/xint/doc/data__t_8cpp.html (original)
+++ sandbox/xint/doc/data__t_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -62,7 +62,7 @@
</div>
</div>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/data__t_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/data__t_8cpp_source.html (original)
+++ sandbox/xint/doc/data__t_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -188,7 +188,7 @@
<a name="l00170"></a>00170 } <span class="comment">// namespace xint</span>
<a name="l00171"></a>00171 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/dependencies.html
==============================================================================
--- sandbox/xint/doc/dependencies.html (original)
+++ sandbox/xint/doc/dependencies.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -38,7 +38,7 @@
</ul>
<p>All of these are header-only libraries, meaning that you don't need to worry about linking your program with them. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/dependencies_8dox.html
==============================================================================
--- sandbox/xint/doc/dependencies_8dox.html (original)
+++ sandbox/xint/doc/dependencies_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/dependencies.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/dox/acknowledgements.dox
==============================================================================
--- sandbox/xint/doc/dox/acknowledgements.dox (original)
+++ sandbox/xint/doc/dox/acknowledgements.dox 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -9,8 +9,14 @@
- Providing test cases and documentation tweaks;
- General advice and moral support.
-The library wouldn't be nearly as good without his work, and I hope I didn't
-irritate him too much. :-)
+...and to Jeffrey Lee Hellrung, Jr., for...
+- advice on implementing move-aware objects;
+- an invigorating discussion on the differing needs of an integer library versus
+a floating-point one;
+- politely pointing out a logic bug that I was blind to;
+- and several other things that I'm sure I missed.
+
+The library wouldn't be nearly as good without their work.
Other contributors from the Boost development list, roughly in the order that
they contributed:
@@ -21,11 +27,10 @@
value, and the blockable exceptions design, and for accidentally pointing out an
error in the square-root function, among other things.
- "Pavel" for suggesting adding the algorithmic complexity of each function to
-the documentation, and for understanding what I was trying to explain when no
-one else seemed to.
-- Jeffrey Lee Hellrung, Jr., for advice on implementing move-aware objects, and
-for an invigorating discussion on the differing needs of an integer library
-versus a floating-point one, among other things.
+the documentation, and for more than once understanding what I was trying to
+explain when no one else seemed to.
+- Vincente Juan Botet Escribá, for doubting everything I wrote... irritating,
+but sometimes useful.
- Peter Dimov, for suggesting a separate \c overflow_error exception class.
- "Fred," a.k.a. "Gottlob Frege", for information on infinities.
- Joachim Faulhaber, for a discussion of intervals and interval containers.
@@ -36,7 +41,6 @@
And the other Boost development list members who joined the discussion:
- Anders Dalvander
-- Vincente Juan Botet Escribá
- Arash Partow
- Robert Stewart
- Frank Mori Hess
Modified: sandbox/xint/doc/ex__fibonacci.html
==============================================================================
--- sandbox/xint/doc/ex__fibonacci.html (original)
+++ sandbox/xint/doc/ex__fibonacci.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -64,7 +64,7 @@
</pre></div><p>If you're not intimately familiar with the Fibonacci sequence, and how fast the numbers in it grow, the answer might shock you.</p>
<p>As you can see, using the XInt library is just like using the native integer types -- except that an <code>xint::integer</code> won't overflow on you until you completely exhaust your system's memory. :-) </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/ex__fibonacci_8dox.html
==============================================================================
--- sandbox/xint/doc/ex__fibonacci_8dox.html (original)
+++ sandbox/xint/doc/ex__fibonacci_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/ex_fibonacci.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/exceptions.html
==============================================================================
--- sandbox/xint/doc/exceptions.html (original)
+++ sandbox/xint/doc/exceptions.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -62,7 +62,7 @@
}
}
</pre></div> </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/exceptions_8dox.html
==============================================================================
--- sandbox/xint/doc/exceptions_8dox.html (original)
+++ sandbox/xint/doc/exceptions_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/exceptions.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/exceptions_8hpp.html
==============================================================================
--- sandbox/xint/doc/exceptions_8hpp.html (original)
+++ sandbox/xint/doc/exceptions_8hpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -60,7 +60,7 @@
<p>Definition in file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/exceptions_8hpp_source.html
==============================================================================
--- sandbox/xint/doc/exceptions_8hpp_source.html (original)
+++ sandbox/xint/doc/exceptions_8hpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -114,7 +114,7 @@
<a name="l00137"></a>00137
<a name="l00138"></a>00138 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_EXCEPTIONS_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/files.html
==============================================================================
--- sandbox/xint/doc/files.html (original)
+++ sandbox/xint/doc/files.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -64,7 +64,7 @@
<tr><td class="indexkey"><a class="el" href="roots_8cpp.html">roots.cpp</a> [code]</td><td class="indexvalue">Contains the definitions for functions related to roots of a number </td></tr>
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/fixed__and__variable.html
==============================================================================
--- sandbox/xint/doc/fixed__and__variable.html (original)
+++ sandbox/xint/doc/fixed__and__variable.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -27,7 +27,7 @@
<p>There is also a fixed-length type, the template class <a class="el" href="classboost_1_1xint_1_1fixed__integer.html">xint::fixed_integer</a>, where you to specify the number of bits to limit it to.</p>
<p>All three types have an essentially identical set of functions and operators, and can do pretty much the same things, though with different time and memory efficiencies. See the "detailed description" portion of the reference pages linked above for a description of each type and its unique properties. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/fixed__and__variable_8dox.html
==============================================================================
--- sandbox/xint/doc/fixed__and__variable_8dox.html (original)
+++ sandbox/xint/doc/fixed__and__variable_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/fixed_and_variable.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/fixed__integer_8hpp.html
==============================================================================
--- sandbox/xint/doc/fixed__integer_8hpp.html (original)
+++ sandbox/xint/doc/fixed__integer_8hpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -270,7 +270,7 @@
</div>
</div>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/fixed__integer_8hpp_source.html
==============================================================================
--- sandbox/xint/doc/fixed__integer_8hpp_source.html (original)
+++ sandbox/xint/doc/fixed__integer_8hpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -66,8 +66,8 @@
<a name="l00074"></a>00074 <span class="keywordtype">size_t</span> <a class="code" href="classboost_1_1xint_1_1fixed__integer.html#a7234a3a5bea21f0045cee62e5427f3bf">hex_digits</a>() <span class="keyword">const</span>;
<a name="l00076"></a>00076
<a name="l00081"></a>00081
-<a name="l00082"></a><a class="code" href="classboost_1_1xint_1_1fixed__integer.html#a5488c21218c4590496962b5fee817e8e">00082</a> <a class="code" href="classboost_1_1xint_1_1fixed__integer.html" title="A fixed-size integer type.">fixed_integer<Bits></a>& <a class="code" href="classboost_1_1xint_1_1fixed__integer.html#a8cd90bde9fd2284d2260986b9f23b3c7">operator=</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1fixed__integer.html" title="A fixed-size integer type.">fixed_integer<Bits></a>& c) { _attach(c);
-<a name="l00083"></a>00083 <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00082"></a><a class="code" href="classboost_1_1xint_1_1fixed__integer.html#a5488c21218c4590496962b5fee817e8e">00082</a> <a class="code" href="classboost_1_1xint_1_1fixed__integer.html" title="A fixed-size integer type.">fixed_integer<Bits></a>& <a class="code" href="classboost_1_1xint_1_1fixed__integer.html#a8cd90bde9fd2284d2260986b9f23b3c7">operator=</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1fixed__integer.html" title="A fixed-size integer type.">fixed_integer<Bits></a>& c) { _attach(c,
+<a name="l00083"></a>00083 <span class="keyword">false</span>); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
<a name="l00084"></a>00084
<a name="l00085"></a>00085 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1fixed__integer.html#ae2f227bfbdf7f7f4b69a968ae491f8df">operator!</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _is_zero(); }
<a name="l00086"></a>00086 fixed_integer<Bits> <a class="code" href="classboost_1_1xint_1_1fixed__integer.html#aac0ac16865a09e299593891ae0399139">operator-</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aedc1654de47ce6d6635e5339b236f94d">negate</a>(*<span class="keyword">this</span>); }
@@ -269,7 +269,7 @@
<a name="l00333"></a>00333 fixed_integer_any(preallocated_zero.get())
<a name="l00334"></a>00334 {
<a name="l00335"></a>00335 <span class="keywordflow">if</span> (b._is_nan()) <span class="keywordflow">throw</span> exceptions::not_a_number();
-<a name="l00336"></a>00336 _attach(b);
+<a name="l00336"></a>00336 _attach(b, <span class="keyword">false</span>);
<a name="l00337"></a>00337 }
<a name="l00338"></a>00338
<a name="l00344"></a>00344 <span class="keyword">template</span> <<span class="keywordtype">size_t</span> Bits>
@@ -752,7 +752,7 @@
<a name="l00899"></a>00899
<a name="l00900"></a>00900 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_FIXED_INTEGER_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions.html
==============================================================================
--- sandbox/xint/doc/functions.html (original)
+++ sandbox/xint/doc/functions.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -63,7 +63,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x62.html
==============================================================================
--- sandbox/xint/doc/functions_0x62.html (original)
+++ sandbox/xint/doc/functions_0x62.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -63,7 +63,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x63.html
==============================================================================
--- sandbox/xint/doc/functions_0x63.html (original)
+++ sandbox/xint/doc/functions_0x63.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -63,7 +63,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x64.html
==============================================================================
--- sandbox/xint/doc/functions_0x64.html (original)
+++ sandbox/xint/doc/functions_0x64.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -86,7 +86,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x65.html
==============================================================================
--- sandbox/xint/doc/functions_0x65.html (original)
+++ sandbox/xint/doc/functions_0x65.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -73,7 +73,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x66.html
==============================================================================
--- sandbox/xint/doc/functions_0x66.html (original)
+++ sandbox/xint/doc/functions_0x66.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -66,7 +66,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x68.html
==============================================================================
--- sandbox/xint/doc/functions_0x68.html (original)
+++ sandbox/xint/doc/functions_0x68.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -93,7 +93,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x69.html
==============================================================================
--- sandbox/xint/doc/functions_0x69.html (original)
+++ sandbox/xint/doc/functions_0x69.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -118,7 +118,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x6d.html
==============================================================================
--- sandbox/xint/doc/functions_0x6d.html (original)
+++ sandbox/xint/doc/functions_0x6d.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -98,7 +98,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x6e.html
==============================================================================
--- sandbox/xint/doc/functions_0x6e.html (original)
+++ sandbox/xint/doc/functions_0x6e.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -72,7 +72,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x6f.html
==============================================================================
--- sandbox/xint/doc/functions_0x6f.html (original)
+++ sandbox/xint/doc/functions_0x6f.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -171,7 +171,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x71.html
==============================================================================
--- sandbox/xint/doc/functions_0x71.html (original)
+++ sandbox/xint/doc/functions_0x71.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -68,7 +68,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x72.html
==============================================================================
--- sandbox/xint/doc/functions_0x72.html (original)
+++ sandbox/xint/doc/functions_0x72.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -81,7 +81,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x73.html
==============================================================================
--- sandbox/xint/doc/functions_0x73.html (original)
+++ sandbox/xint/doc/functions_0x73.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -73,7 +73,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x74.html
==============================================================================
--- sandbox/xint/doc/functions_0x74.html (original)
+++ sandbox/xint/doc/functions_0x74.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -73,7 +73,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x7a.html
==============================================================================
--- sandbox/xint/doc/functions_0x7a.html (original)
+++ sandbox/xint/doc/functions_0x7a.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -64,7 +64,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_0x7e.html
==============================================================================
--- sandbox/xint/doc/functions_0x7e.html (original)
+++ sandbox/xint/doc/functions_0x7e.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -63,7 +63,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_func.html
==============================================================================
--- sandbox/xint/doc/functions_func.html (original)
+++ sandbox/xint/doc/functions_func.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -359,7 +359,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_type.html
==============================================================================
--- sandbox/xint/doc/functions_type.html (original)
+++ sandbox/xint/doc/functions_type.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -45,7 +45,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/functions_vars.html
==============================================================================
--- sandbox/xint/doc/functions_vars.html (original)
+++ sandbox/xint/doc/functions_vars.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -199,7 +199,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/gcd_8cpp.html
==============================================================================
--- sandbox/xint/doc/gcd_8cpp.html (original)
+++ sandbox/xint/doc/gcd_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -58,7 +58,7 @@
<p>Definition in file <a class="el" href="gcd_8cpp_source.html">gcd.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/gcd_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/gcd_8cpp_source.html (original)
+++ sandbox/xint/doc/gcd_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -82,9 +82,9 @@
<a name="l00064"></a>00064 <span class="keywordflow">if</span> (num1._is_zero() && num2._is_zero()) {
<a name="l00065"></a>00065 target._set_unsigned(0);
<a name="l00066"></a>00066 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (num1._is_zero()) {
-<a name="l00067"></a>00067 target._attach(num2);
+<a name="l00067"></a>00067 target._attach(num2, <span class="keyword">false</span>);
<a name="l00068"></a>00068 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (num2._is_zero()) {
-<a name="l00069"></a>00069 target._attach(num1);
+<a name="l00069"></a>00069 target._attach(num1, <span class="keyword">false</span>);
<a name="l00070"></a>00070 } <span class="keywordflow">else</span> {
<a name="l00071"></a>00071 temp_t n(num1), m(num2);
<a name="l00072"></a>00072 n._set_negative(<span class="keyword">false</span>);
@@ -97,7 +97,7 @@
<a name="l00079"></a>00079 <a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(m, m, k);
<a name="l00080"></a>00080 }
<a name="l00081"></a>00081
-<a name="l00082"></a>00082 gcd_core core(n._to_integer(), m._to_integer());
+<a name="l00082"></a>00082 gcd_core core(n._to_integer(<span class="keyword">false</span>), m._to_integer(<span class="keyword">false</span>));
<a name="l00083"></a>00083
<a name="l00084"></a>00084 <span class="keywordflow">if</span> (core.u3._is_zero()) {
<a name="l00085"></a>00085 <a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(target, fixed_integer_any(1), k);
@@ -121,7 +121,7 @@
<a name="l00103"></a>00103 answer._set_negative(<span class="keyword">false</span>);
<a name="l00104"></a>00104 <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(answer, remainder, answer, common);
<a name="l00105"></a>00105
-<a name="l00106"></a>00106 target._attach(answer);
+<a name="l00106"></a>00106 target._attach(answer, <span class="keyword">true</span>);
<a name="l00107"></a>00107 }
<a name="l00108"></a>00108 }
<a name="l00109"></a>00109
@@ -134,19 +134,19 @@
<a name="l00116"></a>00116 <span class="keywordflow">if</span> (n._is_zero()) {
<a name="l00117"></a>00117 target._set_unsigned(0);
<a name="l00118"></a>00118 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n._get_negative()) {
-<a name="l00119"></a>00119 integer _n(n._to_integer());
+<a name="l00119"></a>00119 integer _n(n._to_integer(<span class="keyword">false</span>));
<a name="l00120"></a>00120 _n._set_negative(<span class="keyword">false</span>);
<a name="l00121"></a>00121
<a name="l00122"></a>00122 integer nn;
<a name="l00123"></a>00123 <a class="code" href="namespaceboost_1_1xint.html#a1e2477157ea768d8c57fac1c31a8f7ca" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(nn, _n, m);
<a name="l00124"></a>00124 <span class="keywordflow">if</span> (nn._is_zero()) {
-<a name="l00125"></a>00125 target._attach(nn);
+<a name="l00125"></a>00125 target._attach(nn, <span class="keyword">true</span>);
<a name="l00126"></a>00126 } <span class="keywordflow">else</span> {
<a name="l00127"></a>00127 nn._set_negative(<span class="keyword">true</span>);
<a name="l00128"></a>00128 <a class="code" href="namespaceboost_1_1xint.html#a7b7903cb879b60d0d5e3403b3c6a1cdd">add</a>(target, nn, m);
<a name="l00129"></a>00129 }
<a name="l00130"></a>00130 } <span class="keywordflow">else</span> {
-<a name="l00131"></a>00131 integer nn(n._to_integer()), mm(m._to_integer());
+<a name="l00131"></a>00131 integer nn(n._to_integer(<span class="keyword">false</span>)), mm(m._to_integer(<span class="keyword">false</span>));
<a name="l00132"></a>00132 <span class="keywordflow">if</span> (nn.even() && mm.even()) {
<a name="l00133"></a>00133 <span class="comment">// GCD != 1, no inverse possible.</span>
<a name="l00134"></a>00134 target._set_unsigned(0);
@@ -161,7 +161,7 @@
<a name="l00143"></a>00143 <span class="keywordflow">return</span>;
<a name="l00144"></a>00144 }
<a name="l00145"></a>00145
-<a name="l00146"></a>00146 target._attach(core.u1);
+<a name="l00146"></a>00146 target._attach(core.u1, <span class="keyword">true</span>);
<a name="l00147"></a>00147 }
<a name="l00148"></a>00148 }
<a name="l00149"></a>00149
@@ -188,7 +188,7 @@
<a name="l00202"></a>00202 } <span class="comment">// namespace xint</span>
<a name="l00203"></a>00203 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/globals.html
==============================================================================
--- sandbox/xint/doc/globals.html (original)
+++ sandbox/xint/doc/globals.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -64,7 +64,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/globals_defs.html
==============================================================================
--- sandbox/xint/doc/globals_defs.html (original)
+++ sandbox/xint/doc/globals_defs.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -64,7 +64,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/hierarchy.html
==============================================================================
--- sandbox/xint/doc/hierarchy.html (original)
+++ sandbox/xint/doc/hierarchy.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -52,7 +52,7 @@
<li><a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">boost::xint::exceptions::too_big</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/history.html
==============================================================================
--- sandbox/xint/doc/history.html (original)
+++ sandbox/xint/doc/history.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -45,7 +45,7 @@
<li>Many less-major changes. </li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/history_8dox.html
==============================================================================
--- sandbox/xint/doc/history_8dox.html (original)
+++ sandbox/xint/doc/history_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/history.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/index.html
==============================================================================
--- sandbox/xint/doc/index.html (original)
+++ sandbox/xint/doc/index.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -66,7 +66,7 @@
<li><a class="el" href="ex__fibonacci.html">Fibonacci Numbers</a> </li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/index_8dox.html
==============================================================================
--- sandbox/xint/doc/index_8dox.html (original)
+++ sandbox/xint/doc/index_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/index.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/integer_8cpp.html
==============================================================================
--- sandbox/xint/doc/integer_8cpp.html (original)
+++ sandbox/xint/doc/integer_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -44,7 +44,7 @@
<p>Definition in file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/integer_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/integer_8cpp_source.html (original)
+++ sandbox/xint/doc/integer_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -50,16 +50,16 @@
<a name="l00030"></a>00030 }
<a name="l00031"></a>00031
<a name="l00042"></a>00042 <a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600" title="Creates a new integer with an initial value of zero.">integer::integer</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a>& b) {
-<a name="l00043"></a>00043 _attach(b);
+<a name="l00043"></a>00043 _attach(b, <span class="keyword">false</span>);
<a name="l00044"></a>00044 }
<a name="l00045"></a>00045
<a name="l00056"></a>00056 <a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600" title="Creates a new integer with an initial value of zero.">integer::integer</a>(<span class="keyword">const</span> nothrow_integer& b) {
<a name="l00057"></a>00057 <span class="keywordflow">if</span> (b.is_nan()) <span class="keywordflow">throw</span> exceptions::not_a_number();
-<a name="l00058"></a>00058 _attach(b);
+<a name="l00058"></a>00058 _attach(b, <span class="keyword">false</span>);
<a name="l00059"></a>00059 }
<a name="l00060"></a>00060
<a name="l00067"></a>00067 <a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600" title="Creates a new integer with an initial value of zero.">integer::integer</a>(<span class="keyword">const</span> fixed_integer_any& b) {
-<a name="l00068"></a>00068 _attach(b);
+<a name="l00068"></a>00068 _attach(b, <span class="keyword">false</span>);
<a name="l00069"></a>00069 }
<a name="l00070"></a>00070
<a name="l00094"></a>00094 <a class="code" href="classboost_1_1xint_1_1integer.html#a33ad2603be1c3ae3823523265f7ee600" title="Creates a new integer with an initial value of zero.">integer::integer</a>(<span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> base) {
@@ -95,7 +95,7 @@
<a name="l00154"></a>00154 }
<a name="l00155"></a>00155
<a name="l00156"></a>00156 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a>& <a class="code" href="classboost_1_1xint_1_1integer.html#a81ff5a94d6895e1714e992fde407e7fa">integer::operator=</a>(<a class="code" href="internals_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">BOOST_XINT_COPY_ASSIGN_REF</a>(<a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a>) c) {
-<a name="l00157"></a>00157 _attach(c);
+<a name="l00157"></a>00157 _attach(c, <span class="keyword">false</span>);
<a name="l00158"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a974cdabaf176323354cf491820b2d22d">00158</a> <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00159"></a>00159 }
<a name="l00160"></a><a class="code" href="classboost_1_1xint_1_1integer.html#a3452b0a1af51a556bdcb6a3d087b44db">00160</a>
@@ -145,7 +145,7 @@
<a name="l00204"></a>00204 } <span class="comment">// namespace xint</span>
<a name="l00205"></a>00205 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/integer_8hpp.html
==============================================================================
--- sandbox/xint/doc/integer_8hpp.html (original)
+++ sandbox/xint/doc/integer_8hpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -182,7 +182,7 @@
<p>Definition in file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/integer_8hpp_source.html
==============================================================================
--- sandbox/xint/doc/integer_8hpp_source.html (original)
+++ sandbox/xint/doc/integer_8hpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -263,7 +263,7 @@
<a name="l00342"></a>00342
<a name="l00343"></a>00343 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTEGER_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/internals_8hpp.html
==============================================================================
--- sandbox/xint/doc/internals_8hpp.html (original)
+++ sandbox/xint/doc/internals_8hpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -199,7 +199,7 @@
</div>
</div>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/internals_8hpp_source.html
==============================================================================
--- sandbox/xint/doc/internals_8hpp_source.html (original)
+++ sandbox/xint/doc/internals_8hpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -169,20 +169,20 @@
<a name="l00185"></a>00185 <span class="keywordtype">size_t</span> _fixed_bits() <span class="keyword">const</span>;
<a name="l00186"></a>00186
<a name="l00187"></a>00187 <span class="keywordtype">bool</span> _get_readonly() <span class="keyword">const</span>;
-<a name="l00188"></a>00188 <span class="keywordtype">bool</span> _get_negative() <span class="keyword">const</span>;
-<a name="l00189"></a>00189 <span class="keywordtype">void</span> _set_negative(<span class="keywordtype">bool</span> neg);
-<a name="l00190"></a>00190 <span class="keywordtype">void</span> _toggle_negative();
-<a name="l00191"></a>00191
-<a name="l00192"></a>00192 <span class="keywordtype">void</span> _realloc(<span class="keywordtype">size_t</span> new_digit_count);
-<a name="l00193"></a>00193 <span class="keywordtype">void</span> _cleanup();
-<a name="l00194"></a>00194 <span class="keywordtype">void</span> _attach(<span class="keyword">const</span> base_integer& copy);
-<a name="l00195"></a>00195
-<a name="l00196"></a>00196 <span class="keywordtype">void</span> _increment(<span class="keywordtype">bool</span> absolute_value=<span class="keyword">false</span>);
-<a name="l00197"></a>00197 <span class="keywordtype">void</span> _decrement(<span class="keywordtype">bool</span> absolute_value=<span class="keyword">false</span>);
-<a name="l00198"></a>00198 <span class="keywordtype">void</span> _add(<span class="keyword">const</span> base_integer& n);
-<a name="l00199"></a>00199 <span class="keywordtype">void</span> _subtract(<span class="keyword">const</span> base_integer& n);
+<a name="l00188"></a>00188 <span class="keywordtype">void</span> _mark_movable();
+<a name="l00189"></a>00189 <span class="keywordtype">bool</span> _is_movable() <span class="keyword">const</span>;
+<a name="l00190"></a>00190 <span class="keywordtype">bool</span> _get_negative() <span class="keyword">const</span>;
+<a name="l00191"></a>00191 <span class="keywordtype">void</span> _set_negative(<span class="keywordtype">bool</span> neg);
+<a name="l00192"></a>00192 <span class="keywordtype">void</span> _toggle_negative();
+<a name="l00193"></a>00193
+<a name="l00194"></a>00194 <span class="keywordtype">void</span> _realloc(<span class="keywordtype">size_t</span> new_digit_count);
+<a name="l00195"></a>00195 <span class="keywordtype">void</span> _cleanup();
+<a name="l00196"></a>00196 <span class="keywordtype">void</span> _attach(<span class="keyword">const</span> base_integer& copy, <span class="keywordtype">bool</span> treat_as_movable);
+<a name="l00197"></a>00197
+<a name="l00198"></a>00198 <span class="keywordtype">void</span> _increment(<span class="keywordtype">bool</span> absolute_value=<span class="keyword">false</span>);
+<a name="l00199"></a>00199 <span class="keywordtype">void</span> _decrement(<span class="keywordtype">bool</span> absolute_value=<span class="keyword">false</span>);
<a name="l00200"></a>00200
-<a name="l00201"></a>00201 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a> _to_integer() <span class="keyword">const</span>;
+<a name="l00201"></a>00201 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a> _to_integer(<span class="keywordtype">bool</span> treat_as_movable) <span class="keyword">const</span>;
<a name="l00202"></a>00202 <span class="keywordtype">void</span> _set_signed(boost::intmax_t n);
<a name="l00203"></a>00203 <span class="keywordtype">void</span> _set_unsigned(boost::uintmax_t n, <span class="keywordtype">bool</span> negative=<span class="keyword">false</span>);
<a name="l00204"></a>00204
@@ -196,8 +196,8 @@
<a name="l00213"></a>00213 base_integer(<span class="keyword">const</span> base_integer& c, <span class="keywordtype">bool</span> fixed);
<a name="l00214"></a>00214 <span class="keyword">explicit</span> base_integer(data_t *adopt, <span class="keywordtype">bool</span> neg=<span class="keyword">false</span>);
<a name="l00215"></a>00215 base_integer(<span class="keywordtype">size_t</span> count, digit_t mask);
-<a name="l00216"></a>00216 <span class="keywordtype">void</span> _base_attach(data_t *new_data, flag_t flags=0, <span class="keywordtype">size_t</span>
-<a name="l00217"></a>00217 extra_allocation=0);
+<a name="l00216"></a>00216 <span class="keywordtype">void</span> _base_attach(data_t *new_data, flag_t flags = 0, <span class="keywordtype">size_t</span>
+<a name="l00217"></a>00217 extra_allocation = 0, <span class="keywordtype">bool</span> is_movable = <span class="keyword">false</span>);
<a name="l00218"></a>00218
<a name="l00219"></a>00219 <span class="keywordtype">void</span> _set_readonly();
<a name="l00220"></a>00220
@@ -205,301 +205,302 @@
<a name="l00222"></a>00222 <span class="keyword">static</span> <span class="keyword">const</span> flag_t flag_negative = 0x01;
<a name="l00223"></a>00223 <span class="keyword">static</span> <span class="keyword">const</span> flag_t flag_readonly = 0x02;
<a name="l00224"></a>00224 <span class="keyword">static</span> <span class="keyword">const</span> flag_t flag_fixedlength = 0x04;
-<a name="l00225"></a>00225
-<a name="l00226"></a>00226 <span class="keyword">private</span>:
-<a name="l00227"></a>00227 flag_t flags;
-<a name="l00228"></a>00228 data_t *data;
-<a name="l00229"></a>00229
-<a name="l00230"></a>00230 <span class="keyword">friend</span> <span class="keyword">class </span>temp_t;
-<a name="l00231"></a>00231 <span class="keyword">friend</span> <span class="keyword">class </span>base_variable_length_integer;
-<a name="l00232"></a>00232 };
-<a name="l00233"></a>00233
-<a name="l00235"></a>00235 <span class="keyword">class </span>temp_t: <span class="keyword">public</span> base_integer {
-<a name="l00236"></a>00236 <span class="keyword">public</span>:
-<a name="l00237"></a>00237 <span class="keyword">explicit</span> temp_t(<span class="keyword">const</span> base_integer& b) {
-<a name="l00238"></a>00238 flags = b.flags;
-<a name="l00239"></a>00239 data = b.data;
-<a name="l00240"></a>00240 ++data->copies;
-<a name="l00241"></a>00241 }
-<a name="l00242"></a>00242
-<a name="l00244"></a>00244 temp_t(<span class="keyword">const</span> base_integer& b, <span class="keywordtype">size_t</span> realloc_size):
-<a name="l00245"></a>00245 base_integer(b._is_fixed()
-<a name="l00246"></a>00246 ? allocate_fixed(b.data->fixed_mask, b._fixed_digits(), realloc_size)
-<a name="l00247"></a>00247 : allocate(realloc_size)) { }
-<a name="l00248"></a>00248 };
-<a name="l00249"></a>00249
-<a name="l00251"></a>00251 <span class="keyword">class </span>neg_t: <span class="keyword">public</span> temp_t {
-<a name="l00252"></a>00252 <span class="keyword">public</span>:
-<a name="l00253"></a>00253 <span class="keyword">explicit</span> neg_t(<span class="keyword">const</span> base_integer& b): temp_t(b) {
-<a name="l00254"></a>00254 _toggle_negative();
-<a name="l00255"></a>00255 }
-<a name="l00256"></a>00256 };
-<a name="l00257"></a>00257
-<a name="l00259"></a>00259 <span class="keyword">class </span>base_variable_length_integer: <span class="keyword">public</span> base_integer {
-<a name="l00260"></a>00260 <span class="keyword">protected</span>:
-<a name="l00261"></a>00261 <span class="keywordtype">void</span> _attach_0();
-<a name="l00262"></a>00262 };
-<a name="l00263"></a>00263
-<a name="l00265"></a>00265 <span class="keyword">class </span>bitqueue_t {
-<a name="l00266"></a>00266 <span class="keyword">public</span>:
-<a name="l00267"></a>00267 bitqueue_t(): bits_pending(0) { }
-<a name="l00268"></a>00268 <span class="keywordtype">void</span> push(doubledigit_t bits, <span class="keywordtype">size_t</span> count);
-<a name="l00269"></a>00269 doubledigit_t pop(<span class="keywordtype">size_t</span> requestedbits);
-<a name="l00270"></a>00270 <span class="keywordtype">bool</span> empty()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> pending.empty(); }
-<a name="l00271"></a>00271 <span class="keywordtype">size_t</span> size()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> bits_pending; }
-<a name="l00272"></a>00272
-<a name="l00273"></a>00273 <span class="keyword">private</span>:
-<a name="l00274"></a>00274 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> ddbits = std::numeric_limits<doubledigit_t>::digits;
-<a name="l00275"></a>00275 <span class="keyword">typedef</span> std::pair<doubledigit_t, size_t> indata_t;
-<a name="l00276"></a>00276 <span class="keyword">typedef</span> std::queue<indata_t> inqueue_t;
-<a name="l00277"></a>00277
-<a name="l00278"></a>00278 <span class="keywordtype">size_t</span> bits_pending;
-<a name="l00279"></a>00279 inqueue_t pending;
-<a name="l00280"></a>00280 };
-<a name="l00281"></a>00281
-<a name="l00282"></a>00282 <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">compare</a>(<span class="keyword">const</span> base_integer &b1, <span class="keyword">const</span> base_integer &b2, <span class="keywordtype">bool</span>
-<a name="l00283"></a>00283 ignoresign=<span class="keyword">false</span>);
-<a name="l00284"></a>00284 std::string <a class="code" href="namespaceboost_1_1xint.html#ac0454fdc47e70a493c7bf5d92dda33d4" title="Creates a string representation of the specified integer.">to_string</a>(<span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> base, <span class="keywordtype">bool</span> uppercase);
-<a name="l00285"></a>00285 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#af263105e57d48eff5fe14d4d03ca10e1" title="Converts a string to an integer.">from_string</a>(base_integer& target, <span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> base);
-<a name="l00286"></a>00286 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a7b7903cb879b60d0d5e3403b3c6a1cdd">add</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer& n2);
-<a name="l00287"></a>00287 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a385b3869d8dcceab2ffb68ff33c95062">subtract</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer&
-<a name="l00288"></a>00288 n2);
-<a name="l00289"></a>00289 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer&
-<a name="l00290"></a>00290 n2);
-<a name="l00291"></a>00291 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(base_integer& qtarget, base_integer& rtarget, <span class="keyword">const</span> base_integer&
-<a name="l00292"></a>00292 n1, <span class="keyword">const</span> base_integer& n2);
-<a name="l00293"></a>00293 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer&
-<a name="l00294"></a>00294 n2);
-<a name="l00295"></a>00295 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a83ce32006b45117f9b3dc6c673fc9f01">sqr</a>(base_integer& target, <span class="keyword">const</span> base_integer& n);
-<a name="l00296"></a>00296 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a7f73207284ff1f32b20fb8a6a7a82649">pow</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keyword">const</span> base_integer& e);
-<a name="l00297"></a>00297 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a942e346f6e6d069dc19c28e7e56634ab" title="Calculate the value of n! ">factorial</a>(base_integer& target, <span class="keywordtype">size_t</span> n);
-<a name="l00298"></a>00298 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a0825d8d9d4644df8d9b6922f5b0d7064">sqrt</a>(base_integer& target, <span class="keyword">const</span> base_integer& n);
-<a name="l00299"></a>00299 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac00836bdc530b3eaf0a9b9f2e208273b" title="Queries the value of a particular bit in an integer.">getbit</a>(<span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> bit);
-<a name="l00300"></a>00300 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a6278915cf51b0d448a9db40031226182" title="Sets a specific bit in an integer to one.">setbit</a>(base_integer& n, <span class="keywordtype">size_t</span> bit);
-<a name="l00301"></a>00301 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a96d452df71ac6799a7041647b4b106df" title="Sets a specific bit in an integer to zero.">clearbit</a>(base_integer& n, <span class="keywordtype">size_t</span> bit);
-<a name="l00302"></a>00302 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#a783e728f8221cd424d6f7f5d5f67ec40" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(<span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> valueIfZero);
-<a name="l00303"></a>00303 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#aec002c076eff13d0382c5d2cd6de1d60" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(<span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> valueIfZero);
-<a name="l00304"></a>00304 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2" title="Combine two integers using a bitwise AND operation.">bitwise_and</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span>
-<a name="l00305"></a>00305 base_integer& n2);
-<a name="l00306"></a>00306 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec" title="Combine two integers using a bitwise OR operation.">bitwise_or</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span>
-<a name="l00307"></a>00307 base_integer& n2);
-<a name="l00308"></a>00308 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1" title="Combine two integers using a bitwise XOR operation.">bitwise_xor</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span>
-<a name="l00309"></a>00309 base_integer& n2);
-<a name="l00310"></a>00310 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> byBits);
-<a name="l00311"></a>00311 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> byBits);
-<a name="l00312"></a>00312 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a61303b2b007d23cc8c9b7450c848c14d" title="Creates a binary representation of an integer.">to_binary</a>(<a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58">xint::binary_t</a>& target, <span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> bits);
-<a name="l00313"></a>00313 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a4ac395fda0e4553da82a8e967e188280" title="Converts a portable binary representation of a number into an integer.">from_binary</a>(base_integer& target, <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58">xint::binary_t</a>& s, <span class="keywordtype">size_t</span> bits);
-<a name="l00314"></a>00314 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ab551ac5968fdbcc639318b6f294da2cd" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(base_integer& target, <span class="keyword">const</span> base_integer& num1, <span class="keyword">const</span> base_integer&
-<a name="l00315"></a>00315 num2);
-<a name="l00316"></a>00316 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a0096ae57d50e4fe8b5413ea7a4e60495" title="Calculate the Least Common Multiple of two integers.">lcm</a>(base_integer& target, <span class="keyword">const</span> base_integer& num1, <span class="keyword">const</span> base_integer&
-<a name="l00317"></a>00317 num2);
-<a name="l00318"></a>00318 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a9b8c31b64eb9700beea8b95edec31a73" title="Get the remainder after dividing a number by another.">mod</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer&
-<a name="l00319"></a>00319 n2);
-<a name="l00320"></a>00320 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a1e2477157ea768d8c57fac1c31a8f7ca" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keyword">const</span> base_integer& m);
-<a name="l00321"></a>00321 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a35e7556e9f2d8fb944dbf732ed3f96cd" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keyword">const</span> base_integer& e,
-<a name="l00322"></a>00322 <span class="keyword">const</span> base_integer& m, <span class="keywordtype">bool</span> noMontgomery);
-<a name="l00323"></a>00323
-<a name="l00324"></a>00324 <span class="keywordtype">size_t</span> log10_bits(<span class="keywordtype">size_t</span> bits);
-<a name="l00325"></a>00325
-<a name="l00327"></a>00327 } <span class="comment">// namespace detail</span>
-<a name="l00328"></a>00328
-<a name="l00333"></a><a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html">00333</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html" title="The base class for all fixed_integer types.">fixed_integer_any</a>: <span class="keyword">public</span> detail::base_integer {
-<a name="l00334"></a>00334 <span class="keyword">public</span>:
-<a name="l00341"></a><a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#af6e682f145aaa5ceea6f8d81bf533442">00341</a> <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#af6e682f145aaa5ceea6f8d81bf533442">fixed_integer_any</a>(<span class="keyword">const</span> T& n,
-<a name="l00342"></a>00342 <span class="keyword">typename</span> boost::enable_if<boost::is_integral<T> >::type* = 0,
-<a name="l00343"></a>00343 <span class="keyword">typename</span> boost::enable_if<boost::is_signed<T> >::type* = 0):
-<a name="l00344"></a>00344 base_integer(detail::digits_in_uintmax, detail::digit_mask)
-<a name="l00345"></a>00345 { _set_signed(n); }
-<a name="l00346"></a>00346
-<a name="l00347"></a><a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#a3ad49f5095f367b7e19aa3becb3464b3">00347</a> <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#af6e682f145aaa5ceea6f8d81bf533442">fixed_integer_any</a>(<span class="keyword">const</span> T& n,
-<a name="l00348"></a>00348 <span class="keyword">typename</span> boost::enable_if<boost::is_integral<T> >::type* = 0,
-<a name="l00349"></a>00349 <span class="keyword">typename</span> boost::enable_if<boost::is_unsigned<T> >::type* = 0):
-<a name="l00350"></a>00350 base_integer(detail::digits_in_uintmax, detail::digit_mask)
-<a name="l00351"></a>00351 { _set_unsigned(n); }
-<a name="l00352"></a>00352
-<a name="l00353"></a>00353 <span class="keyword">protected</span>:
-<a name="l00354"></a><a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#aa1c3b00ad3be70fb2d42dd86fcfe3a00">00354</a> <a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#af6e682f145aaa5ceea6f8d81bf533442">fixed_integer_any</a>(<span class="keywordtype">size_t</span> count, detail::digit_t mask):
-<a name="l00355"></a>00355 base_integer(count, mask) { }
-<a name="l00356"></a><a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#a9f0620259b6e2cdf3ea6e2bad2a21d22">00356</a> <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#af6e682f145aaa5ceea6f8d81bf533442">fixed_integer_any</a>(detail::data_t *adopt, <span class="keywordtype">bool</span> neg=<span class="keyword">false</span>):
-<a name="l00357"></a>00357 base_integer(adopt, neg) { }
-<a name="l00358"></a><a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#abdd088ce22d3afd4a8c3dcc402401ace">00358</a> <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#af6e682f145aaa5ceea6f8d81bf533442">fixed_integer_any</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html" title="The base class for all fixed_integer types.">fixed_integer_any</a>& c):
-<a name="l00359"></a>00359 base_integer(c, true) { }
-<a name="l00360"></a>00360 };
-<a name="l00361"></a>00361
-<a name="l00364"></a>00364 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a0492c49fda91b5f498074d3f812906dd" title="Tells whether the library was compiled with Secure Mode enabled.">opt_secure_mode</a>();
-<a name="l00365"></a>00365 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac80750e62d5ffa2484332aae4b23d379" title="Tells whether the library was compiled with the Thread Safe Operation option enabled...">opt_thread_safe</a>();
-<a name="l00367"></a>00367
-<a name="l00374"></a>00374 <span class="keyword">template</span> <<span class="keyword">class</span> T>
-<a name="l00375"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html">00375</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a> {
-<a name="l00376"></a>00376 <span class="keyword">public</span>:
-<a name="l00377"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">00377</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">base_divide_t</a>() { }
-<a name="l00378"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">00378</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">base_divide_t</a>(<span class="keyword">const</span> T& q, <span class="keyword">const</span> T& r): <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>(q), <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>(r) { }
-<a name="l00379"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa9f43e464f328b0cc618f67e6e4d1d6f">00379</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">base_divide_t</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t<T></a>& copy):
-<a name="l00380"></a>00380 <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>(copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>), <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>(copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>) { }
-<a name="l00381"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aaa2df86aa70e8ac849cd6289a1f459b1">00381</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aaa2df86aa70e8ac849cd6289a1f459b1">base_divide_t</a>(<a class="code" href="internals_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>) move) {
-<a name="l00382"></a>00382 <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>._swap(move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>); <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>._swap(move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>); }
-<a name="l00383"></a>00383
-<a name="l00384"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">00384</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>& <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">operator=</a>(<a class="code" href="internals_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">BOOST_XINT_COPY_ASSIGN_REF</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>) copy)
-<a name="l00385"></a>00385 { <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a> = copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>; <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a> = copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>; <span class="keywordflow">return</span>
-<a name="l00386"></a>00386 *<span class="keyword">this</span>; }
-<a name="l00387"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">00387</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>& <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">operator=</a>(<a class="code" href="internals_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>) move) {
-<a name="l00388"></a>00388 <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>._swap(move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>); <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>._swap(move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>); <span class="keywordflow">return</span>
-<a name="l00389"></a>00389 *<span class="keyword">this</span>; }
-<a name="l00390"></a>00390
-<a name="l00391"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">00391</a> T <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>, <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>;
-<a name="l00392"></a>00392
-<a name="l00393"></a>00393 <span class="keyword">private</span>:
-<a name="l00394"></a>00394 <a class="code" href="internals_8hpp.html#a5f5634ec80010f0f87b93320fa3419f9">BOOST_XINT_COPYABLE_AND_MOVABLE</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>)
-<a name="l00395"></a>00395 };
-<a name="l00396"></a>00396
-<a name="l00397"></a>00397 } <span class="comment">// namespace xint</span>
-<a name="l00398"></a>00398 } <span class="comment">// namespace boost</span>
-<a name="l00399"></a>00399
-<a name="l00401"></a>00401 <span class="comment">// Template functions</span>
-<a name="l00402"></a>00402
-<a name="l00403"></a>00403 <span class="preprocessor">#include "<a class="code" href="exceptions_8hpp.html" title="The exception namespace.">exceptions.hpp</a>"</span>
-<a name="l00404"></a>00404
-<a name="l00405"></a>00405 <span class="keyword">namespace </span>boost {
-<a name="l00406"></a>00406 <span class="keyword">namespace </span>xint {
-<a name="l00407"></a>00407
-<a name="l00409"></a>00409 <span class="keyword">namespace </span>detail {
-<a name="l00410"></a>00410
-<a name="l00411"></a>00411 <span class="keyword">template</span> <<span class="keyword">typename</span> T>
-<a name="l00412"></a>00412 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd" title="Get the log2 value of an integer.">log2</a>(<span class="keyword">const</span> T& n,
-<a name="l00413"></a>00413 <span class="keyword">typename</span> boost::enable_if<boost::is_integral<T> >::type* = 0,
-<a name="l00414"></a>00414 <span class="keyword">typename</span> boost::enable_if<boost::is_unsigned<T> >::type* = 0)
-<a name="l00415"></a>00415 {
-<a name="l00416"></a>00416 <span class="keywordtype">size_t</span> lo=0, hi=std::numeric_limits<T>::digits;
-<a name="l00417"></a>00417 <span class="keywordflow">while</span> (lo < hi) {
-<a name="l00418"></a>00418 <span class="keywordtype">size_t</span> s = lo + ((hi - lo) >> 1);
-<a name="l00419"></a>00419 <span class="keywordflow">if</span> (n >= (T(1) << s)) lo = s + 1;
-<a name="l00420"></a>00420 <span class="keywordflow">else</span> hi = s;
-<a name="l00421"></a>00421 }
-<a name="l00422"></a>00422 <span class="keywordflow">return</span> lo;
-<a name="l00423"></a>00423 }
-<a name="l00424"></a>00424
-<a name="l00425"></a>00425 <span class="keyword">template</span> <<span class="keyword">typename</span> T>
-<a name="l00426"></a>00426 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd" title="Get the log2 value of an integer.">log2</a>(<span class="keyword">const</span> T& nn,
-<a name="l00427"></a>00427 <span class="keyword">typename</span> boost::enable_if<boost::is_integral<T> >::type* = 0,
-<a name="l00428"></a>00428 <span class="keyword">typename</span> boost::enable_if<boost::is_signed<T> >::type* = 0)
-<a name="l00429"></a>00429 {
-<a name="l00430"></a>00430 <span class="keyword">typedef</span> <span class="keyword">typename</span> boost::make_unsigned<T>::type uT;
-<a name="l00431"></a>00431 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd" title="Get the log2 value of an integer.">log2</a>(static_cast<uT>(nn < 0 ? -nn : nn));
-<a name="l00432"></a>00432 }
-<a name="l00433"></a>00433
-<a name="l00434"></a>00434 <span class="keyword">template</span> <<span class="keyword">typename</span> T>
-<a name="l00435"></a>00435 T <a class="code" href="namespaceboost_1_1xint.html#a2078ed71644ee71a1ce2e616d28e5baa">to</a>(<span class="keyword">const</span> base_integer& n) {
-<a name="l00436"></a>00436 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">compare</a>(n, fixed_integer_any((std::numeric_limits<T>::min)())) < 0
-<a name="l00437"></a>00437 || <a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">compare</a>(n, fixed_integer_any((std::numeric_limits<T>::max)())) > 0)
-<a name="l00438"></a>00438 <span class="keywordflow">throw</span> exceptions::too_big(<span class="stringliteral">"value out of range for requested "</span>
-<a name="l00439"></a>00439 <span class="stringliteral">"conversion"</span>);
-<a name="l00440"></a>00440
-<a name="l00441"></a>00441 T rval = 0;
-<a name="l00442"></a>00442 <span class="keywordtype">size_t</span> len=n._get_length();
-<a name="l00443"></a>00443 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> x=0; x<len; ++x) {
-<a name="l00444"></a>00444 <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(T) > <span class="keyword">sizeof</span>(detail::digit_t)) rval <<= detail::bits_per_digit;
-<a name="l00445"></a>00445 rval += <span class="keyword">static_cast<</span>T<span class="keyword">></span>(n._get_digit(len - x - 1));
-<a name="l00446"></a>00446 }
-<a name="l00447"></a>00447 <span class="keywordflow">if</span> (n._get_negative()) rval = -rval; <span class="comment">// Bogus MSVC warning C4146</span>
-<a name="l00448"></a>00448 <span class="keywordflow">return</span> rval;
-<a name="l00449"></a>00449 }
-<a name="l00450"></a>00450
-<a name="l00451"></a>00451 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits>
-<a name="l00452"></a>00452 <span class="keyword">inline</span> std::basic_ostream<charT,traits>& <a class="code" href="namespaceboost_1_1xint.html#a7188dd65026fde2ae4a690d55ef7b648">operator<<</a>(std::basic_ostream<charT,
-<a name="l00453"></a>00453 traits>& out, <span class="keyword">const</span> base_integer& n)
-<a name="l00454"></a>00454 {
-<a name="l00455"></a>00455 <span class="keywordtype">int</span> base=((out.flags() & std::ios::hex) ? 16
-<a name="l00456"></a>00456 : (out.flags() & std::ios::oct) ? 8
-<a name="l00457"></a>00457 : 10);
-<a name="l00458"></a>00458 <span class="keywordtype">bool</span> upperCase=(out.flags() & std::ios::uppercase ? <span class="keyword">true</span> : <span class="keyword">false</span>);
-<a name="l00459"></a>00459
-<a name="l00460"></a>00460 <span class="keywordtype">int</span> nsign = (n._is_zero() ? 0 : n._get_negative() ? -1 : 1);
-<a name="l00461"></a>00461 <span class="keywordflow">if</span> ((out.flags() & std::ios::showpos) && nsign >= 0) out << <span class="stringliteral">"+"</span>;
-<a name="l00462"></a>00462
-<a name="l00463"></a>00463 <span class="keywordflow">if</span> (out.flags() & std::ios::showbase) {
-<a name="l00464"></a>00464 <span class="keywordflow">if</span> (nsign < 0) out << <span class="stringliteral">"-"</span>;
-<a name="l00465"></a>00465
-<a name="l00466"></a>00466 <span class="keywordflow">if</span> (base==16 && upperCase) out << <span class="stringliteral">"0X"</span>;
-<a name="l00467"></a>00467 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base==16) out << <span class="stringliteral">"0x"</span>;
-<a name="l00468"></a>00468 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base==8) out << <span class="stringliteral">"0"</span>;
-<a name="l00469"></a>00469
-<a name="l00470"></a>00470 <span class="keywordflow">if</span> (n._get_negative()) {
-<a name="l00471"></a>00471 out << <a class="code" href="namespaceboost_1_1xint.html#ac0454fdc47e70a493c7bf5d92dda33d4" title="Creates a string representation of the specified integer.">to_string</a>(neg_t(n), base, upperCase);
-<a name="l00472"></a>00472 } <span class="keywordflow">else</span> {
-<a name="l00473"></a>00473 out << <a class="code" href="namespaceboost_1_1xint.html#ac0454fdc47e70a493c7bf5d92dda33d4" title="Creates a string representation of the specified integer.">to_string</a>(n, base, upperCase);
-<a name="l00474"></a>00474 }
-<a name="l00475"></a>00475 } <span class="keywordflow">else</span> {
-<a name="l00476"></a>00476 out << <a class="code" href="namespaceboost_1_1xint.html#ac0454fdc47e70a493c7bf5d92dda33d4" title="Creates a string representation of the specified integer.">to_string</a>(n, base, upperCase);
-<a name="l00477"></a>00477 }
-<a name="l00478"></a>00478 <span class="keywordflow">return</span> out;
-<a name="l00479"></a>00479 }
-<a name="l00480"></a>00480
-<a name="l00481"></a>00481 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits>
-<a name="l00482"></a>00482 <span class="keyword">inline</span> std::basic_istream<charT,traits>& <a class="code" href="namespaceboost_1_1xint.html#ab027908e04b71c8be33172768c6a2f67">operator>></a>(std::basic_istream<charT,
-<a name="l00483"></a>00483 traits>& in, base_integer& n)
-<a name="l00484"></a>00484 {
-<a name="l00485"></a>00485 <span class="keywordtype">int</span> hex=(in.flags() & std::ios::hex) ? 1 : 0;
-<a name="l00486"></a>00486 <span class="keywordtype">int</span> dec=(in.flags() & std::ios::dec) ? 1 : 0;
-<a name="l00487"></a>00487 <span class="keywordtype">int</span> oct=(in.flags() & std::ios::oct) ? 1 : 0;
-<a name="l00488"></a>00488 <span class="keywordtype">int</span> count=hex+dec+oct;
-<a name="l00489"></a>00489
-<a name="l00490"></a>00490 <span class="keywordtype">size_t</span> base=<a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">autobase</a>;
-<a name="l00491"></a>00491 <span class="keywordflow">if</span> (count==1) {
-<a name="l00492"></a>00492 <span class="keywordflow">if</span> (hex) base=16;
-<a name="l00493"></a>00493 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (oct) base=8;
-<a name="l00494"></a>00494 <span class="keywordflow">else</span> base=10;
-<a name="l00495"></a>00495 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count>1) base=10;
-<a name="l00496"></a>00496 <span class="comment">// else auto-base</span>
-<a name="l00497"></a>00497
-<a name="l00498"></a>00498 std::string s;
-<a name="l00499"></a>00499 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'+'</span>) {
-<a name="l00500"></a>00500 in.ignore();
-<a name="l00501"></a>00501 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'-'</span>) {
-<a name="l00502"></a>00502 in.ignore();
-<a name="l00503"></a>00503 s.push_back(<span class="charliteral">'-'</span>);
-<a name="l00504"></a>00504 }
-<a name="l00505"></a>00505
-<a name="l00506"></a>00506 <span class="keywordflow">if</span> (base==<a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">autobase</a>) {
-<a name="l00507"></a>00507 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'0'</span>) {
-<a name="l00508"></a>00508 in.ignore();
-<a name="l00509"></a>00509 <span class="keywordtype">int</span> c=in.peek();
-<a name="l00510"></a>00510 <span class="keywordflow">if</span> (c==<span class="charliteral">'x'</span> || c==<span class="charliteral">'X'</span>) {
-<a name="l00511"></a>00511 in.ignore();
-<a name="l00512"></a>00512 base=16;
-<a name="l00513"></a>00513 } <span class="keywordflow">else</span> base=8;
-<a name="l00514"></a>00514 } <span class="keywordflow">else</span> base=10;
-<a name="l00515"></a>00515 }
-<a name="l00516"></a>00516
-<a name="l00517"></a>00517 <span class="keywordflow">while</span> (in) {
-<a name="l00518"></a>00518 <span class="keywordtype">int</span> c=in.peek();
-<a name="l00519"></a>00519 <span class="keywordflow">if</span> ((base==8 && (c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'7'</span>)) ||
-<a name="l00520"></a>00520 (base==10 && (c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'9'</span>)) ||
-<a name="l00521"></a>00521 (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="l00522"></a>00522 (c>=<span class="charliteral">'A'</span> && c<=<span class="charliteral">'F'</span>))))
-<a name="l00523"></a>00523 {
-<a name="l00524"></a>00524 in.ignore();
-<a name="l00525"></a>00525 s.push_back(<span class="keywordtype">char</span>(c));
-<a name="l00526"></a>00526 } <span class="keywordflow">else</span> <span class="keywordflow">break</span>;
-<a name="l00527"></a>00527 }
-<a name="l00528"></a>00528
-<a name="l00529"></a>00529 <span class="keywordflow">try</span> {
-<a name="l00530"></a>00530 <a class="code" href="namespaceboost_1_1xint.html#af263105e57d48eff5fe14d4d03ca10e1" title="Converts a string to an integer.">detail::from_string</a>(n, s, base);
-<a name="l00531"></a>00531 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00532"></a>00532 <span class="comment">// Catch invalid strings</span>
-<a name="l00533"></a>00533 in.setstate(std::ios::failbit);
-<a name="l00534"></a>00534 }
-<a name="l00535"></a>00535
-<a name="l00536"></a>00536 <span class="keywordflow">return</span> in;
-<a name="l00537"></a>00537 }
-<a name="l00538"></a>00538
-<a name="l00539"></a>00539 } <span class="comment">// namespace detail</span>
-<a name="l00541"></a>00541 <span class="comment"></span>
-<a name="l00542"></a>00542 } <span class="comment">// namespace xint</span>
-<a name="l00543"></a>00543 } <span class="comment">// namespace boost</span>
-<a name="l00544"></a>00544
-<a name="l00545"></a>00545 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTERNALS_HPP</span>
+<a name="l00225"></a>00225 <span class="keyword">static</span> <span class="keyword">const</span> flag_t flag_movable = 0x08;
+<a name="l00226"></a>00226
+<a name="l00227"></a>00227 <span class="keyword">private</span>:
+<a name="l00228"></a>00228 flag_t flags;
+<a name="l00229"></a>00229 data_t *data;
+<a name="l00230"></a>00230
+<a name="l00231"></a>00231 <span class="keyword">friend</span> <span class="keyword">class </span>temp_t;
+<a name="l00232"></a>00232 <span class="keyword">friend</span> <span class="keyword">class </span>base_variable_length_integer;
+<a name="l00233"></a>00233 };
+<a name="l00234"></a>00234
+<a name="l00236"></a>00236 <span class="keyword">class </span>temp_t: <span class="keyword">public</span> base_integer {
+<a name="l00237"></a>00237 <span class="keyword">public</span>:
+<a name="l00238"></a>00238 <span class="keyword">explicit</span> temp_t(<span class="keyword">const</span> base_integer& b) {
+<a name="l00239"></a>00239 flags = b.flags;
+<a name="l00240"></a>00240 data = b.data;
+<a name="l00241"></a>00241 ++data->copies;
+<a name="l00242"></a>00242 }
+<a name="l00243"></a>00243
+<a name="l00245"></a>00245 temp_t(<span class="keyword">const</span> base_integer& b, <span class="keywordtype">size_t</span> realloc_size):
+<a name="l00246"></a>00246 base_integer(b._is_fixed()
+<a name="l00247"></a>00247 ? allocate_fixed(b.data->fixed_mask, b._fixed_digits(), realloc_size)
+<a name="l00248"></a>00248 : allocate(realloc_size)) { }
+<a name="l00249"></a>00249 };
+<a name="l00250"></a>00250
+<a name="l00252"></a>00252 <span class="keyword">class </span>neg_t: <span class="keyword">public</span> temp_t {
+<a name="l00253"></a>00253 <span class="keyword">public</span>:
+<a name="l00254"></a>00254 <span class="keyword">explicit</span> neg_t(<span class="keyword">const</span> base_integer& b): temp_t(b) {
+<a name="l00255"></a>00255 _toggle_negative();
+<a name="l00256"></a>00256 }
+<a name="l00257"></a>00257 };
+<a name="l00258"></a>00258
+<a name="l00260"></a>00260 <span class="keyword">class </span>base_variable_length_integer: <span class="keyword">public</span> base_integer {
+<a name="l00261"></a>00261 <span class="keyword">protected</span>:
+<a name="l00262"></a>00262 <span class="keywordtype">void</span> _attach_0();
+<a name="l00263"></a>00263 };
+<a name="l00264"></a>00264
+<a name="l00266"></a>00266 <span class="keyword">class </span>bitqueue_t {
+<a name="l00267"></a>00267 <span class="keyword">public</span>:
+<a name="l00268"></a>00268 bitqueue_t(): bits_pending(0) { }
+<a name="l00269"></a>00269 <span class="keywordtype">void</span> push(doubledigit_t bits, <span class="keywordtype">size_t</span> count);
+<a name="l00270"></a>00270 doubledigit_t pop(<span class="keywordtype">size_t</span> requestedbits);
+<a name="l00271"></a>00271 <span class="keywordtype">bool</span> empty()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> pending.empty(); }
+<a name="l00272"></a>00272 <span class="keywordtype">size_t</span> size()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> bits_pending; }
+<a name="l00273"></a>00273
+<a name="l00274"></a>00274 <span class="keyword">private</span>:
+<a name="l00275"></a>00275 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> ddbits = std::numeric_limits<doubledigit_t>::digits;
+<a name="l00276"></a>00276 <span class="keyword">typedef</span> std::pair<doubledigit_t, size_t> indata_t;
+<a name="l00277"></a>00277 <span class="keyword">typedef</span> std::queue<indata_t> inqueue_t;
+<a name="l00278"></a>00278
+<a name="l00279"></a>00279 <span class="keywordtype">size_t</span> bits_pending;
+<a name="l00280"></a>00280 inqueue_t pending;
+<a name="l00281"></a>00281 };
+<a name="l00282"></a>00282
+<a name="l00283"></a>00283 <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">compare</a>(<span class="keyword">const</span> base_integer &b1, <span class="keyword">const</span> base_integer &b2, <span class="keywordtype">bool</span>
+<a name="l00284"></a>00284 ignoresign=<span class="keyword">false</span>);
+<a name="l00285"></a>00285 std::string <a class="code" href="namespaceboost_1_1xint.html#ac0454fdc47e70a493c7bf5d92dda33d4" title="Creates a string representation of the specified integer.">to_string</a>(<span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> base, <span class="keywordtype">bool</span> uppercase);
+<a name="l00286"></a>00286 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#af263105e57d48eff5fe14d4d03ca10e1" title="Converts a string to an integer.">from_string</a>(base_integer& target, <span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> base);
+<a name="l00287"></a>00287 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a7b7903cb879b60d0d5e3403b3c6a1cdd">add</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer& n2);
+<a name="l00288"></a>00288 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a385b3869d8dcceab2ffb68ff33c95062">subtract</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer&
+<a name="l00289"></a>00289 n2);
+<a name="l00290"></a>00290 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer&
+<a name="l00291"></a>00291 n2);
+<a name="l00292"></a>00292 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(base_integer& qtarget, base_integer& rtarget, <span class="keyword">const</span> base_integer&
+<a name="l00293"></a>00293 n1, <span class="keyword">const</span> base_integer& n2);
+<a name="l00294"></a>00294 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer&
+<a name="l00295"></a>00295 n2);
+<a name="l00296"></a>00296 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a83ce32006b45117f9b3dc6c673fc9f01">sqr</a>(base_integer& target, <span class="keyword">const</span> base_integer& n);
+<a name="l00297"></a>00297 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a7f73207284ff1f32b20fb8a6a7a82649">pow</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keyword">const</span> base_integer& e);
+<a name="l00298"></a>00298 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a942e346f6e6d069dc19c28e7e56634ab" title="Calculate the value of n! ">factorial</a>(base_integer& target, <span class="keywordtype">size_t</span> n);
+<a name="l00299"></a>00299 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a0825d8d9d4644df8d9b6922f5b0d7064">sqrt</a>(base_integer& target, <span class="keyword">const</span> base_integer& n);
+<a name="l00300"></a>00300 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac00836bdc530b3eaf0a9b9f2e208273b" title="Queries the value of a particular bit in an integer.">getbit</a>(<span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> bit);
+<a name="l00301"></a>00301 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a6278915cf51b0d448a9db40031226182" title="Sets a specific bit in an integer to one.">setbit</a>(base_integer& n, <span class="keywordtype">size_t</span> bit);
+<a name="l00302"></a>00302 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a96d452df71ac6799a7041647b4b106df" title="Sets a specific bit in an integer to zero.">clearbit</a>(base_integer& n, <span class="keywordtype">size_t</span> bit);
+<a name="l00303"></a>00303 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#a783e728f8221cd424d6f7f5d5f67ec40" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(<span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> valueIfZero);
+<a name="l00304"></a>00304 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#aec002c076eff13d0382c5d2cd6de1d60" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(<span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> valueIfZero);
+<a name="l00305"></a>00305 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2" title="Combine two integers using a bitwise AND operation.">bitwise_and</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span>
+<a name="l00306"></a>00306 base_integer& n2);
+<a name="l00307"></a>00307 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec" title="Combine two integers using a bitwise OR operation.">bitwise_or</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span>
+<a name="l00308"></a>00308 base_integer& n2);
+<a name="l00309"></a>00309 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1" title="Combine two integers using a bitwise XOR operation.">bitwise_xor</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span>
+<a name="l00310"></a>00310 base_integer& n2);
+<a name="l00311"></a>00311 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> byBits);
+<a name="l00312"></a>00312 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> byBits);
+<a name="l00313"></a>00313 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a61303b2b007d23cc8c9b7450c848c14d" title="Creates a binary representation of an integer.">to_binary</a>(<a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58">xint::binary_t</a>& target, <span class="keyword">const</span> base_integer& n, <span class="keywordtype">size_t</span> bits);
+<a name="l00314"></a>00314 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a4ac395fda0e4553da82a8e967e188280" title="Converts a portable binary representation of a number into an integer.">from_binary</a>(base_integer& target, <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58">xint::binary_t</a>& s, <span class="keywordtype">size_t</span> bits);
+<a name="l00315"></a>00315 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ab551ac5968fdbcc639318b6f294da2cd" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(base_integer& target, <span class="keyword">const</span> base_integer& num1, <span class="keyword">const</span> base_integer&
+<a name="l00316"></a>00316 num2);
+<a name="l00317"></a>00317 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a0096ae57d50e4fe8b5413ea7a4e60495" title="Calculate the Least Common Multiple of two integers.">lcm</a>(base_integer& target, <span class="keyword">const</span> base_integer& num1, <span class="keyword">const</span> base_integer&
+<a name="l00318"></a>00318 num2);
+<a name="l00319"></a>00319 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a9b8c31b64eb9700beea8b95edec31a73" title="Get the remainder after dividing a number by another.">mod</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer&
+<a name="l00320"></a>00320 n2);
+<a name="l00321"></a>00321 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a1e2477157ea768d8c57fac1c31a8f7ca" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keyword">const</span> base_integer& m);
+<a name="l00322"></a>00322 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a35e7556e9f2d8fb944dbf732ed3f96cd" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keyword">const</span> base_integer& e,
+<a name="l00323"></a>00323 <span class="keyword">const</span> base_integer& m, <span class="keywordtype">bool</span> noMontgomery);
+<a name="l00324"></a>00324
+<a name="l00325"></a>00325 <span class="keywordtype">size_t</span> log10_bits(<span class="keywordtype">size_t</span> bits);
+<a name="l00326"></a>00326
+<a name="l00328"></a>00328 } <span class="comment">// namespace detail</span>
+<a name="l00329"></a>00329
+<a name="l00334"></a><a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html">00334</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html" title="The base class for all fixed_integer types.">fixed_integer_any</a>: <span class="keyword">public</span> detail::base_integer {
+<a name="l00335"></a>00335 <span class="keyword">public</span>:
+<a name="l00342"></a><a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#af6e682f145aaa5ceea6f8d81bf533442">00342</a> <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#af6e682f145aaa5ceea6f8d81bf533442">fixed_integer_any</a>(<span class="keyword">const</span> T& n,
+<a name="l00343"></a>00343 <span class="keyword">typename</span> boost::enable_if<boost::is_integral<T> >::type* = 0,
+<a name="l00344"></a>00344 <span class="keyword">typename</span> boost::enable_if<boost::is_signed<T> >::type* = 0):
+<a name="l00345"></a>00345 base_integer(detail::digits_in_uintmax, detail::digit_mask)
+<a name="l00346"></a>00346 { _set_signed(n); }
+<a name="l00347"></a>00347
+<a name="l00348"></a><a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#a3ad49f5095f367b7e19aa3becb3464b3">00348</a> <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#af6e682f145aaa5ceea6f8d81bf533442">fixed_integer_any</a>(<span class="keyword">const</span> T& n,
+<a name="l00349"></a>00349 <span class="keyword">typename</span> boost::enable_if<boost::is_integral<T> >::type* = 0,
+<a name="l00350"></a>00350 <span class="keyword">typename</span> boost::enable_if<boost::is_unsigned<T> >::type* = 0):
+<a name="l00351"></a>00351 base_integer(detail::digits_in_uintmax, detail::digit_mask)
+<a name="l00352"></a>00352 { _set_unsigned(n); }
+<a name="l00353"></a>00353
+<a name="l00354"></a>00354 <span class="keyword">protected</span>:
+<a name="l00355"></a><a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#aa1c3b00ad3be70fb2d42dd86fcfe3a00">00355</a> <a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#af6e682f145aaa5ceea6f8d81bf533442">fixed_integer_any</a>(<span class="keywordtype">size_t</span> count, detail::digit_t mask):
+<a name="l00356"></a>00356 base_integer(count, mask) { }
+<a name="l00357"></a><a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#a9f0620259b6e2cdf3ea6e2bad2a21d22">00357</a> <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#af6e682f145aaa5ceea6f8d81bf533442">fixed_integer_any</a>(detail::data_t *adopt, <span class="keywordtype">bool</span> neg=<span class="keyword">false</span>):
+<a name="l00358"></a>00358 base_integer(adopt, neg) { }
+<a name="l00359"></a><a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#abdd088ce22d3afd4a8c3dcc402401ace">00359</a> <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html#af6e682f145aaa5ceea6f8d81bf533442">fixed_integer_any</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html" title="The base class for all fixed_integer types.">fixed_integer_any</a>& c):
+<a name="l00360"></a>00360 base_integer(c, true) { }
+<a name="l00361"></a>00361 };
+<a name="l00362"></a>00362
+<a name="l00365"></a>00365 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a0492c49fda91b5f498074d3f812906dd" title="Tells whether the library was compiled with Secure Mode enabled.">opt_secure_mode</a>();
+<a name="l00366"></a>00366 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac80750e62d5ffa2484332aae4b23d379" title="Tells whether the library was compiled with the Thread Safe Operation option enabled...">opt_thread_safe</a>();
+<a name="l00368"></a>00368
+<a name="l00375"></a>00375 <span class="keyword">template</span> <<span class="keyword">class</span> T>
+<a name="l00376"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html">00376</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a> {
+<a name="l00377"></a>00377 <span class="keyword">public</span>:
+<a name="l00378"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">00378</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">base_divide_t</a>() { }
+<a name="l00379"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">00379</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">base_divide_t</a>(<span class="keyword">const</span> T& q, <span class="keyword">const</span> T& r): <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>(q), <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>(r) { }
+<a name="l00380"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa9f43e464f328b0cc618f67e6e4d1d6f">00380</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">base_divide_t</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t<T></a>& copy):
+<a name="l00381"></a>00381 <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>(copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>), <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>(copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>) { }
+<a name="l00382"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aaa2df86aa70e8ac849cd6289a1f459b1">00382</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aaa2df86aa70e8ac849cd6289a1f459b1">base_divide_t</a>(<a class="code" href="internals_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>) move) {
+<a name="l00383"></a>00383 <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>._swap(move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>); <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>._swap(move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>); }
+<a name="l00384"></a>00384
+<a name="l00385"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">00385</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>& <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">operator=</a>(<a class="code" href="internals_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">BOOST_XINT_COPY_ASSIGN_REF</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>) copy)
+<a name="l00386"></a>00386 { <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a> = copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>; <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a> = copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>; <span class="keywordflow">return</span>
+<a name="l00387"></a>00387 *<span class="keyword">this</span>; }
+<a name="l00388"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">00388</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>& <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">operator=</a>(<a class="code" href="internals_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>) move) {
+<a name="l00389"></a>00389 <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>._swap(move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>); <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>._swap(move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>); <span class="keywordflow">return</span>
+<a name="l00390"></a>00390 *<span class="keyword">this</span>; }
+<a name="l00391"></a>00391
+<a name="l00392"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">00392</a> T <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>, <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>;
+<a name="l00393"></a>00393
+<a name="l00394"></a>00394 <span class="keyword">private</span>:
+<a name="l00395"></a>00395 <a class="code" href="internals_8hpp.html#a5f5634ec80010f0f87b93320fa3419f9">BOOST_XINT_COPYABLE_AND_MOVABLE</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>)
+<a name="l00396"></a>00396 };
+<a name="l00397"></a>00397
+<a name="l00398"></a>00398 } <span class="comment">// namespace xint</span>
+<a name="l00399"></a>00399 } <span class="comment">// namespace boost</span>
+<a name="l00400"></a>00400
+<a name="l00402"></a>00402 <span class="comment">// Template functions</span>
+<a name="l00403"></a>00403
+<a name="l00404"></a>00404 <span class="preprocessor">#include "<a class="code" href="exceptions_8hpp.html" title="The exception namespace.">exceptions.hpp</a>"</span>
+<a name="l00405"></a>00405
+<a name="l00406"></a>00406 <span class="keyword">namespace </span>boost {
+<a name="l00407"></a>00407 <span class="keyword">namespace </span>xint {
+<a name="l00408"></a>00408
+<a name="l00410"></a>00410 <span class="keyword">namespace </span>detail {
+<a name="l00411"></a>00411
+<a name="l00412"></a>00412 <span class="keyword">template</span> <<span class="keyword">typename</span> T>
+<a name="l00413"></a>00413 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd" title="Get the log2 value of an integer.">log2</a>(<span class="keyword">const</span> T& n,
+<a name="l00414"></a>00414 <span class="keyword">typename</span> boost::enable_if<boost::is_integral<T> >::type* = 0,
+<a name="l00415"></a>00415 <span class="keyword">typename</span> boost::enable_if<boost::is_unsigned<T> >::type* = 0)
+<a name="l00416"></a>00416 {
+<a name="l00417"></a>00417 <span class="keywordtype">size_t</span> lo=0, hi=std::numeric_limits<T>::digits;
+<a name="l00418"></a>00418 <span class="keywordflow">while</span> (lo < hi) {
+<a name="l00419"></a>00419 <span class="keywordtype">size_t</span> s = lo + ((hi - lo) >> 1);
+<a name="l00420"></a>00420 <span class="keywordflow">if</span> (n >= (T(1) << s)) lo = s + 1;
+<a name="l00421"></a>00421 <span class="keywordflow">else</span> hi = s;
+<a name="l00422"></a>00422 }
+<a name="l00423"></a>00423 <span class="keywordflow">return</span> lo;
+<a name="l00424"></a>00424 }
+<a name="l00425"></a>00425
+<a name="l00426"></a>00426 <span class="keyword">template</span> <<span class="keyword">typename</span> T>
+<a name="l00427"></a>00427 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd" title="Get the log2 value of an integer.">log2</a>(<span class="keyword">const</span> T& nn,
+<a name="l00428"></a>00428 <span class="keyword">typename</span> boost::enable_if<boost::is_integral<T> >::type* = 0,
+<a name="l00429"></a>00429 <span class="keyword">typename</span> boost::enable_if<boost::is_signed<T> >::type* = 0)
+<a name="l00430"></a>00430 {
+<a name="l00431"></a>00431 <span class="keyword">typedef</span> <span class="keyword">typename</span> boost::make_unsigned<T>::type uT;
+<a name="l00432"></a>00432 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd" title="Get the log2 value of an integer.">log2</a>(static_cast<uT>(nn < 0 ? -nn : nn));
+<a name="l00433"></a>00433 }
+<a name="l00434"></a>00434
+<a name="l00435"></a>00435 <span class="keyword">template</span> <<span class="keyword">typename</span> T>
+<a name="l00436"></a>00436 T <a class="code" href="namespaceboost_1_1xint.html#a2078ed71644ee71a1ce2e616d28e5baa">to</a>(<span class="keyword">const</span> base_integer& n) {
+<a name="l00437"></a>00437 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">compare</a>(n, fixed_integer_any((std::numeric_limits<T>::min)())) < 0
+<a name="l00438"></a>00438 || <a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">compare</a>(n, fixed_integer_any((std::numeric_limits<T>::max)())) > 0)
+<a name="l00439"></a>00439 <span class="keywordflow">throw</span> exceptions::too_big(<span class="stringliteral">"value out of range for requested "</span>
+<a name="l00440"></a>00440 <span class="stringliteral">"conversion"</span>);
+<a name="l00441"></a>00441
+<a name="l00442"></a>00442 T rval = 0;
+<a name="l00443"></a>00443 <span class="keywordtype">size_t</span> len=n._get_length();
+<a name="l00444"></a>00444 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> x=0; x<len; ++x) {
+<a name="l00445"></a>00445 <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(T) > <span class="keyword">sizeof</span>(detail::digit_t)) rval <<= detail::bits_per_digit;
+<a name="l00446"></a>00446 rval += <span class="keyword">static_cast<</span>T<span class="keyword">></span>(n._get_digit(len - x - 1));
+<a name="l00447"></a>00447 }
+<a name="l00448"></a>00448 <span class="keywordflow">if</span> (n._get_negative()) rval = -rval; <span class="comment">// Bogus MSVC warning C4146</span>
+<a name="l00449"></a>00449 <span class="keywordflow">return</span> rval;
+<a name="l00450"></a>00450 }
+<a name="l00451"></a>00451
+<a name="l00452"></a>00452 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits>
+<a name="l00453"></a>00453 <span class="keyword">inline</span> std::basic_ostream<charT,traits>& <a class="code" href="namespaceboost_1_1xint.html#a7188dd65026fde2ae4a690d55ef7b648">operator<<</a>(std::basic_ostream<charT,
+<a name="l00454"></a>00454 traits>& out, <span class="keyword">const</span> base_integer& n)
+<a name="l00455"></a>00455 {
+<a name="l00456"></a>00456 <span class="keywordtype">int</span> base=((out.flags() & std::ios::hex) ? 16
+<a name="l00457"></a>00457 : (out.flags() & std::ios::oct) ? 8
+<a name="l00458"></a>00458 : 10);
+<a name="l00459"></a>00459 <span class="keywordtype">bool</span> upperCase=(out.flags() & std::ios::uppercase ? <span class="keyword">true</span> : <span class="keyword">false</span>);
+<a name="l00460"></a>00460
+<a name="l00461"></a>00461 <span class="keywordtype">int</span> nsign = (n._is_zero() ? 0 : n._get_negative() ? -1 : 1);
+<a name="l00462"></a>00462 <span class="keywordflow">if</span> ((out.flags() & std::ios::showpos) && nsign >= 0) out << <span class="stringliteral">"+"</span>;
+<a name="l00463"></a>00463
+<a name="l00464"></a>00464 <span class="keywordflow">if</span> (out.flags() & std::ios::showbase) {
+<a name="l00465"></a>00465 <span class="keywordflow">if</span> (nsign < 0) out << <span class="stringliteral">"-"</span>;
+<a name="l00466"></a>00466
+<a name="l00467"></a>00467 <span class="keywordflow">if</span> (base==16 && upperCase) out << <span class="stringliteral">"0X"</span>;
+<a name="l00468"></a>00468 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base==16) out << <span class="stringliteral">"0x"</span>;
+<a name="l00469"></a>00469 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base==8) out << <span class="stringliteral">"0"</span>;
+<a name="l00470"></a>00470
+<a name="l00471"></a>00471 <span class="keywordflow">if</span> (n._get_negative()) {
+<a name="l00472"></a>00472 out << <a class="code" href="namespaceboost_1_1xint.html#ac0454fdc47e70a493c7bf5d92dda33d4" title="Creates a string representation of the specified integer.">to_string</a>(neg_t(n), base, upperCase);
+<a name="l00473"></a>00473 } <span class="keywordflow">else</span> {
+<a name="l00474"></a>00474 out << <a class="code" href="namespaceboost_1_1xint.html#ac0454fdc47e70a493c7bf5d92dda33d4" title="Creates a string representation of the specified integer.">to_string</a>(n, base, upperCase);
+<a name="l00475"></a>00475 }
+<a name="l00476"></a>00476 } <span class="keywordflow">else</span> {
+<a name="l00477"></a>00477 out << <a class="code" href="namespaceboost_1_1xint.html#ac0454fdc47e70a493c7bf5d92dda33d4" title="Creates a string representation of the specified integer.">to_string</a>(n, base, upperCase);
+<a name="l00478"></a>00478 }
+<a name="l00479"></a>00479 <span class="keywordflow">return</span> out;
+<a name="l00480"></a>00480 }
+<a name="l00481"></a>00481
+<a name="l00482"></a>00482 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits>
+<a name="l00483"></a>00483 <span class="keyword">inline</span> std::basic_istream<charT,traits>& <a class="code" href="namespaceboost_1_1xint.html#ab027908e04b71c8be33172768c6a2f67">operator>></a>(std::basic_istream<charT,
+<a name="l00484"></a>00484 traits>& in, base_integer& n)
+<a name="l00485"></a>00485 {
+<a name="l00486"></a>00486 <span class="keywordtype">int</span> hex=(in.flags() & std::ios::hex) ? 1 : 0;
+<a name="l00487"></a>00487 <span class="keywordtype">int</span> dec=(in.flags() & std::ios::dec) ? 1 : 0;
+<a name="l00488"></a>00488 <span class="keywordtype">int</span> oct=(in.flags() & std::ios::oct) ? 1 : 0;
+<a name="l00489"></a>00489 <span class="keywordtype">int</span> count=hex+dec+oct;
+<a name="l00490"></a>00490
+<a name="l00491"></a>00491 <span class="keywordtype">size_t</span> base=<a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">autobase</a>;
+<a name="l00492"></a>00492 <span class="keywordflow">if</span> (count==1) {
+<a name="l00493"></a>00493 <span class="keywordflow">if</span> (hex) base=16;
+<a name="l00494"></a>00494 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (oct) base=8;
+<a name="l00495"></a>00495 <span class="keywordflow">else</span> base=10;
+<a name="l00496"></a>00496 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count>1) base=10;
+<a name="l00497"></a>00497 <span class="comment">// else auto-base</span>
+<a name="l00498"></a>00498
+<a name="l00499"></a>00499 std::string s;
+<a name="l00500"></a>00500 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'+'</span>) {
+<a name="l00501"></a>00501 in.ignore();
+<a name="l00502"></a>00502 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'-'</span>) {
+<a name="l00503"></a>00503 in.ignore();
+<a name="l00504"></a>00504 s.push_back(<span class="charliteral">'-'</span>);
+<a name="l00505"></a>00505 }
+<a name="l00506"></a>00506
+<a name="l00507"></a>00507 <span class="keywordflow">if</span> (base==<a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">autobase</a>) {
+<a name="l00508"></a>00508 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'0'</span>) {
+<a name="l00509"></a>00509 in.ignore();
+<a name="l00510"></a>00510 <span class="keywordtype">int</span> c=in.peek();
+<a name="l00511"></a>00511 <span class="keywordflow">if</span> (c==<span class="charliteral">'x'</span> || c==<span class="charliteral">'X'</span>) {
+<a name="l00512"></a>00512 in.ignore();
+<a name="l00513"></a>00513 base=16;
+<a name="l00514"></a>00514 } <span class="keywordflow">else</span> base=8;
+<a name="l00515"></a>00515 } <span class="keywordflow">else</span> base=10;
+<a name="l00516"></a>00516 }
+<a name="l00517"></a>00517
+<a name="l00518"></a>00518 <span class="keywordflow">while</span> (in) {
+<a name="l00519"></a>00519 <span class="keywordtype">int</span> c=in.peek();
+<a name="l00520"></a>00520 <span class="keywordflow">if</span> ((base==8 && (c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'7'</span>)) ||
+<a name="l00521"></a>00521 (base==10 && (c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'9'</span>)) ||
+<a name="l00522"></a>00522 (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="l00523"></a>00523 (c>=<span class="charliteral">'A'</span> && c<=<span class="charliteral">'F'</span>))))
+<a name="l00524"></a>00524 {
+<a name="l00525"></a>00525 in.ignore();
+<a name="l00526"></a>00526 s.push_back(<span class="keywordtype">char</span>(c));
+<a name="l00527"></a>00527 } <span class="keywordflow">else</span> <span class="keywordflow">break</span>;
+<a name="l00528"></a>00528 }
+<a name="l00529"></a>00529
+<a name="l00530"></a>00530 <span class="keywordflow">try</span> {
+<a name="l00531"></a>00531 <a class="code" href="namespaceboost_1_1xint.html#af263105e57d48eff5fe14d4d03ca10e1" title="Converts a string to an integer.">detail::from_string</a>(n, s, base);
+<a name="l00532"></a>00532 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00533"></a>00533 <span class="comment">// Catch invalid strings</span>
+<a name="l00534"></a>00534 in.setstate(std::ios::failbit);
+<a name="l00535"></a>00535 }
+<a name="l00536"></a>00536
+<a name="l00537"></a>00537 <span class="keywordflow">return</span> in;
+<a name="l00538"></a>00538 }
+<a name="l00539"></a>00539
+<a name="l00540"></a>00540 } <span class="comment">// namespace detail</span>
+<a name="l00542"></a>00542 <span class="comment"></span>
+<a name="l00543"></a>00543 } <span class="comment">// namespace xint</span>
+<a name="l00544"></a>00544 } <span class="comment">// namespace boost</span>
+<a name="l00545"></a>00545
+<a name="l00546"></a>00546 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTERNALS_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/misc_8cpp.html
==============================================================================
--- sandbox/xint/doc/misc_8cpp.html (original)
+++ sandbox/xint/doc/misc_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -55,7 +55,7 @@
<p>Definition in file <a class="el" href="misc_8cpp_source.html">misc.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/misc_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/misc_8cpp_source.html (original)
+++ sandbox/xint/doc/misc_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -68,7 +68,7 @@
<a name="l00074"></a>00074 } <span class="comment">// namespace xint</span>
<a name="l00075"></a>00075 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/modular_8cpp.html
==============================================================================
--- sandbox/xint/doc/modular_8cpp.html (original)
+++ sandbox/xint/doc/modular_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -57,7 +57,7 @@
<p>Definition in file <a class="el" href="modular_8cpp_source.html">modular.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/modular_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/modular_8cpp_source.html (original)
+++ sandbox/xint/doc/modular_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -63,8 +63,8 @@
<a name="l00046"></a>00046 <span class="keywordflow">return</span>;
<a name="l00047"></a>00047 }
<a name="l00048"></a>00048
-<a name="l00049"></a>00049 integer n(_n._to_integer()), e(_e._to_integer()), m(_m._to_integer()),
-<a name="l00050"></a>00050 answer(<a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>());
+<a name="l00049"></a>00049 integer n(_n._to_integer(<span class="keyword">false</span>)), e(_e._to_integer(<span class="keyword">false</span>)),
+<a name="l00050"></a>00050 m(_m._to_integer(<span class="keyword">false</span>)), answer(<a class="code" href="classboost_1_1xint_1_1integer.html#aa332681715634b73118ffe76090a75d3">integer::one</a>());
<a name="l00051"></a>00051 <span class="keywordtype">bool</span> neg=(n.sign() < 0 && e.odd());
<a name="l00052"></a>00052
<a name="l00053"></a>00053 <span class="comment">// Montgomery's method is often noticeably faster, but only works if the</span>
@@ -92,7 +92,7 @@
<a name="l00075"></a>00075 }
<a name="l00076"></a>00076
<a name="l00077"></a>00077 answer._set_negative(neg);
-<a name="l00078"></a>00078 target._attach(answer);
+<a name="l00078"></a>00078 target._attach(answer, <span class="keyword">true</span>);
<a name="l00079"></a>00079 }
<a name="l00080"></a>00080
<a name="l00081"></a>00081 } <span class="comment">// namespace detail</span>
@@ -122,7 +122,7 @@
<a name="l00166"></a>00166 } <span class="comment">// namespace xint</span>
<a name="l00167"></a>00167 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/monty_8cpp.html
==============================================================================
--- sandbox/xint/doc/monty_8cpp.html (original)
+++ sandbox/xint/doc/monty_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -45,7 +45,7 @@
<p>Definition in file <a class="el" href="monty_8cpp_source.html">monty.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/monty_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/monty_8cpp_source.html (original)
+++ sandbox/xint/doc/monty_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -285,7 +285,7 @@
<a name="l00281"></a>00281 } <span class="comment">// namespace xint</span>
<a name="l00282"></a>00282 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/monty_8hpp.html
==============================================================================
--- sandbox/xint/doc/monty_8hpp.html (original)
+++ sandbox/xint/doc/monty_8hpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="monty_8hpp_source.html">monty.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/monty_8hpp_source.html
==============================================================================
--- sandbox/xint/doc/monty_8hpp_source.html (original)
+++ sandbox/xint/doc/monty_8hpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -57,7 +57,7 @@
<a name="l00044"></a>00044 <span class="comment"></span>
<a name="l00045"></a>00045 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MONTY_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/namespaceboost.html
==============================================================================
--- sandbox/xint/doc/namespaceboost.html (original)
+++ sandbox/xint/doc/namespaceboost.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -34,7 +34,7 @@
</p>
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/namespaceboost_1_1xint.html
==============================================================================
--- sandbox/xint/doc/namespaceboost_1_1xint.html (original)
+++ sandbox/xint/doc/namespaceboost_1_1xint.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -5243,7 +5243,7 @@
<dl class="user"><dt><b></b></dt><dd>See the <a class="el" href="random.html">Random Number Functions page</a> for details on how to get cryptographically-secure random numbers.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="primes.html">Generating Prime Numbers</a> </dd></dl>
-<p>Definition at line <a class="el" href="random_8hpp_source.html#l00159">159</a> of file <a class="el" href="random_8hpp_source.html">random.hpp</a>.</p>
+<p>Definition at line <a class="el" href="random_8hpp_source.html#l00160">160</a> of file <a class="el" href="random_8hpp_source.html">random.hpp</a>.</p>
</div>
</div>
@@ -6785,7 +6785,7 @@
</div>
</div>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/namespaceboost_1_1xint_1_1detail.html
==============================================================================
--- sandbox/xint/doc/namespaceboost_1_1xint_1_1detail.html (original)
+++ sandbox/xint/doc/namespaceboost_1_1xint_1_1detail.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -35,7 +35,7 @@
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>The items within this namespace are meant for internal use only. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/namespaceboost_1_1xint_1_1exceptions.html
==============================================================================
--- sandbox/xint/doc/namespaceboost_1_1xint_1_1exceptions.html (original)
+++ sandbox/xint/doc/namespaceboost_1_1xint_1_1exceptions.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -46,7 +46,7 @@
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Every exception the library throws is from this namespace. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/namespacemembers.html
==============================================================================
--- sandbox/xint/doc/namespacemembers.html (original)
+++ sandbox/xint/doc/namespacemembers.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -343,7 +343,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/namespacemembers_func.html
==============================================================================
--- sandbox/xint/doc/namespacemembers_func.html (original)
+++ sandbox/xint/doc/namespacemembers_func.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -331,7 +331,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/namespacemembers_type.html
==============================================================================
--- sandbox/xint/doc/namespacemembers_type.html (original)
+++ sandbox/xint/doc/namespacemembers_type.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -42,7 +42,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/namespacemembers_vars.html
==============================================================================
--- sandbox/xint/doc/namespacemembers_vars.html (original)
+++ sandbox/xint/doc/namespacemembers_vars.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -42,7 +42,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/namespaces.html
==============================================================================
--- sandbox/xint/doc/namespaces.html (original)
+++ sandbox/xint/doc/namespaces.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -33,7 +33,7 @@
<tr><td class="indexkey"><a class="el" href="namespacestd.html">std</a></td><td class="indexvalue"></td></tr>
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/namespacestd.html
==============================================================================
--- sandbox/xint/doc/namespacestd.html (original)
+++ sandbox/xint/doc/namespacestd.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -32,7 +32,7 @@
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4.html">numeric_limits< boost::xint::nothrow_integer ></a></td></tr>
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:22 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:17 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nan.html
==============================================================================
--- sandbox/xint/doc/nan.html (original)
+++ sandbox/xint/doc/nan.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -37,7 +37,7 @@
</ul>
<p>If you attempt to do anything else with it, you will get a special value indicating failure (which will be another Not-a-Number, if the function you're calling returns a <code>nothrow_integer</code>). </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nan_8dox.html
==============================================================================
--- sandbox/xint/doc/nan_8dox.html (original)
+++ sandbox/xint/doc/nan_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/nan.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__bit__manipulations_8cpp.html
==============================================================================
--- sandbox/xint/doc/nothrow__bit__manipulations_8cpp.html (original)
+++ sandbox/xint/doc/nothrow__bit__manipulations_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -59,7 +59,7 @@
<p>Definition in file <a class="el" href="nothrow__bit__manipulations_8cpp_source.html">nothrow_bit_manipulations.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__bit__manipulations_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/nothrow__bit__manipulations_8cpp_source.html (original)
+++ sandbox/xint/doc/nothrow__bit__manipulations_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -139,7 +139,7 @@
<a name="l00139"></a>00139 } <span class="comment">// namespace xint</span>
<a name="l00140"></a>00140 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__compare_8cpp.html
==============================================================================
--- sandbox/xint/doc/nothrow__compare_8cpp.html (original)
+++ sandbox/xint/doc/nothrow__compare_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -58,7 +58,7 @@
<p>Definition in file <a class="el" href="nothrow__compare_8cpp_source.html">nothrow_compare.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__compare_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/nothrow__compare_8cpp_source.html (original)
+++ sandbox/xint/doc/nothrow__compare_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -70,7 +70,7 @@
<a name="l00056"></a>00056 } <span class="comment">// namespace xint</span>
<a name="l00057"></a>00057 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__convert_8cpp.html
==============================================================================
--- sandbox/xint/doc/nothrow__convert_8cpp.html (original)
+++ sandbox/xint/doc/nothrow__convert_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -53,7 +53,7 @@
<p>Definition in file <a class="el" href="nothrow__convert_8cpp_source.html">nothrow_convert.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__convert_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/nothrow__convert_8cpp_source.html (original)
+++ sandbox/xint/doc/nothrow__convert_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -84,7 +84,7 @@
<a name="l00082"></a>00082 } <span class="comment">// namespace xint</span>
<a name="l00083"></a>00083 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__gcd_8cpp.html
==============================================================================
--- sandbox/xint/doc/nothrow__gcd_8cpp.html (original)
+++ sandbox/xint/doc/nothrow__gcd_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -50,7 +50,7 @@
<p>Definition in file <a class="el" href="nothrow__gcd_8cpp_source.html">nothrow_gcd.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__gcd_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/nothrow__gcd_8cpp_source.html (original)
+++ sandbox/xint/doc/nothrow__gcd_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -64,7 +64,7 @@
<a name="l00046"></a>00046 } <span class="comment">// namespace xint</span>
<a name="l00047"></a>00047 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__integer_8cpp.html
==============================================================================
--- sandbox/xint/doc/nothrow__integer_8cpp.html (original)
+++ sandbox/xint/doc/nothrow__integer_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -44,7 +44,7 @@
<p>Definition in file <a class="el" href="nothrow__integer_8cpp_source.html">nothrow_integer.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__integer_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/nothrow__integer_8cpp_source.html (original)
+++ sandbox/xint/doc/nothrow__integer_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -55,7 +55,7 @@
<a name="l00038"></a>00038
<a name="l00050"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a9c9e622a764a004d256c18b7929081">00050</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#add8423c7b0d729fe93a8aabf49d333ae">nothrow_integer::nothrow_integer</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>& b) {
<a name="l00051"></a>00051 <span class="keywordflow">try</span> {
-<a name="l00052"></a>00052 <span class="keywordflow">if</span> (!b.<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a1dd4d6157a77e2e1e13d2915661dce7d" title="Tests *this for Not-a-Number.">is_nan</a>()) _attach(b);
+<a name="l00052"></a>00052 <span class="keywordflow">if</span> (!b.<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a1dd4d6157a77e2e1e13d2915661dce7d" title="Tests *this for Not-a-Number.">is_nan</a>()) _attach(b, <span class="keyword">false</span>);
<a name="l00053"></a>00053 } <span class="keywordflow">catch</span> (std::exception&) {
<a name="l00054"></a>00054 <span class="comment">// Do nothing, automatically sets to Not-a-Number</span>
<a name="l00055"></a>00055 }
@@ -63,7 +63,7 @@
<a name="l00057"></a>00057
<a name="l00068"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a195e4062a0f980e1bc9df47f8645854a">00068</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#add8423c7b0d729fe93a8aabf49d333ae">nothrow_integer::nothrow_integer</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a>& b) {
<a name="l00069"></a>00069 <span class="keywordflow">try</span> {
-<a name="l00070"></a>00070 _attach(b);
+<a name="l00070"></a>00070 _attach(b, <span class="keyword">false</span>);
<a name="l00071"></a>00071 } <span class="keywordflow">catch</span> (std::exception&) {
<a name="l00072"></a>00072 <span class="comment">// Do nothing, automatically sets to Not-a-Number</span>
<a name="l00073"></a>00073 }
@@ -71,7 +71,7 @@
<a name="l00075"></a>00075
<a name="l00082"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#aa6314aa9f8ff03ce52152febc6444a58">00082</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#add8423c7b0d729fe93a8aabf49d333ae">nothrow_integer::nothrow_integer</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1fixed__integer__any.html" title="The base class for all fixed_integer types.">fixed_integer_any</a>& b) {
<a name="l00083"></a>00083 <span class="keywordflow">try</span> {
-<a name="l00084"></a>00084 _attach(b);
+<a name="l00084"></a>00084 _attach(b, <span class="keyword">false</span>);
<a name="l00085"></a>00085 } <span class="keywordflow">catch</span> (std::exception&) {
<a name="l00086"></a>00086 <span class="comment">// Do nothing, automatically sets to Not-a-Number</span>
<a name="l00087"></a>00087 }
@@ -79,7 +79,7 @@
<a name="l00089"></a>00089
<a name="l00091"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a70c7b596f17102c6e292b8994dda76cc">00091</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#add8423c7b0d729fe93a8aabf49d333ae">nothrow_integer::nothrow_integer</a>(<span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> base) {
<a name="l00092"></a>00092 <span class="keywordflow">try</span> {
-<a name="l00093"></a>00093 _attach(<a class="code" href="namespaceboost_1_1xint.html#af263105e57d48eff5fe14d4d03ca10e1" title="Converts a string to an integer.">from_string</a>(str, base));
+<a name="l00093"></a>00093 _attach(<a class="code" href="namespaceboost_1_1xint.html#af263105e57d48eff5fe14d4d03ca10e1" title="Converts a string to an integer.">from_string</a>(str, base), <span class="keyword">true</span>);
<a name="l00094"></a>00094 } <span class="keywordflow">catch</span> (std::exception&) {
<a name="l00095"></a>00095 <span class="comment">// Do nothing, automatically sets to Not-a-Number</span>
<a name="l00096"></a>00096 }
@@ -136,7 +136,7 @@
<a name="l00169"></a>00169 <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>) c)
<a name="l00170"></a>00170 {
<a name="l00171"></a>00171 <span class="keywordflow">try</span> {
-<a name="l00172"></a>00172 _attach(c);
+<a name="l00172"></a>00172 _attach(c, <span class="keyword">false</span>);
<a name="l00173"></a>00173 } <span class="keywordflow">catch</span> (std::exception&) {
<a name="l00174"></a>00174 _base_attach(0);
<a name="l00175"></a>00175 }
@@ -214,7 +214,7 @@
<a name="l00247"></a>00247 } <span class="comment">// namespace xint</span>
<a name="l00248"></a>00248 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__integer_8hpp.html
==============================================================================
--- sandbox/xint/doc/nothrow__integer_8hpp.html (original)
+++ sandbox/xint/doc/nothrow__integer_8hpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -144,7 +144,7 @@
<p>Definition in file <a class="el" href="nothrow__integer_8hpp_source.html">nothrow_integer.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__integer_8hpp_source.html
==============================================================================
--- sandbox/xint/doc/nothrow__integer_8hpp_source.html (original)
+++ sandbox/xint/doc/nothrow__integer_8hpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -352,7 +352,7 @@
<a name="l00438"></a>00438
<a name="l00439"></a>00439 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_NOTHROW_INTEGER_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__misc_8cpp.html
==============================================================================
--- sandbox/xint/doc/nothrow__misc_8cpp.html (original)
+++ sandbox/xint/doc/nothrow__misc_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -49,7 +49,7 @@
<p>Definition in file <a class="el" href="nothrow__misc_8cpp_source.html">nothrow_misc.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__misc_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/nothrow__misc_8cpp_source.html (original)
+++ sandbox/xint/doc/nothrow__misc_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -52,7 +52,7 @@
<a name="l00036"></a>00036 } <span class="comment">// namespace xint</span>
<a name="l00037"></a>00037 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__modular_8cpp.html
==============================================================================
--- sandbox/xint/doc/nothrow__modular_8cpp.html (original)
+++ sandbox/xint/doc/nothrow__modular_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -53,7 +53,7 @@
<p>Definition in file <a class="el" href="nothrow__modular_8cpp_source.html">nothrow_modular.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__modular_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/nothrow__modular_8cpp_source.html (original)
+++ sandbox/xint/doc/nothrow__modular_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -92,7 +92,7 @@
<a name="l00080"></a>00080 } <span class="comment">// namespace xint</span>
<a name="l00081"></a>00081 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__operators_8cpp.html
==============================================================================
--- sandbox/xint/doc/nothrow__operators_8cpp.html (original)
+++ sandbox/xint/doc/nothrow__operators_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -56,7 +56,7 @@
<p>Definition in file <a class="el" href="nothrow__operators_8cpp_source.html">nothrow_operators.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__operators_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/nothrow__operators_8cpp_source.html (original)
+++ sandbox/xint/doc/nothrow__operators_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -53,7 +53,7 @@
<a name="l00033"></a>00033 } <span class="comment">// namespace xint</span>
<a name="l00034"></a>00034 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__powers_8cpp.html
==============================================================================
--- sandbox/xint/doc/nothrow__powers_8cpp.html (original)
+++ sandbox/xint/doc/nothrow__powers_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -52,7 +52,7 @@
<p>Definition in file <a class="el" href="nothrow__powers_8cpp_source.html">nothrow_powers.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__powers_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/nothrow__powers_8cpp_source.html (original)
+++ sandbox/xint/doc/nothrow__powers_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -80,7 +80,7 @@
<a name="l00064"></a>00064 } <span class="comment">// namespace xint</span>
<a name="l00065"></a>00065 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__primes_8cpp.html
==============================================================================
--- sandbox/xint/doc/nothrow__primes_8cpp.html (original)
+++ sandbox/xint/doc/nothrow__primes_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -49,7 +49,7 @@
<p>Definition in file <a class="el" href="nothrow__primes_8cpp_source.html">nothrow_primes.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__primes_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/nothrow__primes_8cpp_source.html (original)
+++ sandbox/xint/doc/nothrow__primes_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -52,7 +52,7 @@
<a name="l00036"></a>00036 } <span class="comment">// namespace xint</span>
<a name="l00037"></a>00037 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__primitives_8cpp.html
==============================================================================
--- sandbox/xint/doc/nothrow__primitives_8cpp.html (original)
+++ sandbox/xint/doc/nothrow__primitives_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -55,7 +55,7 @@
<p>Definition in file <a class="el" href="nothrow__primitives_8cpp_source.html">nothrow_primitives.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__primitives_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/nothrow__primitives_8cpp_source.html (original)
+++ sandbox/xint/doc/nothrow__primitives_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -120,7 +120,7 @@
<a name="l00110"></a>00110 } <span class="comment">// namespace xint</span>
<a name="l00111"></a>00111 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__roots_8cpp.html
==============================================================================
--- sandbox/xint/doc/nothrow__roots_8cpp.html (original)
+++ sandbox/xint/doc/nothrow__roots_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -49,7 +49,7 @@
<p>Definition in file <a class="el" href="nothrow__roots_8cpp_source.html">nothrow_roots.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/nothrow__roots_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/nothrow__roots_8cpp_source.html (original)
+++ sandbox/xint/doc/nothrow__roots_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -54,7 +54,7 @@
<a name="l00035"></a>00035 } <span class="comment">// namespace xint</span>
<a name="l00036"></a>00036 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/operators_8cpp.html
==============================================================================
--- sandbox/xint/doc/operators_8cpp.html (original)
+++ sandbox/xint/doc/operators_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -57,7 +57,7 @@
<p>Definition in file <a class="el" href="operators_8cpp_source.html">operators.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/operators_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/operators_8cpp_source.html (original)
+++ sandbox/xint/doc/operators_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -52,7 +52,7 @@
<a name="l00031"></a>00031 } <span class="comment">// namespace xint</span>
<a name="l00032"></a>00032 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/powers_8cpp.html
==============================================================================
--- sandbox/xint/doc/powers_8cpp.html (original)
+++ sandbox/xint/doc/powers_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -56,7 +56,7 @@
<p>Definition in file <a class="el" href="powers_8cpp_source.html">powers.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/powers_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/powers_8cpp_source.html (original)
+++ sandbox/xint/doc/powers_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -97,7 +97,7 @@
<a name="l00077"></a>00077 *rp += <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(c);
<a name="l00078"></a>00078
<a name="l00079"></a>00079 r._cleanup();
-<a name="l00080"></a>00080 target._attach(r);
+<a name="l00080"></a>00080 target._attach(r, <span class="keyword">true</span>);
<a name="l00081"></a>00081 }
<a name="l00082"></a>00082
<a name="l00083"></a>00083 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a7f73207284ff1f32b20fb8a6a7a82649">pow</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keyword">const</span> base_integer& e) {
@@ -137,7 +137,7 @@
<a name="l00117"></a>00117 }
<a name="l00118"></a>00118
<a name="l00119"></a>00119 answer._set_negative(neg);
-<a name="l00120"></a>00120 target._attach(answer);
+<a name="l00120"></a>00120 target._attach(answer, <span class="keyword">true</span>);
<a name="l00121"></a>00121 }
<a name="l00122"></a>00122
<a name="l00123"></a>00123 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a942e346f6e6d069dc19c28e7e56634ab" title="Calculate the value of n! ">factorial</a>(base_integer& target, <span class="keywordtype">size_t</span> n) {
@@ -152,7 +152,7 @@
<a name="l00132"></a>00132 nn._decrement();
<a name="l00133"></a>00133 }
<a name="l00134"></a>00134
-<a name="l00135"></a>00135 target._attach(answer);
+<a name="l00135"></a>00135 target._attach(answer, <span class="keyword">true</span>);
<a name="l00136"></a>00136 }
<a name="l00137"></a>00137
<a name="l00138"></a>00138 } <span class="comment">// namespace detail</span>
@@ -184,7 +184,7 @@
<a name="l00207"></a>00207 } <span class="comment">// namespace xint</span>
<a name="l00208"></a>00208 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/primes.html
==============================================================================
--- sandbox/xint/doc/primes.html (original)
+++ sandbox/xint/doc/primes.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -65,7 +65,7 @@
}
</pre></div><p>(You can find it in the <code>examples</code> directory, by the name <code>genprime.cpp</code>.) </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/primes_8cpp.html
==============================================================================
--- sandbox/xint/doc/primes_8cpp.html (original)
+++ sandbox/xint/doc/primes_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -51,7 +51,7 @@
<p>Definition in file <a class="el" href="primes_8cpp_source.html">primes.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/primes_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/primes_8cpp_source.html (original)
+++ sandbox/xint/doc/primes_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -154,7 +154,7 @@
<a name="l00158"></a>00158 } <span class="comment">// namespace xint</span>
<a name="l00159"></a>00159 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/primes_8dox.html
==============================================================================
--- sandbox/xint/doc/primes_8dox.html (original)
+++ sandbox/xint/doc/primes_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/primes.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/primitives_8cpp.html
==============================================================================
--- sandbox/xint/doc/primitives_8cpp.html (original)
+++ sandbox/xint/doc/primitives_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -62,7 +62,7 @@
<p>Definition in file <a class="el" href="primitives_8cpp_source.html">primitives.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/primitives_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/primitives_8cpp_source.html (original)
+++ sandbox/xint/doc/primitives_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -85,7 +85,7 @@
<a name="l00065"></a>00065
<a name="l00066"></a>00066 <span class="keywordflow">if</span> (n1._get_negative()) a._set_negative(<span class="keyword">true</span>);
<a name="l00067"></a>00067 a._cleanup();
-<a name="l00068"></a>00068 target._attach(a);
+<a name="l00068"></a>00068 target._attach(a, <span class="keyword">true</span>);
<a name="l00069"></a>00069 }
<a name="l00070"></a>00070
<a name="l00071"></a>00071 <span class="keywordtype">void</span> sub_subtract(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span>
@@ -129,306 +129,303 @@
<a name="l00109"></a>00109 <span class="keywordflow">if</span> (neg1) a._set_negative(<span class="keyword">true</span>);
<a name="l00110"></a>00110 a._cleanup();
<a name="l00111"></a>00111
-<a name="l00112"></a>00112 <span class="keywordflow">if</span> (swap) {
-<a name="l00113"></a>00113 target._attach(neg_t(a));
-<a name="l00114"></a>00114 } <span class="keywordflow">else</span> {
-<a name="l00115"></a>00115 target._attach(a);
-<a name="l00116"></a>00116 }
-<a name="l00117"></a>00117 }
-<a name="l00118"></a>00118
-<a name="l00119"></a>00119 <span class="keywordtype">void</span> divide_by_single_digit(base_integer& qtarget, base_integer& rtarget, <span class="keyword">const</span>
-<a name="l00120"></a>00120 base_integer& d1, digit_t d2)
-<a name="l00121"></a>00121 {
-<a name="l00122"></a>00122 <span class="keywordtype">size_t</span> d1len=d1._get_length();
-<a name="l00123"></a>00123 <span class="keyword">const</span> digit_t *d1digits=d1._get_digits();
-<a name="l00124"></a>00124
-<a name="l00125"></a>00125 integer quotient, remainder;
-<a name="l00126"></a>00126 quotient._realloc(d1len);
-<a name="l00127"></a>00127 remainder._realloc(1);
-<a name="l00128"></a>00128
-<a name="l00129"></a>00129 doubledigit_t a=0;
-<a name="l00130"></a>00130 <span class="keyword">const</span> doubledigit_t lomask(digit_mask);
-<a name="l00131"></a>00131 <span class="keyword">const</span> doubledigit_t himask(doubledigit_t(digit_mask) << bits_per_digit);
-<a name="l00132"></a>00132
-<a name="l00133"></a>00133 <span class="keywordtype">int</span> m = int(d1len) - 1;
-<a name="l00134"></a>00134 <span class="keyword">const</span> digit_t *d1p=d1digits+m;
-<a name="l00135"></a>00135 digit_t *qp=quotient._get_writable_digits()+m;
-<a name="l00136"></a>00136 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = m; i >= 0; --i, --d1p, --qp) {
-<a name="l00137"></a>00137 a = (a & ~lomask) | *d1p;
-<a name="l00138"></a>00138 *qp = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(a / d2);
-<a name="l00139"></a>00139 a = (a & ~himask) | ((a % d2) << bits_per_digit);
-<a name="l00140"></a>00140 }
-<a name="l00141"></a>00141 remainder._get_writable_digits()[0] = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>((a & himask) >>
-<a name="l00142"></a>00142 bits_per_digit);
-<a name="l00143"></a>00143
-<a name="l00144"></a>00144 quotient._cleanup();
-<a name="l00145"></a>00145 remainder._cleanup();
-<a name="l00146"></a>00146 qtarget._attach(quotient);
-<a name="l00147"></a>00147 rtarget._attach(remainder);
-<a name="l00148"></a>00148 }
-<a name="l00149"></a>00149
-<a name="l00150"></a>00150 <span class="keywordtype">void</span> sub_divide2(base_integer& qtarget, base_integer& rtarget, <span class="keyword">const</span>
-<a name="l00151"></a>00151 base_integer& d1, <span class="keyword">const</span> base_integer& d2)
-<a name="l00152"></a>00152 {
-<a name="l00153"></a>00153 assert(d2._get_digit(d2._get_length()-1) >= digit_overflowbit / 2);
-<a name="l00154"></a>00154
-<a name="l00155"></a>00155 <span class="keyword">const</span> digit_t *byDigits = d2._get_digits();
-<a name="l00156"></a>00156
-<a name="l00157"></a>00157 integer quotient, r(d1._to_integer());
-<a name="l00158"></a>00158
-<a name="l00159"></a>00159 <span class="keywordtype">size_t</span> n=d2._get_length(), m=d1._get_length() - n;
-<a name="l00160"></a>00160 <span class="keywordtype">size_t</span> i=m+n, j=m;
-<a name="l00161"></a>00161 quotient._realloc(j+1);
-<a name="l00162"></a>00162 digit_t *qdigits=quotient._get_writable_digits();
-<a name="l00163"></a>00163
-<a name="l00164"></a>00164 r._make_unique();
-<a name="l00165"></a>00165 <span class="keywordflow">do</span> {
-<a name="l00166"></a>00166 doubledigit_t ri=(doubledigit_t(r._get_digit(i, <span class="keyword">true</span>))
-<a name="l00167"></a>00167 << bits_per_digit) + r._get_digit(i-1, <span class="keyword">true</span>);
-<a name="l00168"></a>00168 doubledigit_t q=(std::min<doubledigit_t>)(ri / byDigits[n-1],
-<a name="l00169"></a>00169 digit_mask);
-<a name="l00170"></a>00170
-<a name="l00171"></a>00171 <span class="keywordflow">while</span> (1) {
-<a name="l00172"></a>00172 <span class="comment">// We need three digits here, a doubledigit_t won't suffice.</span>
-<a name="l00173"></a>00173 doubledigit_t r2a=ri - (q * byDigits[n-1]);
-<a name="l00174"></a>00174 integer r2=(integer(r2a) << bits_per_digit) + r._get_digit(i-2);
-<a name="l00175"></a>00175 <span class="keywordflow">if</span> (byDigits[n-2] * q <= r2) <span class="keywordflow">break</span>;
-<a name="l00176"></a>00176 --q;
-<a name="l00177"></a>00177 }
-<a name="l00178"></a>00178
-<a name="l00179"></a>00179 integer bq;
-<a name="l00180"></a>00180 <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(bq, d2, fixed_integer_any(q));
-<a name="l00181"></a>00181 <span class="keywordflow">if</span> (r < bq) {
-<a name="l00182"></a>00182 --q;
-<a name="l00183"></a>00183 <a class="code" href="namespaceboost_1_1xint.html#a385b3869d8dcceab2ffb68ff33c95062">subtract</a>(bq, temp_t(bq), d2);
-<a name="l00184"></a>00184 }
-<a name="l00185"></a>00185
-<a name="l00186"></a>00186 integer rtemp((r >> (bits_per_digit * (i-n))) - bq);
-<a name="l00187"></a>00187
-<a name="l00188"></a>00188 digit_t *rdigits=r._get_writable_digits();
-<a name="l00189"></a>00189
-<a name="l00190"></a>00190 <span class="keywordtype">size_t</span> rlen=r._get_length();
-<a name="l00191"></a>00191 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> x=0; x<=n && i-n+x < rlen; ++x)
-<a name="l00192"></a>00192 rdigits[i-n+x]=rtemp._get_digit(x, <span class="keyword">true</span>);
-<a name="l00193"></a>00193 r._cleanup();
+<a name="l00112"></a>00112 <span class="keywordflow">if</span> (swap) a._toggle_negative();
+<a name="l00113"></a>00113 target._attach(a, <span class="keyword">true</span>);
+<a name="l00114"></a>00114 }
+<a name="l00115"></a>00115
+<a name="l00116"></a>00116 <span class="keywordtype">void</span> divide_by_single_digit(base_integer& qtarget, base_integer& rtarget, <span class="keyword">const</span>
+<a name="l00117"></a>00117 base_integer& d1, digit_t d2)
+<a name="l00118"></a>00118 {
+<a name="l00119"></a>00119 <span class="keywordtype">size_t</span> d1len=d1._get_length();
+<a name="l00120"></a>00120 <span class="keyword">const</span> digit_t *d1digits=d1._get_digits();
+<a name="l00121"></a>00121
+<a name="l00122"></a>00122 integer quotient, remainder;
+<a name="l00123"></a>00123 quotient._realloc(d1len);
+<a name="l00124"></a>00124 remainder._realloc(1);
+<a name="l00125"></a>00125
+<a name="l00126"></a>00126 doubledigit_t a=0;
+<a name="l00127"></a>00127 <span class="keyword">const</span> doubledigit_t lomask(digit_mask);
+<a name="l00128"></a>00128 <span class="keyword">const</span> doubledigit_t himask(doubledigit_t(digit_mask) << bits_per_digit);
+<a name="l00129"></a>00129
+<a name="l00130"></a>00130 <span class="keywordtype">int</span> m = int(d1len) - 1;
+<a name="l00131"></a>00131 <span class="keyword">const</span> digit_t *d1p=d1digits+m;
+<a name="l00132"></a>00132 digit_t *qp=quotient._get_writable_digits()+m;
+<a name="l00133"></a>00133 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = m; i >= 0; --i, --d1p, --qp) {
+<a name="l00134"></a>00134 a = (a & ~lomask) | *d1p;
+<a name="l00135"></a>00135 *qp = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(a / d2);
+<a name="l00136"></a>00136 a = (a & ~himask) | ((a % d2) << bits_per_digit);
+<a name="l00137"></a>00137 }
+<a name="l00138"></a>00138 remainder._get_writable_digits()[0] = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>((a & himask) >>
+<a name="l00139"></a>00139 bits_per_digit);
+<a name="l00140"></a>00140
+<a name="l00141"></a>00141 quotient._cleanup();
+<a name="l00142"></a>00142 remainder._cleanup();
+<a name="l00143"></a>00143 qtarget._attach(quotient, <span class="keyword">true</span>);
+<a name="l00144"></a>00144 rtarget._attach(remainder, <span class="keyword">true</span>);
+<a name="l00145"></a>00145 }
+<a name="l00146"></a>00146
+<a name="l00147"></a>00147 <span class="keywordtype">void</span> sub_divide2(base_integer& qtarget, base_integer& rtarget, <span class="keyword">const</span>
+<a name="l00148"></a>00148 base_integer& d1, <span class="keyword">const</span> base_integer& d2)
+<a name="l00149"></a>00149 {
+<a name="l00150"></a>00150 assert(d2._get_digit(d2._get_length()-1) >= digit_overflowbit / 2);
+<a name="l00151"></a>00151
+<a name="l00152"></a>00152 <span class="keyword">const</span> digit_t *byDigits = d2._get_digits();
+<a name="l00153"></a>00153
+<a name="l00154"></a>00154 integer quotient, r(d1._to_integer(<span class="keyword">false</span>));
+<a name="l00155"></a>00155
+<a name="l00156"></a>00156 <span class="keywordtype">size_t</span> n=d2._get_length(), m=d1._get_length() - n;
+<a name="l00157"></a>00157 <span class="keywordtype">size_t</span> i=m+n, j=m;
+<a name="l00158"></a>00158 quotient._realloc(j+1);
+<a name="l00159"></a>00159 digit_t *qdigits=quotient._get_writable_digits();
+<a name="l00160"></a>00160
+<a name="l00161"></a>00161 r._make_unique();
+<a name="l00162"></a>00162 <span class="keywordflow">do</span> {
+<a name="l00163"></a>00163 doubledigit_t ri=(doubledigit_t(r._get_digit(i, <span class="keyword">true</span>))
+<a name="l00164"></a>00164 << bits_per_digit) + r._get_digit(i-1, <span class="keyword">true</span>);
+<a name="l00165"></a>00165 doubledigit_t q=(std::min<doubledigit_t>)(ri / byDigits[n-1],
+<a name="l00166"></a>00166 digit_mask);
+<a name="l00167"></a>00167
+<a name="l00168"></a>00168 <span class="keywordflow">while</span> (1) {
+<a name="l00169"></a>00169 <span class="comment">// We need three digits here, a doubledigit_t won't suffice.</span>
+<a name="l00170"></a>00170 doubledigit_t r2a=ri - (q * byDigits[n-1]);
+<a name="l00171"></a>00171 integer r2=(integer(r2a) << bits_per_digit) + r._get_digit(i-2);
+<a name="l00172"></a>00172 <span class="keywordflow">if</span> (byDigits[n-2] * q <= r2) <span class="keywordflow">break</span>;
+<a name="l00173"></a>00173 --q;
+<a name="l00174"></a>00174 }
+<a name="l00175"></a>00175
+<a name="l00176"></a>00176 integer bq;
+<a name="l00177"></a>00177 <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(bq, d2, fixed_integer_any(q));
+<a name="l00178"></a>00178 <span class="keywordflow">if</span> (r < bq) {
+<a name="l00179"></a>00179 --q;
+<a name="l00180"></a>00180 <a class="code" href="namespaceboost_1_1xint.html#a385b3869d8dcceab2ffb68ff33c95062">subtract</a>(bq, temp_t(bq), d2);
+<a name="l00181"></a>00181 }
+<a name="l00182"></a>00182
+<a name="l00183"></a>00183 integer rtemp((r >> (bits_per_digit * (i-n))) - bq);
+<a name="l00184"></a>00184
+<a name="l00185"></a>00185 digit_t *rdigits=r._get_writable_digits();
+<a name="l00186"></a>00186
+<a name="l00187"></a>00187 <span class="keywordtype">size_t</span> rlen=r._get_length();
+<a name="l00188"></a>00188 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> x=0; x<=n && i-n+x < rlen; ++x)
+<a name="l00189"></a>00189 rdigits[i-n+x]=rtemp._get_digit(x, <span class="keyword">true</span>);
+<a name="l00190"></a>00190 r._cleanup();
+<a name="l00191"></a>00191
+<a name="l00192"></a>00192 qdigits[j--]=digit_t(q);
+<a name="l00193"></a>00193 } <span class="keywordflow">while</span> (--i >= n);
<a name="l00194"></a>00194
-<a name="l00195"></a>00195 qdigits[j--]=digit_t(q);
-<a name="l00196"></a>00196 } <span class="keywordflow">while</span> (--i >= n);
-<a name="l00197"></a>00197
-<a name="l00198"></a>00198 quotient._cleanup();
-<a name="l00199"></a>00199
-<a name="l00200"></a>00200 qtarget._attach(quotient);
-<a name="l00201"></a>00201 rtarget._attach(r);
-<a name="l00202"></a>00202 }
-<a name="l00203"></a>00203
-<a name="l00204"></a>00204 <span class="keywordtype">void</span> sub_divide(base_integer& qtarget, base_integer& rtarget, <span class="keyword">const</span>
-<a name="l00205"></a>00205 base_integer& d1, <span class="keyword">const</span> base_integer& d2)
-<a name="l00206"></a>00206 {
-<a name="l00207"></a>00207 <span class="keywordflow">if</span> (d2._get_length()==1) {
-<a name="l00208"></a>00208 divide_by_single_digit(qtarget, rtarget, d1, d2._get_digit(0));
-<a name="l00209"></a>00209 <span class="keywordflow">return</span>;
-<a name="l00210"></a>00210 }
-<a name="l00211"></a>00211
-<a name="l00212"></a>00212 <span class="comment">// The normalization step</span>
-<a name="l00213"></a>00213 digit_t _d = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(digit_overflowbit /
-<a name="l00214"></a>00214 (doubledigit_t(d2._get_digit(d2._get_length()-1))+1));
-<a name="l00215"></a>00215 <span class="keywordflow">if</span> (_d > 1) {
-<a name="l00216"></a>00216 fixed_integer_any d(_d);
-<a name="l00217"></a>00217
-<a name="l00218"></a>00218 integer dd1, dd2;
-<a name="l00219"></a>00219 <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(dd1, d1, d);
-<a name="l00220"></a>00220 <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(dd2, d2, d);
+<a name="l00195"></a>00195 quotient._cleanup();
+<a name="l00196"></a>00196
+<a name="l00197"></a>00197 qtarget._attach(quotient, <span class="keyword">true</span>);
+<a name="l00198"></a>00198 rtarget._attach(r, <span class="keyword">true</span>);
+<a name="l00199"></a>00199 }
+<a name="l00200"></a>00200
+<a name="l00201"></a>00201 <span class="keywordtype">void</span> sub_divide(base_integer& qtarget, base_integer& rtarget, <span class="keyword">const</span>
+<a name="l00202"></a>00202 base_integer& d1, <span class="keyword">const</span> base_integer& d2)
+<a name="l00203"></a>00203 {
+<a name="l00204"></a>00204 <span class="keywordflow">if</span> (d2._get_length()==1) {
+<a name="l00205"></a>00205 divide_by_single_digit(qtarget, rtarget, d1, d2._get_digit(0));
+<a name="l00206"></a>00206 <span class="keywordflow">return</span>;
+<a name="l00207"></a>00207 }
+<a name="l00208"></a>00208
+<a name="l00209"></a>00209 <span class="comment">// The normalization step</span>
+<a name="l00210"></a>00210 digit_t _d = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(digit_overflowbit /
+<a name="l00211"></a>00211 (doubledigit_t(d2._get_digit(d2._get_length()-1))+1));
+<a name="l00212"></a>00212 <span class="keywordflow">if</span> (_d > 1) {
+<a name="l00213"></a>00213 fixed_integer_any d(_d);
+<a name="l00214"></a>00214
+<a name="l00215"></a>00215 integer dd1, dd2;
+<a name="l00216"></a>00216 <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(dd1, d1, d);
+<a name="l00217"></a>00217 <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(dd2, d2, d);
+<a name="l00218"></a>00218
+<a name="l00219"></a>00219 integer q, r;
+<a name="l00220"></a>00220 sub_divide2(q, r, dd1, dd2);
<a name="l00221"></a>00221
-<a name="l00222"></a>00222 integer q, r;
-<a name="l00223"></a>00223 sub_divide2(q, r, dd1, dd2);
-<a name="l00224"></a>00224
-<a name="l00225"></a>00225 <span class="comment">// Denormalization step. This requires a division by a single digit_t.</span>
-<a name="l00226"></a>00226 integer qq, rr;
-<a name="l00227"></a>00227 divide_by_single_digit(qq, rr, r, _d);
-<a name="l00228"></a>00228 qtarget._attach(q);
-<a name="l00229"></a>00229 rtarget._attach(qq);
-<a name="l00230"></a>00230 } <span class="keywordflow">else</span> {
-<a name="l00231"></a>00231 sub_divide2(qtarget, rtarget, d1, d2);
-<a name="l00232"></a>00232 }
-<a name="l00233"></a>00233 }
-<a name="l00234"></a>00234
-<a name="l00235"></a>00235 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a7b7903cb879b60d0d5e3403b3c6a1cdd">add</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer& n2) {
-<a name="l00236"></a>00236 <span class="keywordflow">if</span> (n1._is_zero()) {
-<a name="l00237"></a>00237 target._attach(n2);
+<a name="l00222"></a>00222 <span class="comment">// Denormalization step. This requires a division by a single digit_t.</span>
+<a name="l00223"></a>00223 integer qq, rr;
+<a name="l00224"></a>00224 divide_by_single_digit(qq, rr, r, _d);
+<a name="l00225"></a>00225 qtarget._attach(q, <span class="keyword">true</span>);
+<a name="l00226"></a>00226 rtarget._attach(qq, <span class="keyword">true</span>);
+<a name="l00227"></a>00227 } <span class="keywordflow">else</span> {
+<a name="l00228"></a>00228 sub_divide2(qtarget, rtarget, d1, d2);
+<a name="l00229"></a>00229 }
+<a name="l00230"></a>00230 }
+<a name="l00231"></a>00231
+<a name="l00232"></a>00232 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a7b7903cb879b60d0d5e3403b3c6a1cdd">add</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer& n2) {
+<a name="l00233"></a>00233 <span class="keywordflow">if</span> (n1._is_zero()) {
+<a name="l00234"></a>00234 target._attach(n2, <span class="keyword">false</span>);
+<a name="l00235"></a>00235 <span class="keywordflow">return</span>;
+<a name="l00236"></a>00236 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n2._is_zero()) {
+<a name="l00237"></a>00237 target._attach(n1, <span class="keyword">false</span>);
<a name="l00238"></a>00238 <span class="keywordflow">return</span>;
-<a name="l00239"></a>00239 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n2._is_zero()) {
-<a name="l00240"></a>00240 target._attach(n1);
-<a name="l00241"></a>00241 <span class="keywordflow">return</span>;
-<a name="l00242"></a>00242 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n1._get_negative() != n2._get_negative()) {
-<a name="l00243"></a>00243 sub_subtract(target, n1, neg_t(n2));
-<a name="l00244"></a>00244 } <span class="keywordflow">else</span> {
-<a name="l00245"></a>00245 sub_add(target, n1, n2);
-<a name="l00246"></a>00246 }
-<a name="l00247"></a>00247 }
-<a name="l00248"></a>00248
-<a name="l00249"></a>00249 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a385b3869d8dcceab2ffb68ff33c95062">subtract</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer&
-<a name="l00250"></a>00250 n2)
-<a name="l00251"></a>00251 {
-<a name="l00252"></a>00252 <span class="keywordflow">if</span> (n1._is_zero()) {
-<a name="l00253"></a>00253 target._attach(neg_t(n2));
-<a name="l00254"></a>00254 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n2._is_zero()) {
-<a name="l00255"></a>00255 target._attach(n1);
-<a name="l00256"></a>00256 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n1._get_negative() != n2._get_negative()) {
-<a name="l00257"></a>00257 sub_add(target, n1, neg_t(n2));
-<a name="l00258"></a>00258 } <span class="keywordflow">else</span> {
-<a name="l00259"></a>00259 sub_subtract(target, n1, n2);
-<a name="l00260"></a>00260 }
-<a name="l00261"></a>00261 }
-<a name="l00262"></a>00262
-<a name="l00263"></a>00263 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keyword">const</span> base_integer&
-<a name="l00264"></a>00264 by)
-<a name="l00265"></a>00265 {
-<a name="l00266"></a>00266 <span class="keywordflow">if</span> (n._is_zero() || by._is_zero()) {
-<a name="l00267"></a>00267 target._set_unsigned(0);
-<a name="l00268"></a>00268 <span class="keywordflow">return</span>;
-<a name="l00269"></a>00269 }
-<a name="l00270"></a>00270
-<a name="l00271"></a>00271 <span class="keyword">const</span> digit_t *ndigits=n._get_digits(), *bydigits=by._get_digits();
-<a name="l00272"></a>00272 <span class="keywordflow">if</span> (ndigits==bydigits) {
-<a name="l00273"></a>00273 <a class="code" href="namespaceboost_1_1xint.html#a83ce32006b45117f9b3dc6c673fc9f01">sqr</a>(target, n);
-<a name="l00274"></a>00274 <span class="keywordflow">if</span> (n._get_negative() != by._get_negative()) target._set_negative(<span class="keyword">true</span>);
-<a name="l00275"></a>00275 <span class="keywordflow">return</span>;
-<a name="l00276"></a>00276 }
-<a name="l00277"></a>00277
-<a name="l00278"></a>00278 <span class="keywordtype">size_t</span> maxdigit = target._is_fixed()
-<a name="l00279"></a>00279 ? target._fixed_digits()
-<a name="l00280"></a>00280 : (std::numeric_limits<size_t>::max)();
-<a name="l00281"></a>00281 <span class="keywordtype">size_t</span> nlen=n._get_length(), bylen=by._get_length();
-<a name="l00282"></a>00282
-<a name="l00283"></a>00283 <span class="comment">// In multiplication, we know that the answer will be less than or equal to</span>
-<a name="l00284"></a>00284 <span class="comment">// the sum of the lengths of the operands.</span>
-<a name="l00285"></a>00285 integer answer;
-<a name="l00286"></a>00286 answer._realloc(nlen + bylen);
-<a name="l00287"></a>00287 digit_t *adigits=answer._get_writable_digits(), *ae = adigits +
-<a name="l00288"></a>00288 (std::min)(nlen + bylen, maxdigit);
-<a name="l00289"></a>00289
-<a name="l00290"></a>00290 <span class="comment">// Now multiply the digits, starting at the least-significant digit.</span>
-<a name="l00291"></a>00291 <span class="keyword">const</span> digit_t *d1 = ndigits, *d1e = d1 + (std::min)(nlen, maxdigit);
-<a name="l00292"></a>00292 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> digit1 = 0; d1 < d1e; ++digit1, ++d1) {
-<a name="l00293"></a>00293 <span class="keyword">const</span> digit_t *d2 = bydigits;
-<a name="l00294"></a>00294 <span class="keyword">const</span> digit_t *d2e = d2 + (std::min)(bylen, maxdigit - digit1);
-<a name="l00295"></a>00295 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> digit2 = 0; d2 < d2e; ++digit2, ++d2) {
-<a name="l00296"></a>00296 <span class="comment">// First multiply the two digits</span>
-<a name="l00297"></a>00297 doubledigit_t t=doubledigit_t(*d1) * *d2;
-<a name="l00298"></a>00298
-<a name="l00299"></a>00299 <span class="comment">// Now add the result to the answer.</span>
-<a name="l00300"></a>00300 <span class="keywordtype">int</span> carry=0;
-<a name="l00301"></a>00301 digit_t *a = adigits + digit1 + digit2;
-<a name="l00302"></a>00302 doubledigit_t addt=doubledigit_t(*a) + (t & digit_mask);
-<a name="l00303"></a>00303 <span class="keywordflow">if</span> (addt >= digit_overflowbit) carry=1;
-<a name="l00304"></a>00304 *a++=<span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(addt);
-<a name="l00305"></a>00305
-<a name="l00306"></a>00306 addt=*a + ((t >> bits_per_digit) & digit_mask) + carry;
-<a name="l00307"></a>00307 <span class="keywordflow">if</span> (addt >= digit_overflowbit) carry=1; <span class="keywordflow">else</span> carry=0;
-<a name="l00308"></a>00308 *a++=<span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(addt);
-<a name="l00309"></a>00309
-<a name="l00310"></a>00310 <span class="keywordflow">while</span> (carry && a < ae) {
-<a name="l00311"></a>00311 addt=*a+1;
-<a name="l00312"></a>00312 *a++ = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(addt);
-<a name="l00313"></a>00313 <span class="keywordflow">if</span> (addt < digit_overflowbit) <span class="keywordflow">break</span>;
-<a name="l00314"></a>00314 }
-<a name="l00315"></a>00315 }
-<a name="l00316"></a>00316 }
-<a name="l00317"></a>00317
-<a name="l00318"></a>00318 answer._set_negative(n._get_negative() != by._get_negative());
-<a name="l00319"></a>00319 answer._cleanup();
-<a name="l00320"></a>00320 target._attach(answer);
-<a name="l00321"></a>00321 }
-<a name="l00322"></a>00322
-<a name="l00323"></a>00323 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(base_integer& qtarget, base_integer& rtarget, <span class="keyword">const</span> base_integer&
-<a name="l00324"></a>00324 d1, <span class="keyword">const</span> base_integer& d2)
-<a name="l00325"></a>00325 {
-<a name="l00326"></a>00326 <span class="keywordtype">int</span> sign1 = (d1._is_zero() ? 0 : d1._get_negative() ? -1 : 1);
-<a name="l00327"></a>00327 <span class="keywordtype">int</span> sign2 = (d2._is_zero() ? 0 : d2._get_negative() ? -1 : 1);
-<a name="l00328"></a>00328 <span class="keywordflow">if</span> (sign2 == 0) <span class="keywordflow">throw</span> exceptions::divide_by_zero();
-<a name="l00329"></a>00329
-<a name="l00330"></a>00330 <span class="keywordtype">int</span> comp=<a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">compare</a>(d1, d2, <span class="keyword">true</span>);
-<a name="l00331"></a>00331 <span class="keywordflow">if</span> (comp < 0) {
-<a name="l00332"></a>00332 qtarget._attach(<a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>());
-<a name="l00333"></a>00333 rtarget._attach(d1);
-<a name="l00334"></a>00334 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (comp == 0) {
-<a name="l00335"></a>00335 qtarget._attach(fixed_integer_any(sign1 != sign2 ? 1 : -1));
-<a name="l00336"></a>00336 rtarget._attach(<a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>());
-<a name="l00337"></a>00337 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1 < 0 && sign2 < 0) {
-<a name="l00338"></a>00338 sub_divide(qtarget, rtarget, neg_t(d1), neg_t(d2));
-<a name="l00339"></a>00339 rtarget._set_negative(<span class="keyword">true</span>);
-<a name="l00340"></a>00340 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1 < 0) {
-<a name="l00341"></a>00341 sub_divide(qtarget, rtarget, neg_t(d1), d2);
-<a name="l00342"></a>00342 qtarget._set_negative(<span class="keyword">true</span>);
-<a name="l00343"></a>00343 rtarget._set_negative(<span class="keyword">true</span>);
-<a name="l00344"></a>00344 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2 < 0) {
-<a name="l00345"></a>00345 sub_divide(qtarget, rtarget, d1, neg_t(d2));
-<a name="l00346"></a>00346 qtarget._set_negative(<span class="keyword">true</span>);
-<a name="l00347"></a>00347 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (d2._get_length() == 1) {
-<a name="l00348"></a>00348 divide_by_single_digit(qtarget, rtarget, d1, d2._get_digit(0));
-<a name="l00349"></a>00349 } <span class="keywordflow">else</span> {
-<a name="l00350"></a>00350 sub_divide(qtarget, rtarget, d1, d2);
-<a name="l00351"></a>00351 }
-<a name="l00352"></a>00352 }
-<a name="l00353"></a>00353
-<a name="l00354"></a>00354 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer&
-<a name="l00355"></a>00355 n2)
-<a name="l00356"></a>00356 {
-<a name="l00357"></a>00357 integer remainder;
-<a name="l00358"></a>00358 <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(target, remainder, n1, n2);
-<a name="l00359"></a>00359 }
-<a name="l00360"></a>00360
-<a name="l00361"></a>00361 } <span class="comment">// namespace detail</span>
-<a name="l00363"></a>00363 <span class="comment"></span>
-<a name="l00372"></a>00372 integer <a class="code" href="namespaceboost_1_1xint.html#a0e114c276fc9affcc068dd5f0fbd9ff9">abs</a>(<span class="keyword">const</span> integer& n) {
-<a name="l00373"></a>00373 <span class="keywordflow">if</span> (n._get_negative()) {
-<a name="l00374"></a>00374 <span class="keywordflow">return</span> -n;
-<a name="l00375"></a>00375 } <span class="keywordflow">else</span> {
-<a name="l00376"></a>00376 <span class="keywordflow">return</span> n;
-<a name="l00377"></a>00377 }
-<a name="l00378"></a>00378 }
-<a name="l00379"></a>00379
-<a name="l00388"></a>00388 integer <a class="code" href="namespaceboost_1_1xint.html#aedc1654de47ce6d6635e5339b236f94d">negate</a>(<span class="keyword">const</span> integer& n) {
-<a name="l00389"></a>00389 integer nn(n);
-<a name="l00390"></a>00390 nn._toggle_negative();
-<a name="l00391"></a>00391 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(nn);
-<a name="l00392"></a>00392 }
-<a name="l00393"></a>00393
-<a name="l00402"></a>00402 integer <a class="code" href="namespaceboost_1_1xint.html#a7b7903cb879b60d0d5e3403b3c6a1cdd">add</a>(<span class="keyword">const</span> integer& n1, <span class="keyword">const</span> integer& n2) {
-<a name="l00403"></a>00403 integer r;
-<a name="l00404"></a>00404 <a class="code" href="namespaceboost_1_1xint.html#a7b7903cb879b60d0d5e3403b3c6a1cdd">detail::add</a>(r, n1, n2);
-<a name="l00405"></a>00405 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00406"></a>00406 }
-<a name="l00407"></a>00407
-<a name="l00416"></a>00416 integer <a class="code" href="namespaceboost_1_1xint.html#a385b3869d8dcceab2ffb68ff33c95062">subtract</a>(<span class="keyword">const</span> integer& n1, <span class="keyword">const</span> integer& n2) {
-<a name="l00417"></a>00417 integer r;
-<a name="l00418"></a>00418 <a class="code" href="namespaceboost_1_1xint.html#a385b3869d8dcceab2ffb68ff33c95062">detail::subtract</a>(r, n1, n2);
-<a name="l00419"></a>00419 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00420"></a>00420 }
-<a name="l00421"></a>00421
-<a name="l00434"></a>00434 integer <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(<span class="keyword">const</span> integer& n, <span class="keyword">const</span> integer& by) {
-<a name="l00435"></a>00435 integer r;
-<a name="l00436"></a>00436 <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">detail::multiply</a>(r, n, by);
-<a name="l00437"></a>00437 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00438"></a>00438 }
-<a name="l00439"></a>00439
-<a name="l00450"></a>00450 integer <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(<span class="keyword">const</span> integer& dividend, <span class="keyword">const</span> integer& divisor) {
-<a name="l00451"></a>00451 integer q, r;
-<a name="l00452"></a>00452 <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">detail::divide</a>(q, r, dividend, divisor);
-<a name="l00453"></a>00453 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(q);
-<a name="l00454"></a>00454 }
-<a name="l00455"></a>00455
-<a name="l00469"></a>00469 <a class="code" href="classboost_1_1xint_1_1integer.html#a5c47ab8e93d541e298dcfa3d73845d5a">integer::divide_t</a> <a class="code" href="namespaceboost_1_1xint.html#a620fde117268b303531129d00247e24f">divide_r</a>(<span class="keyword">const</span> integer& d1, <span class="keyword">const</span> integer& d2) {
-<a name="l00470"></a>00470 integer q, r;
-<a name="l00471"></a>00471 <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">detail::divide</a>(q, r, d1, d2);
-<a name="l00472"></a>00472 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#ad30e9ec163d1981dfee69c97d09ffd28">BOOST_XINT_FORWARD</a>(<a class="code" href="classboost_1_1xint_1_1integer.html#a5c47ab8e93d541e298dcfa3d73845d5a">integer::divide_t</a>, <a class="code" href="classboost_1_1xint_1_1integer.html#a5c47ab8e93d541e298dcfa3d73845d5a">integer::divide_t</a>(
-<a name="l00473"></a>00473 <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(q), <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r)));
-<a name="l00474"></a>00474 }
-<a name="l00475"></a>00475
-<a name="l00476"></a>00476 } <span class="comment">// namespace xint</span>
-<a name="l00477"></a>00477 } <span class="comment">// namespace boost</span>
+<a name="l00239"></a>00239 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n1._get_negative() != n2._get_negative()) {
+<a name="l00240"></a>00240 sub_subtract(target, n1, neg_t(n2));
+<a name="l00241"></a>00241 } <span class="keywordflow">else</span> {
+<a name="l00242"></a>00242 sub_add(target, n1, n2);
+<a name="l00243"></a>00243 }
+<a name="l00244"></a>00244 }
+<a name="l00245"></a>00245
+<a name="l00246"></a>00246 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a385b3869d8dcceab2ffb68ff33c95062">subtract</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer&
+<a name="l00247"></a>00247 n2)
+<a name="l00248"></a>00248 {
+<a name="l00249"></a>00249 <span class="keywordflow">if</span> (n1._is_zero()) {
+<a name="l00250"></a>00250 target._attach(neg_t(n2), <span class="keyword">false</span>);
+<a name="l00251"></a>00251 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n2._is_zero()) {
+<a name="l00252"></a>00252 target._attach(n1, <span class="keyword">false</span>);
+<a name="l00253"></a>00253 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n1._get_negative() != n2._get_negative()) {
+<a name="l00254"></a>00254 sub_add(target, n1, neg_t(n2));
+<a name="l00255"></a>00255 } <span class="keywordflow">else</span> {
+<a name="l00256"></a>00256 sub_subtract(target, n1, n2);
+<a name="l00257"></a>00257 }
+<a name="l00258"></a>00258 }
+<a name="l00259"></a>00259
+<a name="l00260"></a>00260 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(base_integer& target, <span class="keyword">const</span> base_integer& n, <span class="keyword">const</span> base_integer&
+<a name="l00261"></a>00261 by)
+<a name="l00262"></a>00262 {
+<a name="l00263"></a>00263 <span class="keywordflow">if</span> (n._is_zero() || by._is_zero()) {
+<a name="l00264"></a>00264 target._set_unsigned(0);
+<a name="l00265"></a>00265 <span class="keywordflow">return</span>;
+<a name="l00266"></a>00266 }
+<a name="l00267"></a>00267
+<a name="l00268"></a>00268 <span class="keyword">const</span> digit_t *ndigits=n._get_digits(), *bydigits=by._get_digits();
+<a name="l00269"></a>00269 <span class="keywordflow">if</span> (ndigits==bydigits) {
+<a name="l00270"></a>00270 <a class="code" href="namespaceboost_1_1xint.html#a83ce32006b45117f9b3dc6c673fc9f01">sqr</a>(target, n);
+<a name="l00271"></a>00271 <span class="keywordflow">if</span> (n._get_negative() != by._get_negative()) target._set_negative(<span class="keyword">true</span>);
+<a name="l00272"></a>00272 <span class="keywordflow">return</span>;
+<a name="l00273"></a>00273 }
+<a name="l00274"></a>00274
+<a name="l00275"></a>00275 <span class="keywordtype">size_t</span> maxdigit = target._is_fixed()
+<a name="l00276"></a>00276 ? target._fixed_digits()
+<a name="l00277"></a>00277 : (std::numeric_limits<size_t>::max)();
+<a name="l00278"></a>00278 <span class="keywordtype">size_t</span> nlen=n._get_length(), bylen=by._get_length();
+<a name="l00279"></a>00279
+<a name="l00280"></a>00280 <span class="comment">// In multiplication, we know that the answer will be less than or equal to</span>
+<a name="l00281"></a>00281 <span class="comment">// the sum of the lengths of the operands.</span>
+<a name="l00282"></a>00282 integer answer;
+<a name="l00283"></a>00283 answer._realloc(nlen + bylen);
+<a name="l00284"></a>00284 digit_t *adigits=answer._get_writable_digits(), *ae = adigits +
+<a name="l00285"></a>00285 (std::min)(nlen + bylen, maxdigit);
+<a name="l00286"></a>00286
+<a name="l00287"></a>00287 <span class="comment">// Now multiply the digits, starting at the least-significant digit.</span>
+<a name="l00288"></a>00288 <span class="keyword">const</span> digit_t *d1 = ndigits, *d1e = d1 + (std::min)(nlen, maxdigit);
+<a name="l00289"></a>00289 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> digit1 = 0; d1 < d1e; ++digit1, ++d1) {
+<a name="l00290"></a>00290 <span class="keyword">const</span> digit_t *d2 = bydigits;
+<a name="l00291"></a>00291 <span class="keyword">const</span> digit_t *d2e = d2 + (std::min)(bylen, maxdigit - digit1);
+<a name="l00292"></a>00292 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> digit2 = 0; d2 < d2e; ++digit2, ++d2) {
+<a name="l00293"></a>00293 <span class="comment">// First multiply the two digits</span>
+<a name="l00294"></a>00294 doubledigit_t t=doubledigit_t(*d1) * *d2;
+<a name="l00295"></a>00295
+<a name="l00296"></a>00296 <span class="comment">// Now add the result to the answer.</span>
+<a name="l00297"></a>00297 <span class="keywordtype">int</span> carry=0;
+<a name="l00298"></a>00298 digit_t *a = adigits + digit1 + digit2;
+<a name="l00299"></a>00299 doubledigit_t addt=doubledigit_t(*a) + (t & digit_mask);
+<a name="l00300"></a>00300 <span class="keywordflow">if</span> (addt >= digit_overflowbit) carry=1;
+<a name="l00301"></a>00301 *a++=<span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(addt);
+<a name="l00302"></a>00302
+<a name="l00303"></a>00303 addt=*a + ((t >> bits_per_digit) & digit_mask) + carry;
+<a name="l00304"></a>00304 <span class="keywordflow">if</span> (addt >= digit_overflowbit) carry=1; <span class="keywordflow">else</span> carry=0;
+<a name="l00305"></a>00305 *a++=<span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(addt);
+<a name="l00306"></a>00306
+<a name="l00307"></a>00307 <span class="keywordflow">while</span> (carry && a < ae) {
+<a name="l00308"></a>00308 addt=*a+1;
+<a name="l00309"></a>00309 *a++ = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(addt);
+<a name="l00310"></a>00310 <span class="keywordflow">if</span> (addt < digit_overflowbit) <span class="keywordflow">break</span>;
+<a name="l00311"></a>00311 }
+<a name="l00312"></a>00312 }
+<a name="l00313"></a>00313 }
+<a name="l00314"></a>00314
+<a name="l00315"></a>00315 answer._set_negative(n._get_negative() != by._get_negative());
+<a name="l00316"></a>00316 answer._cleanup();
+<a name="l00317"></a>00317 target._attach(answer, <span class="keyword">true</span>);
+<a name="l00318"></a>00318 }
+<a name="l00319"></a>00319
+<a name="l00320"></a>00320 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(base_integer& qtarget, base_integer& rtarget, <span class="keyword">const</span> base_integer&
+<a name="l00321"></a>00321 d1, <span class="keyword">const</span> base_integer& d2)
+<a name="l00322"></a>00322 {
+<a name="l00323"></a>00323 <span class="keywordtype">int</span> sign1 = (d1._is_zero() ? 0 : d1._get_negative() ? -1 : 1);
+<a name="l00324"></a>00324 <span class="keywordtype">int</span> sign2 = (d2._is_zero() ? 0 : d2._get_negative() ? -1 : 1);
+<a name="l00325"></a>00325 <span class="keywordflow">if</span> (sign2 == 0) <span class="keywordflow">throw</span> exceptions::divide_by_zero();
+<a name="l00326"></a>00326
+<a name="l00327"></a>00327 <span class="keywordtype">int</span> comp=<a class="code" href="namespaceboost_1_1xint.html#a23f712f01d6589687d2984b1c5efea8b" title="Compare two integer objects.">compare</a>(d1, d2, <span class="keyword">true</span>);
+<a name="l00328"></a>00328 <span class="keywordflow">if</span> (comp < 0) {
+<a name="l00329"></a>00329 qtarget._attach(<a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>(), <span class="keyword">false</span>);
+<a name="l00330"></a>00330 rtarget._attach(d1, <span class="keyword">false</span>);
+<a name="l00331"></a>00331 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (comp == 0) {
+<a name="l00332"></a>00332 qtarget._attach(fixed_integer_any(sign1 != sign2 ? 1 : -1), <span class="keyword">true</span>);
+<a name="l00333"></a>00333 rtarget._attach(<a class="code" href="classboost_1_1xint_1_1integer.html#a5c08ebe10f3f6333328b35193edd53d0">integer::zero</a>(), <span class="keyword">false</span>);
+<a name="l00334"></a>00334 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1 < 0 && sign2 < 0) {
+<a name="l00335"></a>00335 sub_divide(qtarget, rtarget, neg_t(d1), neg_t(d2));
+<a name="l00336"></a>00336 rtarget._set_negative(<span class="keyword">true</span>);
+<a name="l00337"></a>00337 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1 < 0) {
+<a name="l00338"></a>00338 sub_divide(qtarget, rtarget, neg_t(d1), d2);
+<a name="l00339"></a>00339 qtarget._set_negative(<span class="keyword">true</span>);
+<a name="l00340"></a>00340 rtarget._set_negative(<span class="keyword">true</span>);
+<a name="l00341"></a>00341 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2 < 0) {
+<a name="l00342"></a>00342 sub_divide(qtarget, rtarget, d1, neg_t(d2));
+<a name="l00343"></a>00343 qtarget._set_negative(<span class="keyword">true</span>);
+<a name="l00344"></a>00344 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (d2._get_length() == 1) {
+<a name="l00345"></a>00345 divide_by_single_digit(qtarget, rtarget, d1, d2._get_digit(0));
+<a name="l00346"></a>00346 } <span class="keywordflow">else</span> {
+<a name="l00347"></a>00347 sub_divide(qtarget, rtarget, d1, d2);
+<a name="l00348"></a>00348 }
+<a name="l00349"></a>00349 }
+<a name="l00350"></a>00350
+<a name="l00351"></a>00351 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(base_integer& target, <span class="keyword">const</span> base_integer& n1, <span class="keyword">const</span> base_integer&
+<a name="l00352"></a>00352 n2)
+<a name="l00353"></a>00353 {
+<a name="l00354"></a>00354 integer remainder;
+<a name="l00355"></a>00355 <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(target, remainder, n1, n2);
+<a name="l00356"></a>00356 }
+<a name="l00357"></a>00357
+<a name="l00358"></a>00358 } <span class="comment">// namespace detail</span>
+<a name="l00360"></a>00360 <span class="comment"></span>
+<a name="l00369"></a>00369 integer <a class="code" href="namespaceboost_1_1xint.html#a0e114c276fc9affcc068dd5f0fbd9ff9">abs</a>(<span class="keyword">const</span> integer& n) {
+<a name="l00370"></a>00370 <span class="keywordflow">if</span> (n._get_negative()) {
+<a name="l00371"></a>00371 <span class="keywordflow">return</span> -n;
+<a name="l00372"></a>00372 } <span class="keywordflow">else</span> {
+<a name="l00373"></a>00373 <span class="keywordflow">return</span> n;
+<a name="l00374"></a>00374 }
+<a name="l00375"></a>00375 }
+<a name="l00376"></a>00376
+<a name="l00385"></a>00385 integer <a class="code" href="namespaceboost_1_1xint.html#aedc1654de47ce6d6635e5339b236f94d">negate</a>(<span class="keyword">const</span> integer& n) {
+<a name="l00386"></a>00386 integer nn(n);
+<a name="l00387"></a>00387 nn._toggle_negative();
+<a name="l00388"></a>00388 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(nn);
+<a name="l00389"></a>00389 }
+<a name="l00390"></a>00390
+<a name="l00399"></a>00399 integer <a class="code" href="namespaceboost_1_1xint.html#a7b7903cb879b60d0d5e3403b3c6a1cdd">add</a>(<span class="keyword">const</span> integer& n1, <span class="keyword">const</span> integer& n2) {
+<a name="l00400"></a>00400 integer r;
+<a name="l00401"></a>00401 <a class="code" href="namespaceboost_1_1xint.html#a7b7903cb879b60d0d5e3403b3c6a1cdd">detail::add</a>(r, n1, n2);
+<a name="l00402"></a>00402 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00403"></a>00403 }
+<a name="l00404"></a>00404
+<a name="l00413"></a>00413 integer <a class="code" href="namespaceboost_1_1xint.html#a385b3869d8dcceab2ffb68ff33c95062">subtract</a>(<span class="keyword">const</span> integer& n1, <span class="keyword">const</span> integer& n2) {
+<a name="l00414"></a>00414 integer r;
+<a name="l00415"></a>00415 <a class="code" href="namespaceboost_1_1xint.html#a385b3869d8dcceab2ffb68ff33c95062">detail::subtract</a>(r, n1, n2);
+<a name="l00416"></a>00416 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00417"></a>00417 }
+<a name="l00418"></a>00418
+<a name="l00431"></a>00431 integer <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(<span class="keyword">const</span> integer& n, <span class="keyword">const</span> integer& by) {
+<a name="l00432"></a>00432 integer r;
+<a name="l00433"></a>00433 <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">detail::multiply</a>(r, n, by);
+<a name="l00434"></a>00434 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00435"></a>00435 }
+<a name="l00436"></a>00436
+<a name="l00447"></a>00447 integer <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(<span class="keyword">const</span> integer& dividend, <span class="keyword">const</span> integer& divisor) {
+<a name="l00448"></a>00448 integer q, r;
+<a name="l00449"></a>00449 <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">detail::divide</a>(q, r, dividend, divisor);
+<a name="l00450"></a>00450 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(q);
+<a name="l00451"></a>00451 }
+<a name="l00452"></a>00452
+<a name="l00466"></a>00466 <a class="code" href="classboost_1_1xint_1_1integer.html#a5c47ab8e93d541e298dcfa3d73845d5a">integer::divide_t</a> <a class="code" href="namespaceboost_1_1xint.html#a620fde117268b303531129d00247e24f">divide_r</a>(<span class="keyword">const</span> integer& d1, <span class="keyword">const</span> integer& d2) {
+<a name="l00467"></a>00467 integer q, r;
+<a name="l00468"></a>00468 <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">detail::divide</a>(q, r, d1, d2);
+<a name="l00469"></a>00469 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#ad30e9ec163d1981dfee69c97d09ffd28">BOOST_XINT_FORWARD</a>(<a class="code" href="classboost_1_1xint_1_1integer.html#a5c47ab8e93d541e298dcfa3d73845d5a">integer::divide_t</a>, <a class="code" href="classboost_1_1xint_1_1integer.html#a5c47ab8e93d541e298dcfa3d73845d5a">integer::divide_t</a>(
+<a name="l00470"></a>00470 <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(q), <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r)));
+<a name="l00471"></a>00471 }
+<a name="l00472"></a>00472
+<a name="l00473"></a>00473 } <span class="comment">// namespace xint</span>
+<a name="l00474"></a>00474 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__core.html
==============================================================================
--- sandbox/xint/doc/r__core.html (original)
+++ sandbox/xint/doc/r__core.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -31,7 +31,7 @@
<p>To deal with this, I separated the <code>xint::integer</code> and <code>xint::nothrow_integer</code> types. <code>xint::integer</code> functions now always throw exceptions on errors, and always hold valid numbers; <code>xint::nothrow_integer</code> functions (as implied by the name) never throw exceptions, instead returning the Not-a-Number value (which only <code>xint::nothrow_integer</code> can hold).</p>
<p>This design ensures that the Not-a-Number value only needs to be checked for in a single place (the <code>xint::integer</code> conversion constructor), and ensures that any speed penalty from it is only incurred by people who choose to use the <code>nothrow_integer</code> type. It also preserves the no-exceptions behavior, which is useful under some circumstances. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__core_8dox.html
==============================================================================
--- sandbox/xint/doc/r__core_8dox.html (original)
+++ sandbox/xint/doc/r__core_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/r_core.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__cow.html
==============================================================================
--- sandbox/xint/doc/r__cow.html (original)
+++ sandbox/xint/doc/r__cow.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -26,7 +26,7 @@
<h1><a class="anchor" id="r_cow">Why use copy-on-write? I've heard that causes problems with multi-threaded code. </a></h1><p>It's the best way I found to return large <code>integer</code> objects from functions efficiently. Some of these numbers can get huge, making copying an expensive proposition, and even move semantics (at least as emulated by Boost.Move at the time of this writing) aren't as fast. Copy-on-write also works when storing items in the standard containers; Boost.Move emulation requires special move-aware containers.</p>
<p>It <em>does</em> cause problems when you try to use the library from multiple threads at the same time. To deal with that, the library can be compiled in a <a class="el" href="threadsafe.html">thread-safe mode</a>, which ensures that every <code>integer</code> gets its own unique storage and turns on Boost.Move move semantics, among other things. You still have to ensure that only one thread accesses a particular <code>integer</code> at a time. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__cow_8dox.html
==============================================================================
--- sandbox/xint/doc/r__cow_8dox.html (original)
+++ sandbox/xint/doc/r__cow_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/r_cow.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__exception__blocking.html
==============================================================================
--- sandbox/xint/doc/r__exception__blocking.html (original)
+++ sandbox/xint/doc/r__exception__blocking.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -27,7 +27,7 @@
<p>There are also times when exception-handling can get in the way of writing code that is easily understandable by other people. Any software developer understands calling a function and checking the return value to see if there was an error; it's a standard idiom in essentially any programming language, and it's even widely used in the C++ Standard Template Library (see std::string::find, for just one example).</p>
<p>Writing code that is <em>human-readable</em> -- not just machine-readable -- is difficult, and there's little that anyone can do to change that. But giving the developer the choice to use either exceptions or error codes, depending on which is most readable, makes it easier to produce such code, and costs nothing to the people who choose not to use it. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__exception__blocking_8dox.html
==============================================================================
--- sandbox/xint/doc/r__exception__blocking_8dox.html (original)
+++ sandbox/xint/doc/r__exception__blocking_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/r_exception_blocking.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__insecure__default.html
==============================================================================
--- sandbox/xint/doc/r__insecure__default.html (original)
+++ sandbox/xint/doc/r__insecure__default.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -25,7 +25,7 @@
<h1><a class="anchor" id="r_insecure_default">But why have an insecure random number generator as the default? Why not default to the secure one? </a></h1><p>Because the secure one isn't available on all systems. If the library relied on <code>random_device</code> as a default, it wouldn't compile under those systems. If it used <code>xint::strong_random_generator</code>, it would compile, but would always fail on them. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__insecure__default_8dox.html
==============================================================================
--- sandbox/xint/doc/r__insecure__default_8dox.html (original)
+++ sandbox/xint/doc/r__insecure__default_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/r_insecure_default.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__interface.html
==============================================================================
--- sandbox/xint/doc/r__interface.html (original)
+++ sandbox/xint/doc/r__interface.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<dd>
n1744: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1744.pdf </dd></dl>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__interface_8dox.html
==============================================================================
--- sandbox/xint/doc/r__interface_8dox.html (original)
+++ sandbox/xint/doc/r__interface_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/r_interface.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__interface__design__only.html
==============================================================================
--- sandbox/xint/doc/r__interface__design__only.html (original)
+++ sandbox/xint/doc/r__interface__design__only.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -30,7 +30,7 @@
<li>It does not, at present, implement a multiplication scheme with better performance than the "basecase" mentioned in section 3.4 of n1692, primarily because I haven't had the time to research all of them yet. I suspect that most people using the library will usually be using numbers below the threshold where the more exotic algorithms are faster, but I plan to add at least one of them in the future, maybe several. </li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__interface__design__only_8dox.html
==============================================================================
--- sandbox/xint/doc/r__interface__design__only_8dox.html (original)
+++ sandbox/xint/doc/r__interface__design__only_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/r_interface_design_only.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__nan.html
==============================================================================
--- sandbox/xint/doc/r__nan.html (original)
+++ sandbox/xint/doc/r__nan.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -25,7 +25,7 @@
<h1><a class="anchor" id="r_nan">Why have a Not-a-Number value? </a></h1><p>Because it's the cleanest way I could find to return answers that don't represent a valid number, which is necessary for the <code>nothrow_integer</code> type. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__nan_8dox.html
==============================================================================
--- sandbox/xint/doc/r__nan_8dox.html (original)
+++ sandbox/xint/doc/r__nan_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/r_nan.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__negzero.html
==============================================================================
--- sandbox/xint/doc/r__negzero.html (original)
+++ sandbox/xint/doc/r__negzero.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -25,7 +25,7 @@
<h1><a class="anchor" id="r_negzero">Since you've got Not-a-Number, what about negative zero, and positive and negative infinity, like IEEE floating-point numbers? </a></h1><p>The library does have limited support for a <a class="el" href="zero.html">"negative zero"</a> value, to support an unlimited-precision floating point type that will be built on it later. But infinity is a concept, not a countable value, and as such it is not included in the library at present. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__negzero_8dox.html
==============================================================================
--- sandbox/xint/doc/r__negzero_8dox.html (original)
+++ sandbox/xint/doc/r__negzero_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/r_negzero.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__random.html
==============================================================================
--- sandbox/xint/doc/r__random.html (original)
+++ sandbox/xint/doc/r__random.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -25,7 +25,7 @@
<h1><a class="anchor" id="r_random">Why did you implement your own random number generator? You should use Boost.Random instead. </a></h1><p>Boost.Random provides <code>boost::random_device</code> to tap into the operating system's strong random number generator, but at the time of this writing, the official released version only defines it for Linux and BSD systems. The current maintainer, Steven Watanabe, says that he has just added Windows compatibility to it, so the <code>xint::strong_random_generator</code> class will likely be reduced to a typedef for <code>boost::random_device</code>, or a thin shell around it, in the near future. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__random_8dox.html
==============================================================================
--- sandbox/xint/doc/r__random_8dox.html (original)
+++ sandbox/xint/doc/r__random_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/r_random.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__shared__ptr.html
==============================================================================
--- sandbox/xint/doc/r__shared__ptr.html (original)
+++ sandbox/xint/doc/r__shared__ptr.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -25,7 +25,7 @@
<h1><a class="anchor" id="r_shared_ptr">Why are you using a roll-your-own system instead of <code>boost::shared_ptr</code> for the copy-on-write stuff? </a></h1><p>Because it's a lot faster. I tried <code>boost::shared_ptr</code>, and under Linux with GCC 4.4.1 on the same computer, running my test suite went from 1.6 seconds to 3.4 seconds. The home-grown shared pointer design may not be quite as easy to work with in an exception-safe manner, but that's completely internal to the <code>integer</code> class, so only developers working <em>on</em> the library, rather than <em>with</em> it, have to deal with that. I'll accept that trade-off. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/r__shared__ptr_8dox.html
==============================================================================
--- sandbox/xint/doc/r__shared__ptr_8dox.html (original)
+++ sandbox/xint/doc/r__shared__ptr_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/r_shared_ptr.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/random.html
==============================================================================
--- sandbox/xint/doc/random.html (original)
+++ sandbox/xint/doc/random.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -29,7 +29,7 @@
<p>If you have a different preferred generator, perhaps one that uses dedicated hardware to produce randomness, you can plug that into the library's <code>random_by_size</code> and <code>random_prime</code> functions instead.</p>
<p>See the code at the top of <a class="el" href="primes.html">the Prime Numbers page</a> for an example of how to use these generators to produce secure prime numbers. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/random_8cpp.html
==============================================================================
--- sandbox/xint/doc/random_8cpp.html (original)
+++ sandbox/xint/doc/random_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -44,7 +44,7 @@
<p>Definition in file <a class="el" href="random_8cpp_source.html">random.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/random_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/random_8cpp_source.html (original)
+++ sandbox/xint/doc/random_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -173,7 +173,7 @@
<a name="l00159"></a>00159 } <span class="comment">// namespace xint</span>
<a name="l00160"></a>00160 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/random_8dox.html
==============================================================================
--- sandbox/xint/doc/random_8dox.html (original)
+++ sandbox/xint/doc/random_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/random.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/random_8hpp.html
==============================================================================
--- sandbox/xint/doc/random_8hpp.html (original)
+++ sandbox/xint/doc/random_8hpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -59,7 +59,7 @@
<p>Definition in file <a class="el" href="random_8hpp_source.html">random.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/random_8hpp_source.html
==============================================================================
--- sandbox/xint/doc/random_8hpp_source.html (original)
+++ sandbox/xint/doc/random_8hpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -103,23 +103,24 @@
<a name="l00124"></a>00124 <span class="keywordtype">bool</span> can_be_negative)
<a name="l00125"></a>00125 {
<a name="l00126"></a>00126 detail::random_generator<T> generator(gen);
-<a name="l00127"></a>00127 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(<a class="code" href="namespaceboost_1_1xint.html#af431075692c7b5b7bc01768856876512" title="Generates a random integer with specific attributes.">detail::random_by_size</a>(generator, bits, high_bit_on,
-<a name="l00128"></a>00128 low_bit_on, can_be_negative));
-<a name="l00129"></a>00129 }
-<a name="l00130"></a>00130
-<a name="l00158"></a>00158 <span class="keyword">template</span> <<span class="keyword">class</span> T>
-<a name="l00159"></a><a class="code" href="namespaceboost_1_1xint.html#ad9c43d1fa76d7c19288c841aa1cbaf63">00159</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a> <a class="code" href="namespaceboost_1_1xint.html#afec65ec6ec0b57c0483a703040d97107">random_prime</a>(T& gen, <span class="keywordtype">size_t</span> size_in_bits, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a> callback) {
-<a name="l00160"></a>00160 detail::random_generator<T> generator(gen);
-<a name="l00161"></a>00161 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(<a class="code" href="namespaceboost_1_1xint.html#afec65ec6ec0b57c0483a703040d97107">detail::random_prime</a>(generator, size_in_bits,
-<a name="l00162"></a>00162 callback));
-<a name="l00163"></a>00163 }
-<a name="l00164"></a>00164
-<a name="l00165"></a>00165 } <span class="comment">// namespace xint</span>
-<a name="l00166"></a>00166 } <span class="comment">// namespace boost</span>
-<a name="l00167"></a>00167
-<a name="l00168"></a>00168 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RANDOM_HPP</span>
+<a name="l00127"></a>00127 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a> r(<a class="code" href="namespaceboost_1_1xint.html#af431075692c7b5b7bc01768856876512" title="Generates a random integer with specific attributes.">detail::random_by_size</a>(generator, bits, high_bit_on, low_bit_on,
+<a name="l00128"></a>00128 can_be_negative));
+<a name="l00129"></a>00129 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00130"></a>00130 }
+<a name="l00131"></a>00131
+<a name="l00159"></a>00159 <span class="keyword">template</span> <<span class="keyword">class</span> T>
+<a name="l00160"></a><a class="code" href="namespaceboost_1_1xint.html#ad9c43d1fa76d7c19288c841aa1cbaf63">00160</a> <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a> <a class="code" href="namespaceboost_1_1xint.html#afec65ec6ec0b57c0483a703040d97107">random_prime</a>(T& gen, <span class="keywordtype">size_t</span> size_in_bits, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a> callback) {
+<a name="l00161"></a>00161 detail::random_generator<T> generator(gen);
+<a name="l00162"></a>00162 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(<a class="code" href="namespaceboost_1_1xint.html#afec65ec6ec0b57c0483a703040d97107">detail::random_prime</a>(generator, size_in_bits,
+<a name="l00163"></a>00163 callback));
+<a name="l00164"></a>00164 }
+<a name="l00165"></a>00165
+<a name="l00166"></a>00166 } <span class="comment">// namespace xint</span>
+<a name="l00167"></a>00167 } <span class="comment">// namespace boost</span>
+<a name="l00168"></a>00168
+<a name="l00169"></a>00169 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RANDOM_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/rationale.html
==============================================================================
--- sandbox/xint/doc/rationale.html (original)
+++ sandbox/xint/doc/rationale.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -50,7 +50,7 @@
<li><a class="el" href="r__insecure__default.html">But why have an insecure random number generator as the default? Why not default to the secure one?</a> </li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/rationale_8dox.html
==============================================================================
--- sandbox/xint/doc/rationale_8dox.html (original)
+++ sandbox/xint/doc/rationale_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/rationale.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/roots_8cpp.html
==============================================================================
--- sandbox/xint/doc/roots_8cpp.html (original)
+++ sandbox/xint/doc/roots_8cpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -50,7 +50,7 @@
<p>Definition in file <a class="el" href="roots_8cpp_source.html">roots.cpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/roots_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/roots_8cpp_source.html (original)
+++ sandbox/xint/doc/roots_8cpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -44,7 +44,7 @@
<a name="l00024"></a>00024 <span class="keyword">namespace </span>detail {
<a name="l00025"></a>00025
<a name="l00026"></a>00026 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a0825d8d9d4644df8d9b6922f5b0d7064">sqrt</a>(base_integer& target, <span class="keyword">const</span> base_integer& nn) {
-<a name="l00027"></a>00027 <span class="keywordflow">if</span> (nn._is_zero()) { target._attach(nn); <span class="keywordflow">return</span>; }
+<a name="l00027"></a>00027 <span class="keywordflow">if</span> (nn._is_zero()) { target._attach(nn, <span class="keyword">false</span>); <span class="keywordflow">return</span>; }
<a name="l00028"></a>00028 <span class="keywordflow">if</span> (nn._get_negative()) <span class="keywordflow">throw</span> exceptions::cannot_represent(<span class="stringliteral">"library cannot "</span>
<a name="l00029"></a>00029 <span class="stringliteral">"represent imaginary values (tried to take sqrt of negative number)"</span>);
<a name="l00030"></a>00030
@@ -54,7 +54,7 @@
<a name="l00034"></a>00034 <span class="comment">// two.</span>
<a name="l00035"></a>00035 <span class="keyword">const</span> <span class="keywordtype">size_t</span> extra_bits = 1;
<a name="l00036"></a>00036
-<a name="l00037"></a>00037 integer n(nn._to_integer());
+<a name="l00037"></a>00037 integer n(nn._to_integer(<span class="keyword">false</span>));
<a name="l00038"></a>00038 n <<= (extra_bits * 2);
<a name="l00039"></a>00039
<a name="l00040"></a>00040 <span class="comment">// Initial guess is half the length of n, in bits</span>
@@ -70,7 +70,7 @@
<a name="l00050"></a>00050
<a name="l00051"></a>00051 <span class="comment">// Remove half of the added bits.</span>
<a name="l00052"></a>00052 guess >>= extra_bits;
-<a name="l00053"></a>00053 target._attach(guess);
+<a name="l00053"></a>00053 target._attach(guess, <span class="keyword">true</span>);
<a name="l00054"></a>00054 }
<a name="l00055"></a>00055
<a name="l00056"></a>00056 } <span class="comment">// namespace detail</span>
@@ -84,7 +84,7 @@
<a name="l00077"></a>00077 } <span class="comment">// namespace xint</span>
<a name="l00078"></a>00078 } <span class="comment">// namespace boost</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/securemode.html
==============================================================================
--- sandbox/xint/doc/securemode.html (original)
+++ sandbox/xint/doc/securemode.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -27,7 +27,7 @@
<p>To enable it, define the preprocessor symbol <code>XINT_SECURE</code> when compiling the library. You don't need to define it when using the library, only when compiling it.</p>
<p>To see whether your copy was compiled with secure-mode enabled, use the xint::opt_secure_mode function. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/securemode_8dox.html
==============================================================================
--- sandbox/xint/doc/securemode_8dox.html (original)
+++ sandbox/xint/doc/securemode_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/securemode.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/testing.html
==============================================================================
--- sandbox/xint/doc/testing.html (original)
+++ sandbox/xint/doc/testing.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -26,7 +26,7 @@
<h1><a class="anchor" id="testing">The Self-Testing Program </a></h1><p>The library has a self-testing program that you can build and run to confirm that it is working properly. You can find the source code for it in the <code>test</code> subdirectory under the main <code>xint</code> directory. All of the major functions are thoroughly exercised, and many of the minor ones as well.</p>
<p>The source code for the testing program also demonstrates how to use many of the library's functions. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/testing_8dox.html
==============================================================================
--- sandbox/xint/doc/testing_8dox.html (original)
+++ sandbox/xint/doc/testing_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/testing.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/threadsafe.html
==============================================================================
--- sandbox/xint/doc/threadsafe.html (original)
+++ sandbox/xint/doc/threadsafe.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<p>To programatically check whether your copy was compiled with thread-safe operation enabled, use the xint::opt_thread_safe function.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>You can safely use the non-thread-safe version of the library in multiple threads, if you call the undocumented <code>_make_unique</code> member function on each integer when it crosses thread boundaries. </dd></dl>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/threadsafe_8dox.html
==============================================================================
--- sandbox/xint/doc/threadsafe_8dox.html (original)
+++ sandbox/xint/doc/threadsafe_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/threadsafe.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/xint_8hpp.html
==============================================================================
--- sandbox/xint/doc/xint_8hpp.html (original)
+++ sandbox/xint/doc/xint_8hpp.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -37,7 +37,7 @@
<p>Definition in file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/xint_8hpp_source.html
==============================================================================
--- sandbox/xint/doc/xint_8hpp_source.html (original)
+++ sandbox/xint/doc/xint_8hpp_source.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -48,7 +48,7 @@
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/zero.html
==============================================================================
--- sandbox/xint/doc/zero.html (original)
+++ sandbox/xint/doc/zero.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -29,7 +29,7 @@
</pre></div><p>A negative zero will act exactly like a "normal" zero in all respects. The only way to detect a sign on it is by calling <a class="el" href="classboost_1_1xint_1_1integer.html#a6821767d0ec6c762a4c1002944550aae">the sign function</a> with the <code>signed_zero</code> parameter <code>true</code>. With that parameter, it will return -1 on any negative number, including zero.</p>
<p>Note that the unary minus operator and the <a class="el" href="namespaceboost_1_1xint.html#aedc1654de47ce6d6635e5339b236f94d">negate</a> function are the only functions that will ever return a negative zero. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/doc/zero_8dox.html
==============================================================================
--- sandbox/xint/doc/zero_8dox.html (original)
+++ sandbox/xint/doc/zero_8dox.html 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/doc/dox/zero.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 01:25:21 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue May 4 10:20:16 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/src/base_integer.cpp
==============================================================================
--- sandbox/xint/src/base_integer.cpp (original)
+++ sandbox/xint/src/base_integer.cpp 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -42,7 +42,7 @@
base_integer::base_integer(const base_integer& c, bool fixed): flags(0), data(0)
{
if (fixed) flags |= flag_fixedlength;
- _attach(c);
+ _attach(c, false);
}
base_integer::base_integer(size_t count, digit_t mask): flags(flag_fixedlength),
@@ -195,6 +195,14 @@
}
}
+void base_integer::_mark_movable() {
+ if (_is_unique()) flags |= flag_movable;
+}
+
+bool base_integer::_is_movable() const {
+ return ((flags & flag_movable) ? true : false);
+}
+
void base_integer::_swap(base_integer& other) {
flag_t tempflags = flags;
flags = other.flags;
@@ -206,12 +214,12 @@
}
void base_integer::_base_attach(data_t *new_data, flag_t setflags, size_t
- extra_allocation)
+ extra_allocation, bool is_movable)
{
#ifdef BOOST_XINT_USE_COPY_ON_WRITE
bool adopt=true;
#else
- bool adopt=(new_data && new_data->copies == 0);
+ bool adopt=(new_data && is_movable);
#endif
if (data != new_data || extra_allocation != 0) {
@@ -272,8 +280,10 @@
flags = setflags;
}
-void base_integer::_attach(const base_integer& copy) {
- _base_attach(copy.data, copy.flags);
+void base_integer::_attach(const base_integer& copy, bool movable) {
+ bool move = (copy._is_movable() || (movable && copy.data &&
+ copy.data->copies <= 1));
+ _base_attach(copy.data, copy.flags, 0, move);
if (data) _cleanup();
}
@@ -290,9 +300,9 @@
}
}
-integer base_integer::_to_integer() const {
+integer base_integer::_to_integer(bool treat_as_movable) const {
integer r;
- r._attach(*this);
+ r._attach(*this, treat_as_movable);
return r;
}
Modified: sandbox/xint/src/bit_manipulations.cpp
==============================================================================
--- sandbox/xint/src/bit_manipulations.cpp (original)
+++ sandbox/xint/src/bit_manipulations.cpp 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -145,7 +145,7 @@
void shift_left(base_integer& target, const base_integer& n, size_t byBits) {
if (byBits==0) {
- target._attach(n);
+ target._attach(n, false);
return;
}
@@ -178,12 +178,12 @@
}
answer._cleanup();
answer._set_negative(n._get_negative());
- target._attach(answer);
+ target._attach(answer, true);
}
void shift_right(base_integer& target, const base_integer& n, size_t byBits) {
if (byBits==0) {
- target._attach(n);
+ target._attach(n, false);
return;
}
@@ -211,7 +211,7 @@
}
answer._cleanup();
answer._set_negative(n._get_negative());
- target._attach(answer);
+ target._attach(answer, true);
}
} // namespace detail
Modified: sandbox/xint/src/convert.cpp
==============================================================================
--- sandbox/xint/src/convert.cpp (original)
+++ sandbox/xint/src/convert.cpp 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -80,7 +80,7 @@
// this function, I'll add it later.
const integer shift(base);
- integer::divide_t a(n._to_integer(), integer::zero());
+ integer::divide_t a(n._to_integer(false), integer::zero());
a.quotient._set_negative(false);
integer r;
@@ -141,7 +141,7 @@
}
r._set_negative(negate);
- target._attach(r);
+ target._attach(r, true);
}
void to_binary(xint::binary_t& target, const base_integer& n, size_t bits) {
@@ -176,7 +176,7 @@
*t++ = static_cast<digit_t>(bitqueue.pop(bits_per_digit));
r._cleanup();
- target._attach(r);
+ target._attach(r, true);
}
} // namespace detail
Modified: sandbox/xint/src/gcd.cpp
==============================================================================
--- sandbox/xint/src/gcd.cpp (original)
+++ sandbox/xint/src/gcd.cpp 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -64,9 +64,9 @@
if (num1._is_zero() && num2._is_zero()) {
target._set_unsigned(0);
} else if (num1._is_zero()) {
- target._attach(num2);
+ target._attach(num2, false);
} else if (num2._is_zero()) {
- target._attach(num1);
+ target._attach(num1, false);
} else {
temp_t n(num1), m(num2);
n._set_negative(false);
@@ -79,7 +79,7 @@
shift_right(m, m, k);
}
- gcd_core core(n._to_integer(), m._to_integer());
+ gcd_core core(n._to_integer(false), m._to_integer(false));
if (core.u3._is_zero()) {
shift_left(target, fixed_integer_any(1), k);
@@ -103,7 +103,7 @@
answer._set_negative(false);
divide(answer, remainder, answer, common);
- target._attach(answer);
+ target._attach(answer, true);
}
}
@@ -116,19 +116,19 @@
if (n._is_zero()) {
target._set_unsigned(0);
} else if (n._get_negative()) {
- integer _n(n._to_integer());
+ integer _n(n._to_integer(false));
_n._set_negative(false);
integer nn;
invmod(nn, _n, m);
if (nn._is_zero()) {
- target._attach(nn);
+ target._attach(nn, true);
} else {
nn._set_negative(true);
add(target, nn, m);
}
} else {
- integer nn(n._to_integer()), mm(m._to_integer());
+ integer nn(n._to_integer(false)), mm(m._to_integer(false));
if (nn.even() && mm.even()) {
// GCD != 1, no inverse possible.
target._set_unsigned(0);
@@ -143,7 +143,7 @@
return;
}
- target._attach(core.u1);
+ target._attach(core.u1, true);
}
}
Modified: sandbox/xint/src/integer.cpp
==============================================================================
--- sandbox/xint/src/integer.cpp (original)
+++ sandbox/xint/src/integer.cpp 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -40,7 +40,7 @@
\overload
*/
integer::integer(const integer& b) {
- _attach(b);
+ _attach(b, false);
}
/*! \brief Creates an integer from a nothrow_integer.
@@ -55,7 +55,7 @@
*/
integer::integer(const nothrow_integer& b) {
if (b.is_nan()) throw exceptions::not_a_number();
- _attach(b);
+ _attach(b, false);
}
/*! \brief Creates an integer from any fixed_integer type.
@@ -65,7 +65,7 @@
\overload
*/
integer::integer(const fixed_integer_any& b) {
- _attach(b);
+ _attach(b, false);
}
/*! \brief Create an integer from a string representation.
@@ -154,7 +154,7 @@
}
integer& integer::operator=(BOOST_XINT_COPY_ASSIGN_REF(integer) c) {
- _attach(c);
+ _attach(c, false);
return *this;
}
Modified: sandbox/xint/src/modular.cpp
==============================================================================
--- sandbox/xint/src/modular.cpp (original)
+++ sandbox/xint/src/modular.cpp 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -46,8 +46,8 @@
return;
}
- integer n(_n._to_integer()), e(_e._to_integer()), m(_m._to_integer()),
- answer(integer::one());
+ integer n(_n._to_integer(false)), e(_e._to_integer(false)),
+ m(_m._to_integer(false)), answer(integer::one());
bool neg=(n.sign() < 0 && e.odd());
// Montgomery's method is often noticeably faster, but only works if the
@@ -75,7 +75,7 @@
}
answer._set_negative(neg);
- target._attach(answer);
+ target._attach(answer, true);
}
} // namespace detail
Modified: sandbox/xint/src/nothrow_integer.cpp
==============================================================================
--- sandbox/xint/src/nothrow_integer.cpp (original)
+++ sandbox/xint/src/nothrow_integer.cpp 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -49,7 +49,7 @@
*/
nothrow_integer::nothrow_integer(const nothrow_integer& b) {
try {
- if (!b.is_nan()) _attach(b);
+ if (!b.is_nan()) _attach(b, false);
} catch (std::exception&) {
// Do nothing, automatically sets to Not-a-Number
}
@@ -67,7 +67,7 @@
*/
nothrow_integer::nothrow_integer(const integer& b) {
try {
- _attach(b);
+ _attach(b, false);
} catch (std::exception&) {
// Do nothing, automatically sets to Not-a-Number
}
@@ -81,7 +81,7 @@
*/
nothrow_integer::nothrow_integer(const fixed_integer_any& b) {
try {
- _attach(b);
+ _attach(b, false);
} catch (std::exception&) {
// Do nothing, automatically sets to Not-a-Number
}
@@ -90,7 +90,7 @@
//! \copydoc xint::integer::integer(const std::string&, size_t)
nothrow_integer::nothrow_integer(const std::string& str, size_t base) {
try {
- _attach(from_string(str, base));
+ _attach(from_string(str, base), true);
} catch (std::exception&) {
// Do nothing, automatically sets to Not-a-Number
}
@@ -169,7 +169,7 @@
nothrow_integer) c)
{
try {
- _attach(c);
+ _attach(c, false);
} catch (std::exception&) {
_base_attach(0);
}
Modified: sandbox/xint/src/powers.cpp
==============================================================================
--- sandbox/xint/src/powers.cpp (original)
+++ sandbox/xint/src/powers.cpp 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -77,7 +77,7 @@
*rp += static_cast<digit_t>(c);
r._cleanup();
- target._attach(r);
+ target._attach(r, true);
}
void pow(base_integer& target, const base_integer& n, const base_integer& e) {
@@ -117,7 +117,7 @@
}
answer._set_negative(neg);
- target._attach(answer);
+ target._attach(answer, true);
}
void factorial(base_integer& target, size_t n) {
@@ -132,7 +132,7 @@
nn._decrement();
}
- target._attach(answer);
+ target._attach(answer, true);
}
} // namespace detail
Modified: sandbox/xint/src/primitives.cpp
==============================================================================
--- sandbox/xint/src/primitives.cpp (original)
+++ sandbox/xint/src/primitives.cpp 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -65,7 +65,7 @@
if (n1._get_negative()) a._set_negative(true);
a._cleanup();
- target._attach(a);
+ target._attach(a, true);
}
void sub_subtract(base_integer& target, const base_integer& n1, const
@@ -109,11 +109,8 @@
if (neg1) a._set_negative(true);
a._cleanup();
- if (swap) {
- target._attach(neg_t(a));
- } else {
- target._attach(a);
- }
+ if (swap) a._toggle_negative();
+ target._attach(a, true);
}
void divide_by_single_digit(base_integer& qtarget, base_integer& rtarget, const
@@ -143,8 +140,8 @@
quotient._cleanup();
remainder._cleanup();
- qtarget._attach(quotient);
- rtarget._attach(remainder);
+ qtarget._attach(quotient, true);
+ rtarget._attach(remainder, true);
}
void sub_divide2(base_integer& qtarget, base_integer& rtarget, const
@@ -154,7 +151,7 @@
const digit_t *byDigits = d2._get_digits();
- integer quotient, r(d1._to_integer());
+ integer quotient, r(d1._to_integer(false));
size_t n=d2._get_length(), m=d1._get_length() - n;
size_t i=m+n, j=m;
@@ -197,8 +194,8 @@
quotient._cleanup();
- qtarget._attach(quotient);
- rtarget._attach(r);
+ qtarget._attach(quotient, true);
+ rtarget._attach(r, true);
}
void sub_divide(base_integer& qtarget, base_integer& rtarget, const
@@ -225,8 +222,8 @@
// Denormalization step. This requires a division by a single digit_t.
integer qq, rr;
divide_by_single_digit(qq, rr, r, _d);
- qtarget._attach(q);
- rtarget._attach(qq);
+ qtarget._attach(q, true);
+ rtarget._attach(qq, true);
} else {
sub_divide2(qtarget, rtarget, d1, d2);
}
@@ -234,10 +231,10 @@
void add(base_integer& target, const base_integer& n1, const base_integer& n2) {
if (n1._is_zero()) {
- target._attach(n2);
+ target._attach(n2, false);
return;
} else if (n2._is_zero()) {
- target._attach(n1);
+ target._attach(n1, false);
return;
} else if (n1._get_negative() != n2._get_negative()) {
sub_subtract(target, n1, neg_t(n2));
@@ -250,9 +247,9 @@
n2)
{
if (n1._is_zero()) {
- target._attach(neg_t(n2));
+ target._attach(neg_t(n2), false);
} else if (n2._is_zero()) {
- target._attach(n1);
+ target._attach(n1, false);
} else if (n1._get_negative() != n2._get_negative()) {
sub_add(target, n1, neg_t(n2));
} else {
@@ -317,7 +314,7 @@
answer._set_negative(n._get_negative() != by._get_negative());
answer._cleanup();
- target._attach(answer);
+ target._attach(answer, true);
}
void divide(base_integer& qtarget, base_integer& rtarget, const base_integer&
@@ -329,11 +326,11 @@
int comp=compare(d1, d2, true);
if (comp < 0) {
- qtarget._attach(integer::zero());
- rtarget._attach(d1);
+ qtarget._attach(integer::zero(), false);
+ rtarget._attach(d1, false);
} else if (comp == 0) {
- qtarget._attach(fixed_integer_any(sign1 != sign2 ? 1 : -1));
- rtarget._attach(integer::zero());
+ qtarget._attach(fixed_integer_any(sign1 != sign2 ? 1 : -1), true);
+ rtarget._attach(integer::zero(), false);
} else if (sign1 < 0 && sign2 < 0) {
sub_divide(qtarget, rtarget, neg_t(d1), neg_t(d2));
rtarget._set_negative(true);
Modified: sandbox/xint/src/roots.cpp
==============================================================================
--- sandbox/xint/src/roots.cpp (original)
+++ sandbox/xint/src/roots.cpp 2010-05-04 10:23:08 EDT (Tue, 04 May 2010)
@@ -24,7 +24,7 @@
namespace detail {
void sqrt(base_integer& target, const base_integer& nn) {
- if (nn._is_zero()) { target._attach(nn); return; }
+ if (nn._is_zero()) { target._attach(nn, false); return; }
if (nn._get_negative()) throw exceptions::cannot_represent("library cannot "
"represent imaginary values (tried to take sqrt of negative number)");
@@ -34,7 +34,7 @@
// two.
const size_t extra_bits = 1;
- integer n(nn._to_integer());
+ integer n(nn._to_integer(false));
n <<= (extra_bits * 2);
// Initial guess is half the length of n, in bits
@@ -50,7 +50,7 @@
// Remove half of the added bits.
guess >>= extra_bits;
- target._attach(guess);
+ target._attach(guess, true);
}
} // namespace detail
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk