Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r61695 - in sandbox/xint: . boost/xint doc doc/dox src test
From: chad.thecomfychair_at_[hidden]
Date: 2010-04-30 00:36:30


Author: chadnelson
Date: 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
New Revision: 61695
URL: http://svn.boost.org/trac/boost/changeset/61695

Log:
* Major redesign, separating xint::integer and xint::nothrow_integer,
eliminating the exception-blocking functions, and adding an
xint::fixed_integer template class.
* Major overhaul of many of the functions, making them more efficient and
fixing newly-discovered bugs.
* All test functions now use Boost.Test, many new tests added.
* All documentation moved to Doxygen format.
* Moved xint namespace into boost namespace.
* "Fixed" several small memory leaks. Most of them weren't real leaks, but
Boost.Test couldn't tell that.
* Many less-major changes.
Added:
   sandbox/xint/boost/xint/fixed_integer.hpp (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1base__divide__t-members.html (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1base__divide__t.html (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1base__variable__length__integer-members.html (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1base__variable__length__integer.html (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1base__variable__length__integer.png (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1bitqueue__t-members.html (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1bitqueue__t.html (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1neg__t-members.html (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1neg__t.html (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1neg__t.png (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1temp__t-members.html (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1temp__t.html (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1temp__t.png (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer-members.html (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer.html (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer.png (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer__any-members.html (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer__any.html (contents, props changed)
   sandbox/xint/doc/classboost_1_1xint_1_1fixed__integer__any.png (contents, props changed)
   sandbox/xint/doc/classdisable__boost__rv__ref.html (contents, props changed)
      - copied, changed from r61346, /sandbox/xint/doc/classboost_1_1xint_1_1invalid__digit-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 (contents, props changed)
   sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1fixed__integer_3_01_bits_01_4_01_4.html (contents, props changed)
   sandbox/xint/doc/complexity.html (contents, props changed)
      - copied, changed from r61346, /sandbox/xint/doc/pages.html
   sandbox/xint/doc/complexity_8dox.html
      - copied, changed from r61346, /sandbox/xint/doc/exceptions_8dox.html
   sandbox/xint/doc/dox/complexity.dox (contents, props changed)
   sandbox/xint/doc/dox/fixed_and_variable.dox (contents, props changed)
   sandbox/xint/doc/fixed__and__variable.html
      - copied, changed from r61346, /sandbox/xint/doc/dependencies.html
   sandbox/xint/doc/fixed__and__variable_8dox.html
      - copied, changed from r61346, /sandbox/xint/doc/r__insecure__default_8dox.html
   sandbox/xint/doc/fixed__integer_8hpp.html (contents, props changed)
   sandbox/xint/doc/fixed__integer_8hpp_source.html (contents, props changed)
   sandbox/xint/doc/functions_0x62.html (contents, props changed)
   sandbox/xint/doc/functions_0x63.html (contents, props changed)
   sandbox/xint/doc/functions_0x64.html (contents, props changed)
   sandbox/xint/doc/functions_0x65.html (contents, props changed)
   sandbox/xint/doc/functions_0x66.html (contents, props changed)
   sandbox/xint/doc/functions_0x67.html (contents, props changed)
   sandbox/xint/doc/functions_0x68.html (contents, props changed)
   sandbox/xint/doc/functions_0x69.html (contents, props changed)
   sandbox/xint/doc/functions_0x6c.html (contents, props changed)
   sandbox/xint/doc/functions_0x6d.html (contents, props changed)
   sandbox/xint/doc/functions_0x6e.html (contents, props changed)
   sandbox/xint/doc/functions_0x6f.html (contents, props changed)
   sandbox/xint/doc/functions_0x70.html (contents, props changed)
   sandbox/xint/doc/functions_0x71.html (contents, props changed)
   sandbox/xint/doc/functions_0x72.html (contents, props changed)
   sandbox/xint/doc/functions_0x73.html (contents, props changed)
   sandbox/xint/doc/functions_0x74.html (contents, props changed)
   sandbox/xint/doc/functions_0x7a.html (contents, props changed)
   sandbox/xint/doc/functions_0x7e.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x62.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x63.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x64.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x65.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x66.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x68.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x69.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x6d.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x6e.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x6f.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x70.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x71.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x72.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x73.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x74.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x7a.html (contents, props changed)
   sandbox/xint/doc/functions_func_0x7e.html (contents, props changed)
   sandbox/xint/doc/functions_rela.html (contents, props changed)
      - copied, changed from r61346, /sandbox/xint/doc/classboost_1_1xint_1_1divide__by__zero-members.html
   sandbox/xint/doc/namespacemembers_0x62.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x63.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x64.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x66.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x67.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x68.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x69.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x6c.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x6d.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x6e.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x6f.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x70.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x72.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x73.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x74.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_0x7a.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x62.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x63.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x64.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x66.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x67.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x68.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x69.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x6c.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x6d.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x6e.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x6f.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x70.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x72.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x73.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x74.html (contents, props changed)
   sandbox/xint/doc/namespacemembers_func_0x7a.html (contents, props changed)
   sandbox/xint/test/test_compare.cpp (contents, props changed)
   sandbox/xint/test/test_fixed.cpp (contents, props changed)
   sandbox/xint/test/test_misc.cpp (contents, props changed)
   sandbox/xint/test/test_modular.cpp (contents, props changed)
   sandbox/xint/test/test_powers.cpp (contents, props changed)
Removed:
   sandbox/xint/doc/blockable__bit__manipulations_8cpp.html
   sandbox/xint/doc/blockable__bit__manipulations_8cpp_source.html
   sandbox/xint/doc/blockable__compare_8cpp.html
   sandbox/xint/doc/blockable__compare_8cpp_source.html
   sandbox/xint/doc/blockable__convert_8cpp.html
   sandbox/xint/doc/blockable__convert_8cpp_source.html
   sandbox/xint/doc/blockable__gcd_8cpp.html
   sandbox/xint/doc/blockable__gcd_8cpp_source.html
   sandbox/xint/doc/blockable__integer_8cpp.html
   sandbox/xint/doc/blockable__integer_8cpp_source.html
   sandbox/xint/doc/blockable__misc_8cpp.html
   sandbox/xint/doc/blockable__misc_8cpp_source.html
   sandbox/xint/doc/blockable__modular_8cpp.html
   sandbox/xint/doc/blockable__modular_8cpp_source.html
   sandbox/xint/doc/blockable__operators_8cpp.html
   sandbox/xint/doc/blockable__operators_8cpp_source.html
   sandbox/xint/doc/blockable__powers_8cpp.html
   sandbox/xint/doc/blockable__powers_8cpp_source.html
   sandbox/xint/doc/blockable__primes_8cpp.html
   sandbox/xint/doc/blockable__primes_8cpp_source.html
   sandbox/xint/doc/blockable__primitives_8cpp.html
   sandbox/xint/doc/blockable__primitives_8cpp_source.html
   sandbox/xint/doc/blockable__random_8cpp.html
   sandbox/xint/doc/blockable__random_8cpp_source.html
   sandbox/xint/doc/blockable__roots_8cpp.html
   sandbox/xint/doc/blockable__roots_8cpp_source.html
   sandbox/xint/doc/classboost_1_1xint_1_1blockable_1_1integer-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1blockable_1_1integer.html
   sandbox/xint/doc/classboost_1_1xint_1_1blockable_1_1integer.png
   sandbox/xint/doc/classboost_1_1xint_1_1cannot__represent-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1cannot__represent.html
   sandbox/xint/doc/classboost_1_1xint_1_1core_1_1base__integer-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1core_1_1base__integer.html
   sandbox/xint/doc/classboost_1_1xint_1_1core_1_1base__integer.png
   sandbox/xint/doc/classboost_1_1xint_1_1core_1_1integer-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1core_1_1integer.html
   sandbox/xint/doc/classboost_1_1xint_1_1core_1_1integer.png
   sandbox/xint/doc/classboost_1_1xint_1_1divide__by__zero-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1divide__by__zero.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1cannot__represent-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1cannot__represent.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1divide__by__zero-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1divide__by__zero.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1invalid__argument-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1invalid__argument.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1invalid__base-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1invalid__base.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1invalid__digit-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1invalid__digit.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1invalid__modulus-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1invalid__modulus.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1no__strong__random-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1no__strong__random.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1not__a__number-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1not__a__number.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1overflow__error-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1overflow__error.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1too__big-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1exception_1_1too__big.html
   sandbox/xint/doc/classboost_1_1xint_1_1invalid__base-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1invalid__base.html
   sandbox/xint/doc/classboost_1_1xint_1_1invalid__digit-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1invalid__digit.html
   sandbox/xint/doc/classboost_1_1xint_1_1invalid__modulus-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1invalid__modulus.html
   sandbox/xint/doc/classboost_1_1xint_1_1no__strong__random-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1no__strong__random.html
   sandbox/xint/doc/classboost_1_1xint_1_1not__a__number-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1not__a__number.html
   sandbox/xint/doc/classboost_1_1xint_1_1overflow__error-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1overflow__error.html
   sandbox/xint/doc/classboost_1_1xint_1_1too__big-members.html
   sandbox/xint/doc/classboost_1_1xint_1_1too__big.html
   sandbox/xint/doc/exception__blocker_8cpp.html
   sandbox/xint/doc/exception__blocker_8cpp_source.html
   sandbox/xint/doc/namespaceboost_1_1xint_1_1blockable.html
   sandbox/xint/doc/namespaceboost_1_1xint_1_1core.html
   sandbox/xint/doc/namespaceboost_1_1xint_1_1exception.html
   sandbox/xint/doc/pages.html
   sandbox/xint/doc/structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits-members.html
   sandbox/xint/doc/structboost_1_1xint_1_1detail_1_1data__t_1_1_quick_digits.html
   sandbox/xint/doc/structboost_1_1xint_1_1detail_1_1token.html
   sandbox/xint/doc/todo.html
   sandbox/xint/doc/xint__data__t_8hpp.html
   sandbox/xint/doc/xint__data__t_8hpp_source.html
   sandbox/xint/doc/xint__monty_8hpp.html
   sandbox/xint/doc/xint__monty_8hpp_source.html
   sandbox/xint/doc/xint__test_8hpp.html
   sandbox/xint/doc/xint__test_8hpp_source.html
Binary files modified:
   sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1base__integer.png
   sandbox/xint/doc/classboost_1_1xint_1_1integer.png
   sandbox/xint/doc/classboost_1_1xint_1_1nothrow__integer.png
Text files modified:
   sandbox/xint/README.TXT | 2
   sandbox/xint/boost/xint/integer.hpp | 154 -
   sandbox/xint/boost/xint/internals.hpp | 445 ++++
   sandbox/xint/boost/xint/nothrow_integer.hpp | 83
   sandbox/xint/boost/xint/random.hpp | 1
   sandbox/xint/boost/xint/xint.hpp | 1
   sandbox/xint/doc/acknowledgements.html | 3
   sandbox/xint/doc/acknowledgements_8dox.html | 3
   sandbox/xint/doc/annotated.html | 16
   sandbox/xint/doc/base__integer_8cpp.html | 5
   sandbox/xint/doc/base__integer_8cpp_source.html | 597 +++--
   sandbox/xint/doc/bit__manipulations_8cpp.html | 38
   sandbox/xint/doc/bit__manipulations_8cpp_source.html | 369 ++-
   sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1base__integer-members.html | 47
   sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1base__integer.html | 608 +++++-
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent-members.html | 3
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent.html | 7
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero-members.html | 3
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html | 7
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument-members.html | 3
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument.html | 7
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base-members.html | 3
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base.html | 7
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit-members.html | 3
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit.html | 7
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus-members.html | 3
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html | 7
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random-members.html | 3
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random.html | 7
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number-members.html | 3
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number.html | 7
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error-members.html | 3
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error.html | 7
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big-members.html | 3
   sandbox/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big.html | 7
   sandbox/xint/doc/classboost_1_1xint_1_1integer-members.html | 58
   sandbox/xint/doc/classboost_1_1xint_1_1integer.html | 378 +++-
   sandbox/xint/doc/classboost_1_1xint_1_1nothrow__integer-members.html | 61
   sandbox/xint/doc/classboost_1_1xint_1_1nothrow__integer.html | 378 +++
   sandbox/xint/doc/classboost_1_1xint_1_1strong__random__generator-members.html | 3
   sandbox/xint/doc/classboost_1_1xint_1_1strong__random__generator.html | 19
   sandbox/xint/doc/classdisable__boost__rv__ref.html | 20
   sandbox/xint/doc/classes.html | 22
   sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4-members.html | 3
   sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4.html | 101
   sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4-members.html | 3
   sandbox/xint/doc/classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4.html | 101
   sandbox/xint/doc/compare_8cpp.html | 22
   sandbox/xint/doc/compare_8cpp_source.html | 116
   sandbox/xint/doc/complexity.html | 14
   sandbox/xint/doc/complexity_8dox.html | 7
   sandbox/xint/doc/convert_8cpp.html | 28
   sandbox/xint/doc/convert_8cpp_source.html | 331 ++-
   sandbox/xint/doc/copyonwrite_8dox.html | 3
   sandbox/xint/doc/cow.html | 5
   sandbox/xint/doc/data__t_8cpp.html | 37
   sandbox/xint/doc/data__t_8cpp_source.html | 260 +-
   sandbox/xint/doc/dependencies.html | 9
   sandbox/xint/doc/dependencies_8dox.html | 3
   sandbox/xint/doc/dox/Doxyfile | 2
   sandbox/xint/doc/dox/copyonwrite.dox | 8
   sandbox/xint/doc/dox/dependencies.dox | 8
   sandbox/xint/doc/dox/history.dox | 21
   sandbox/xint/doc/dox/index.dox | 27
   sandbox/xint/doc/dox/r_cow.dox | 13
   sandbox/xint/doc/dox/rationale.dox | 2
   sandbox/xint/doc/dox/threadsafe.dox | 4
   sandbox/xint/doc/ex__fibonacci.html | 3
   sandbox/xint/doc/ex__fibonacci_8dox.html | 3
   sandbox/xint/doc/exceptions.html | 3
   sandbox/xint/doc/exceptions_8dox.html | 3
   sandbox/xint/doc/exceptions_8hpp.html | 11
   sandbox/xint/doc/exceptions_8hpp_source.html | 65
   sandbox/xint/doc/files.html | 4
   sandbox/xint/doc/fixed__and__variable.html | 19
   sandbox/xint/doc/fixed__and__variable_8dox.html | 7
   sandbox/xint/doc/functions.html | 484 ----
   sandbox/xint/doc/functions_func.html | 347 ---
   sandbox/xint/doc/functions_rela.html | 28
   sandbox/xint/doc/functions_type.html | 12
   sandbox/xint/doc/functions_vars.html | 108
   sandbox/xint/doc/gcd_8cpp.html | 17
   sandbox/xint/doc/gcd_8cpp_source.html | 204 +
   sandbox/xint/doc/globals.html | 30
   sandbox/xint/doc/globals_defs.html | 30
   sandbox/xint/doc/globals_vars.html | 3
   sandbox/xint/doc/hierarchy.html | 20
   sandbox/xint/doc/history.html | 17
   sandbox/xint/doc/history_8dox.html | 3
   sandbox/xint/doc/index.html | 10
   sandbox/xint/doc/index_8dox.html | 3
   sandbox/xint/doc/integer_8cpp.html | 3
   sandbox/xint/doc/integer_8cpp_source.html | 218 +-
   sandbox/xint/doc/integer_8hpp.html | 151
   sandbox/xint/doc/integer_8hpp_source.html | 453 ++--
   sandbox/xint/doc/internals_8hpp.html | 207 ++
   sandbox/xint/doc/internals_8hpp_source.html | 537 ++++-
   sandbox/xint/doc/misc_8cpp.html | 8
   sandbox/xint/doc/misc_8cpp_source.html | 20
   sandbox/xint/doc/modular_8cpp.html | 14
   sandbox/xint/doc/modular_8cpp_source.html | 138
   sandbox/xint/doc/monty_8cpp.html | 19
   sandbox/xint/doc/monty_8cpp_source.html | 326 +-
   sandbox/xint/doc/monty_8hpp.html | 15
   sandbox/xint/doc/monty_8hpp_source.html | 3
   sandbox/xint/doc/namespaceboost.html | 5
   sandbox/xint/doc/namespaceboost_1_1xint.html | 3644 +++++++++++++++++++++++++++++++++------
   sandbox/xint/doc/namespaceboost_1_1xint_1_1detail.html | 1439 +++++++++++++++
   sandbox/xint/doc/namespaceboost_1_1xint_1_1exceptions.html | 11
   sandbox/xint/doc/namespacemembers.html | 361 ---
   sandbox/xint/doc/namespacemembers_func.html | 327 ---
   sandbox/xint/doc/namespacemembers_type.html | 6
   sandbox/xint/doc/namespacemembers_vars.html | 6
   sandbox/xint/doc/namespaces.html | 3
   sandbox/xint/doc/namespacestd.html | 4
   sandbox/xint/doc/nan.html | 3
   sandbox/xint/doc/nan_8dox.html | 3
   sandbox/xint/doc/nothrow__bit__manipulations_8cpp.html | 13
   sandbox/xint/doc/nothrow__bit__manipulations_8cpp_source.html | 161
   sandbox/xint/doc/nothrow__compare_8cpp.html | 8
   sandbox/xint/doc/nothrow__compare_8cpp_source.html | 73
   sandbox/xint/doc/nothrow__convert_8cpp.html | 9
   sandbox/xint/doc/nothrow__convert_8cpp_source.html | 62
   sandbox/xint/doc/nothrow__gcd_8cpp.html | 3
   sandbox/xint/doc/nothrow__gcd_8cpp_source.html | 41
   sandbox/xint/doc/nothrow__integer_8cpp.html | 3
   sandbox/xint/doc/nothrow__integer_8cpp_source.html | 304 +-
   sandbox/xint/doc/nothrow__integer_8hpp.html | 104
   sandbox/xint/doc/nothrow__integer_8hpp_source.html | 541 +++--
   sandbox/xint/doc/nothrow__misc_8cpp.html | 3
   sandbox/xint/doc/nothrow__misc_8cpp_source.html | 7
   sandbox/xint/doc/nothrow__modular_8cpp.html | 7
   sandbox/xint/doc/nothrow__modular_8cpp_source.html | 97
   sandbox/xint/doc/nothrow__operators_8cpp.html | 13
   sandbox/xint/doc/nothrow__operators_8cpp_source.html | 29
   sandbox/xint/doc/nothrow__powers_8cpp.html | 7
   sandbox/xint/doc/nothrow__powers_8cpp_source.html | 61
   sandbox/xint/doc/nothrow__primes_8cpp.html | 3
   sandbox/xint/doc/nothrow__primes_8cpp_source.html | 22
   sandbox/xint/doc/nothrow__primitives_8cpp.html | 12
   sandbox/xint/doc/nothrow__primitives_8cpp_source.html | 131
   sandbox/xint/doc/nothrow__random_8cpp.html | 3
   sandbox/xint/doc/nothrow__random_8cpp_source.html | 5
   sandbox/xint/doc/nothrow__roots_8cpp.html | 3
   sandbox/xint/doc/nothrow__roots_8cpp_source.html | 23
   sandbox/xint/doc/operators_8cpp.html | 14
   sandbox/xint/doc/operators_8cpp_source.html | 28
   sandbox/xint/doc/powers_8cpp.html | 19
   sandbox/xint/doc/powers_8cpp_source.html | 247 +-
   sandbox/xint/doc/primes.html | 3
   sandbox/xint/doc/primes_8cpp.html | 4
   sandbox/xint/doc/primes_8cpp_source.html | 212 +-
   sandbox/xint/doc/primes_8dox.html | 3
   sandbox/xint/doc/primitives_8cpp.html | 29
   sandbox/xint/doc/primitives_8cpp_source.html | 604 ++++--
   sandbox/xint/doc/r__core.html | 3
   sandbox/xint/doc/r__core_8dox.html | 3
   sandbox/xint/doc/r__cow.html | 7
   sandbox/xint/doc/r__cow_8dox.html | 3
   sandbox/xint/doc/r__default__necessary.html | 3
   sandbox/xint/doc/r__default__necessary_8dox.html | 3
   sandbox/xint/doc/r__exception__blocking.html | 3
   sandbox/xint/doc/r__exception__blocking_8dox.html | 3
   sandbox/xint/doc/r__insecure__default.html | 3
   sandbox/xint/doc/r__insecure__default_8dox.html | 3
   sandbox/xint/doc/r__interface.html | 3
   sandbox/xint/doc/r__interface_8dox.html | 3
   sandbox/xint/doc/r__interface__design__only.html | 3
   sandbox/xint/doc/r__interface__design__only_8dox.html | 3
   sandbox/xint/doc/r__nan.html | 3
   sandbox/xint/doc/r__nan_8dox.html | 3
   sandbox/xint/doc/r__negzero.html | 3
   sandbox/xint/doc/r__negzero_8dox.html | 3
   sandbox/xint/doc/r__random.html | 3
   sandbox/xint/doc/r__random_8dox.html | 3
   sandbox/xint/doc/r__shared__ptr.html | 3
   sandbox/xint/doc/r__shared__ptr_8dox.html | 3
   sandbox/xint/doc/random.html | 3
   sandbox/xint/doc/random_8cpp.html | 5
   sandbox/xint/doc/random_8cpp_source.html | 371 ++-
   sandbox/xint/doc/random_8dox.html | 3
   sandbox/xint/doc/random_8hpp.html | 11
   sandbox/xint/doc/random_8hpp_source.html | 66
   sandbox/xint/doc/rationale.html | 5
   sandbox/xint/doc/rationale_8dox.html | 3
   sandbox/xint/doc/roots_8cpp.html | 9
   sandbox/xint/doc/roots_8cpp_source.html | 68
   sandbox/xint/doc/securemode.html | 3
   sandbox/xint/doc/securemode_8dox.html | 3
   sandbox/xint/doc/structboost_1_1xint_1_1detail_1_1base__random__generator-members.html | 4
   sandbox/xint/doc/structboost_1_1xint_1_1detail_1_1base__random__generator.html | 24
   sandbox/xint/doc/structboost_1_1xint_1_1detail_1_1data__t-members.html | 14
   sandbox/xint/doc/structboost_1_1xint_1_1detail_1_1data__t.html | 71
   sandbox/xint/doc/structboost_1_1xint_1_1detail_1_1random__generator-members.html | 4
   sandbox/xint/doc/structboost_1_1xint_1_1detail_1_1random__generator.html | 21
   sandbox/xint/doc/testing.html | 3
   sandbox/xint/doc/testing_8dox.html | 3
   sandbox/xint/doc/threadsafe.html | 5
   sandbox/xint/doc/threadsafe_8dox.html | 3
   sandbox/xint/doc/xint_8hpp.html | 3
   sandbox/xint/doc/xint_8hpp_source.html | 12
   sandbox/xint/doc/zero.html | 5
   sandbox/xint/doc/zero_8dox.html | 3
   sandbox/xint/src/base_integer.cpp | 411 ++-
   sandbox/xint/src/bit_manipulations.cpp | 336 ++-
   sandbox/xint/src/compare.cpp | 96
   sandbox/xint/src/convert.cpp | 292 +-
   sandbox/xint/src/data_t.cpp | 170 +
   sandbox/xint/src/gcd.cpp | 159 +
   sandbox/xint/src/integer.cpp | 102
   sandbox/xint/src/misc.cpp | 20
   sandbox/xint/src/modular.cpp | 109
   sandbox/xint/src/monty.cpp | 7
   sandbox/xint/src/nothrow_bit_manipulations.cpp | 36
   sandbox/xint/src/nothrow_compare.cpp | 26
   sandbox/xint/src/nothrow_convert.cpp | 27
   sandbox/xint/src/nothrow_gcd.cpp | 10
   sandbox/xint/src/nothrow_integer.cpp | 91
   sandbox/xint/src/nothrow_misc.cpp | 4
   sandbox/xint/src/nothrow_modular.cpp | 24
   sandbox/xint/src/nothrow_operators.cpp | 4
   sandbox/xint/src/nothrow_powers.cpp | 16
   sandbox/xint/src/nothrow_primes.cpp | 5
   sandbox/xint/src/nothrow_primitives.cpp | 52
   sandbox/xint/src/nothrow_random.cpp | 2
   sandbox/xint/src/nothrow_roots.cpp | 6
   sandbox/xint/src/operators.cpp | 3
   sandbox/xint/src/powers.cpp | 204 +
   sandbox/xint/src/primes.cpp | 16
   sandbox/xint/src/primitives.cpp | 529 +++-
   sandbox/xint/src/random.cpp | 42
   sandbox/xint/src/roots.cpp | 57
   sandbox/xint/test/Jamroot | 2
   sandbox/xint/test/test_add.cpp | 46
   sandbox/xint/test/test_bit_manipulations.cpp | 135
   sandbox/xint/test/test_convert.cpp | 95
   sandbox/xint/test/test_divide.cpp | 36
   sandbox/xint/test/test_main.cpp | 8
   sandbox/xint/test/test_monty.cpp | 87
   sandbox/xint/test/test_multiply.cpp | 51
   sandbox/xint/test/test_streams.cpp | 3
   241 files changed, 13382 insertions(+), 7540 deletions(-)

Modified: sandbox/xint/README.TXT
==============================================================================
--- sandbox/xint/README.TXT (original)
+++ sandbox/xint/README.TXT 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -7,7 +7,7 @@
 
 Notes:
 
-The code has been fully tested under Windows (MSVC 8 SP1) and Linux (GCC 4.4.1).
+The code has been fully tested under Windows (MSVC 8 SP1) and Linux (GCC 4.4.3).
 
 Auto-linking and Windows DLLs are not yet supported. The code will compile under
 Windows with no problem, but I haven't tried it through the bjam system there

Added: sandbox/xint/boost/xint/fixed_integer.hpp
==============================================================================
--- (empty file)
+++ sandbox/xint/boost/xint/fixed_integer.hpp 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -0,0 +1,898 @@
+
+/*
+ The Extended Integer (XInt) Library
+ A fast, portable C++ library for multi-precision integer math
+ Copyright 2010 by Chad Nelson
+
+ Distributed under the Boost Software License, Version 1.0.
+ See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt
+
+ See http://www.boost.org/libs/xint for library home page.
+*/
+
+/*! \file
+ \brief Declares the fixed-size integer type.
+*/
+
+#ifndef BOOST_INCLUDED_XINT_FIXED_INTEGER_HPP
+#define BOOST_INCLUDED_XINT_FIXED_INTEGER_HPP
+
+#include <boost/shared_ptr.hpp>
+#include "internals.hpp"
+#include "exceptions.hpp"
+
+namespace boost {
+namespace xint {
+
+/*! \brief A fixed-size integer type.
+
+\tparam Bits The number of bits that the magnitude of the %fixed_integer type
+should be limited to. This can be any number greater than zero.
+
+%fixed_integer types are more processor-efficient than variable-sized %integers,
+because they seldom need to do any allocation once they're created. However,
+they can be less memory-efficient for holding smaller values. They also silently
+discard the upper bits on any value that is too big for them, which can bite the
+unwary.
+
+\note The number of bits refers only to the unsigned magnitude of the number.
+The sign is stored separately. This means that, for example, a \c
+fixed_integer<8> has a range of -255 to +255, not -128 to +127 like an \c
+int8_t.
+
+\par
+Also note that when calculating with %fixed_integer types, the number does not
+"wrap around" when it exceeds the type's size like the built-in signed %integer
+types do. It is truncated to the lower bits instead. For example,
+<code>fixed_integer<8>(-255) - 1</code> and <code>fixed_integer<8>(255) +
+1</code> will both be zero. However, the sign (on non-zero answers) is
+preserved, so <code>fixed_integer<8>(-255) - 2</code> will be -1.
+*/
+template <size_t Bits>
+class fixed_integer: public fixed_integer_any {
+ public:
+ //! \name Constructors & Destructors
+ //!@{
+ fixed_integer();
+ fixed_integer(const fixed_integer<Bits>& b);
+ explicit fixed_integer(const base_integer& b);
+ explicit fixed_integer(const std::string& str, size_t base=10);
+ template <typename T> fixed_integer(const T& n,
+ typename boost::enable_if<boost::is_integral<T> >::type* = 0,
+ typename boost::enable_if<boost::is_signed<T> >::type* = 0);
+ template <typename T> fixed_integer(const T& n,
+ typename boost::enable_if<boost::is_integral<T> >::type* = 0,
+ typename boost::enable_if<boost::is_unsigned<T> >::type* = 0);
+ //!@}
+
+ //! \name Miscellaneous Functions
+ //!@{
+ bool odd() const;
+ bool even() const;
+ int sign(bool signed_zero=false) const;
+ size_t hex_digits() const;
+ //!@}
+
+ /*! \name Mathematical and Bitwise Operators
+ \brief These operate exactly like their counterparts for the built-in
+ %integer types.
+ */
+ //!@{
+ fixed_integer<Bits>& operator=(const fixed_integer<Bits>& c) { _attach(c);
+ return *this; }
+
+ bool operator!() const { return _is_zero(); }
+ fixed_integer<Bits> operator-() const { return negate(*this); }
+ fixed_integer<Bits>& operator+() { return *this; }
+ const fixed_integer<Bits>& operator+() const { return *this; }
+ fixed_integer<Bits> operator~() const;
+
+ fixed_integer<Bits>& operator+=(const fixed_integer_any& b);
+ fixed_integer<Bits>& operator-=(const fixed_integer_any& b);
+ fixed_integer<Bits>& operator*=(const fixed_integer_any& b);
+ fixed_integer<Bits>& operator/=(const fixed_integer_any& b);
+ fixed_integer<Bits>& operator%=(const fixed_integer_any& b);
+
+ fixed_integer<Bits>& operator++(); //!< \details Preincrement operator
+ fixed_integer<Bits>& operator--(); //!< \details Predecrement operator
+ fixed_integer<Bits> operator++(int); //!< \details Postincrement operator -- not recommended, inefficient
+ fixed_integer<Bits> operator--(int); //!< \details Postdecrement operator -- not recommended, inefficient
+
+ fixed_integer<Bits>& operator&=(const fixed_integer_any& n);
+ fixed_integer<Bits>& operator|=(const fixed_integer_any& n);
+ fixed_integer<Bits>& operator^=(const fixed_integer_any& n);
+ fixed_integer<Bits> operator<<(size_t shift) const;
+ fixed_integer<Bits> operator>>(size_t shift) const;
+ fixed_integer<Bits>& operator<<=(size_t shift);
+ fixed_integer<Bits>& operator>>=(size_t shift);
+ //!@}
+
+ typedef base_divide_t<fixed_integer<Bits> > divide_t;
+
+ private:
+ static const size_t _c_digits;
+ static const detail::digit_t _c_mask;
+ static boost::shared_ptr<detail::data_t> preallocated_zero;
+};
+
+template <size_t Bits> const size_t fixed_integer<Bits>::_c_digits =
+ (Bits + detail::bits_per_digit - 1) / detail::bits_per_digit;
+template <size_t Bits> const detail::digit_t fixed_integer<Bits>::_c_mask =
+ ((Bits % detail::bits_per_digit) == 0) ? detail::digit_mask
+ : ((detail::digit_t(1) << (Bits % detail::bits_per_digit)) - 1);
+template <size_t Bits> boost::shared_ptr<detail::data_t>
+ fixed_integer<Bits>::preallocated_zero(detail::allocate_fixed_zero(
+ fixed_integer<Bits>::_c_mask, fixed_integer<Bits>::_c_digits),
+ detail::deallocate);
+
+//! \name Mathematical primitives
+//!@{
+template <size_t Bits> fixed_integer<Bits> abs(const fixed_integer<Bits>& n);
+template <size_t Bits> fixed_integer<Bits> negate(const fixed_integer<Bits>& n);
+template <size_t Bits> fixed_integer<Bits> add(const fixed_integer<Bits>& n,
+ const fixed_integer<Bits>& addend);
+template <size_t Bits> fixed_integer<Bits> subtract(const fixed_integer<Bits>&
+ n, const fixed_integer<Bits>& subtrahend);
+template <size_t Bits> fixed_integer<Bits> multiply(const fixed_integer<Bits>&
+ n, const fixed_integer<Bits>& multiplicand);
+template <size_t Bits> fixed_integer<Bits> divide(const fixed_integer<Bits>&
+ dividend, const fixed_integer<Bits>& divisor);
+template <size_t Bits> typename fixed_integer<Bits>::divide_t divide_r(const
+ fixed_integer<Bits>& dividend, const fixed_integer<Bits>& divisor);
+//!@}
+
+//! \name Powers and roots
+//!@{
+template <size_t Bits>
+fixed_integer<Bits> sqr(const fixed_integer<Bits>& n);
+template <size_t Bits>
+fixed_integer<Bits> pow(const fixed_integer<Bits>& n, const
+ fixed_integer_any& exponent);
+template <size_t Bits>
+fixed_integer<Bits> fixed_pow2(size_t exponent);
+template <size_t Bits>
+fixed_integer<Bits> fixed_factorial(size_t n);
+template <size_t Bits>
+fixed_integer<Bits> sqrt(const fixed_integer<Bits>& n);
+//!@}
+
+//! \name Conversion functions
+//!@{
+template <size_t Bits, typename T> T to(const fixed_integer<Bits>& n);
+std::string to_string(const fixed_integer_any& n, size_t base=10, bool
+ uppercase=false);
+template <size_t Bits> fixed_integer<Bits> fixed_from_string(const
+ std::string& str, size_t base=10);
+template <size_t Bits> xint::binary_t to_binary(const fixed_integer_any& n,
+ size_t bits=0);
+template <size_t Bits> fixed_integer<Bits> fixed_from_binary(const
+ xint::binary_t& s, size_t bits=0);
+//!@}
+
+//! \name Bit-manipulation functions
+//!@{
+template <size_t Bits>
+bool getbit(const fixed_integer<Bits>& n, size_t bit);
+template <size_t Bits>
+void setbit(fixed_integer<Bits>& n, size_t bit);
+template <size_t Bits>
+void clearbit(fixed_integer<Bits>& n, size_t bit);
+template <size_t Bits>
+size_t lowestbit(const fixed_integer<Bits>& n, size_t valueIfZero=0);
+template <size_t Bits>
+size_t highestbit(const fixed_integer<Bits>& n, size_t valueIfZero=0);
+template <size_t Bits>
+fixed_integer<Bits> bitwise_and(const fixed_integer<Bits>& n1, const
+ fixed_integer<Bits>& n2);
+template <size_t Bits>
+fixed_integer<Bits> bitwise_or (const fixed_integer<Bits>& n1, const
+ fixed_integer<Bits>& n2);
+template <size_t Bits>
+fixed_integer<Bits> bitwise_xor(const fixed_integer<Bits>& n1, const
+ fixed_integer<Bits>& n2);
+template <size_t Bits>
+fixed_integer<Bits> shift(const fixed_integer<Bits>& n, int byBits);
+template <size_t Bits>
+fixed_integer<Bits> shift_left(const fixed_integer<Bits>& n, size_t byBits);
+template <size_t Bits>
+fixed_integer<Bits> shift_right(const fixed_integer<Bits>& n, size_t byBits);
+//!@}
+
+/*! \name Modular math functions
+
+A common reason to use a large-integer library is to implement public-key
+encryption, and the algorithms for such encryption often use modular math.
+*/
+//!@{
+template <size_t Bits>
+fixed_integer<Bits> mod(const fixed_integer<Bits>& n, const fixed_integer<Bits>&
+ modBy);
+template <size_t Bits>
+fixed_integer<Bits> mulmod(const fixed_integer<Bits>& n, const
+ fixed_integer<Bits>& by, const fixed_integer<Bits>& modulus);
+template <size_t Bits>
+fixed_integer<Bits> sqrmod(const fixed_integer<Bits>& n, const
+ fixed_integer<Bits>& modulus);
+template <size_t Bits>
+fixed_integer<Bits> powmod(const fixed_integer<Bits>& n, const
+ fixed_integer<Bits>& exponent, const fixed_integer<Bits>& modulus,
+ bool noMontgomery=false);
+template <size_t Bits>
+fixed_integer<Bits> invmod(const fixed_integer<Bits>& n, const
+ fixed_integer<Bits>& modulus);
+//!@}
+
+//! \name Random number functions
+//!@{
+template <size_t Bits>
+fixed_integer<Bits> fixed_random_by_size(size_t sizeInBits, bool highBitOn =
+ false, bool lowBitOn = false, bool canBeNegative = false);
+//!@}
+
+//! \name Prime number functions
+//!@{
+int is_prime(const fixed_integer_any& n, callback_t callback = no_callback);
+template <size_t Bits>
+fixed_integer<Bits> fixed_random_prime(size_t sizeInBits, callback_t callback =
+ no_callback);
+//!@}
+
+/*! \name Operators
+
+ These act exactly the same as for the built-in %integer types.
+*/
+//!@{
+#define BOOST_XINT_NFIXED typename boost::disable_if<boost::is_base_of<\
+ fixed_integer_any, T>, fixed_integer<Bits> >::type
+
+#define BOOST_XINT_FIXED_BINARY_FN(name, body) \
+template <size_t Bits> \
+fixed_integer<Bits> name(const fixed_integer<Bits>& op1, \
+ const fixed_integer<Bits>& op2) \
+{ \
+ fixed_integer<Bits> r; \
+ body(r, op1, op2); \
+ return BOOST_XINT_MOVE(r); \
+} \
+\
+template <size_t Bits, typename T> \
+BOOST_XINT_NFIXED name(const fixed_integer<Bits>& n1, const T& n2) { \
+ fixed_integer<Bits> r; \
+ body(r, n1, fixed_integer_any(n2)); \
+ return BOOST_XINT_MOVE(r); \
+} \
+\
+template <typename T, size_t Bits> \
+BOOST_XINT_NFIXED name(const T& n1, const fixed_integer<Bits>& n2) { \
+ fixed_integer<Bits> r; \
+ body(r, fixed_integer_any(n1), n2); \
+ return BOOST_XINT_MOVE(r); \
+}
+
+BOOST_XINT_FIXED_BINARY_FN(operator+, detail::add)
+BOOST_XINT_FIXED_BINARY_FN(operator-, detail::subtract)
+BOOST_XINT_FIXED_BINARY_FN(operator*, detail::multiply)
+BOOST_XINT_FIXED_BINARY_FN(operator/, detail::divide)
+BOOST_XINT_FIXED_BINARY_FN(operator%, detail::mod)
+BOOST_XINT_FIXED_BINARY_FN(operator&, detail::bitwise_and)
+BOOST_XINT_FIXED_BINARY_FN(operator|, detail::bitwise_or)
+BOOST_XINT_FIXED_BINARY_FN(operator^, detail::bitwise_xor)
+
+bool operator==(const fixed_integer_any &num1, const fixed_integer_any &num2);
+bool operator!=(const fixed_integer_any& num1, const fixed_integer_any& num2);
+bool operator<(const fixed_integer_any& num1, const fixed_integer_any& num2);
+bool operator>(const fixed_integer_any& num1, const fixed_integer_any& num2);
+bool operator<=(const fixed_integer_any& num1, const fixed_integer_any& num2);
+bool operator>=(const fixed_integer_any& num1, const fixed_integer_any& num2);
+//!@}
+
+//! \name Miscellaneous functions
+//!@{
+int compare(const fixed_integer_any& c1, const fixed_integer_any& c2, bool
+ ignoresign=false);
+size_t log2(const fixed_integer_any& n);
+template <size_t Bits>
+fixed_integer<Bits> gcd(const fixed_integer<Bits>& num1, const
+ fixed_integer<Bits>& num2);
+template <size_t Bits>
+fixed_integer<Bits> lcm(const fixed_integer<Bits>& num1, const
+ fixed_integer<Bits>& num2);
+//!@}
+
+////////////////////////////////////////////////////////////////////////////////
+// fixed_integer member function definitions
+
+//! \brief Creates a new fixed_integer with an initial value of zero.
+template <size_t Bits>
+fixed_integer<Bits>::fixed_integer(): fixed_integer_any(preallocated_zero.get())
+{ }
+
+/*! \brief Creates a copy of an existing fixed_integer with the same size.
+
+\param[in] b An existing integer of the same size.
+
+\overload
+*/
+template <size_t Bits>
+fixed_integer<Bits>::fixed_integer(const fixed_integer<Bits>& b):
+ fixed_integer_any(b) { }
+
+/*! \brief Converts an existing xint type.
+
+\param[in] b An existing integer, nothrow_integer, or fixed_integer of a
+different size.
+
+\overload
+
+\note If the number represented by the parameter is too large to fit into the
+fixed_integer, it is silently truncated, and only the lower bits are preserved.
+*/
+template <size_t Bits>
+fixed_integer<Bits>::fixed_integer(const base_integer& b):
+ fixed_integer_any(preallocated_zero.get())
+{
+ if (b._is_nan()) throw exceptions::not_a_number();
+ _attach(b);
+}
+
+/*! \copydoc integer::integer(const std::string&, size_t)
+
+\note If the number represented by the parameter is too large to fit into the
+fixed_integer, it is silently truncated, and only the lower bits are preserved.
+*/
+template <size_t Bits>
+fixed_integer<Bits>::fixed_integer(const std::string& str, size_t base):
+ fixed_integer_any(_c_digits, _c_mask)
+{
+ detail::from_string(*this, str, base);
+}
+
+/*!
+Constructs a new fixed_integer object with the value of the built-in signed
+%integer passed to it.
+
+\param[in] n A number of type \c T.
+\tparam T The type of \c n.
+
+You can ignore the \c enable_if parameters, they are there only to tell
+the compiler what types it applies to.
+
+\overload
+
+\note If the number represented by the parameter is too large to fit into the
+fixed_integer, it is silently truncated, and only the lower bits are preserved.
+*/
+template <size_t Bits>
+template <typename T>
+fixed_integer<Bits>::fixed_integer(const T& n,
+ typename boost::enable_if<boost::is_integral<T> >::type*,
+ typename boost::enable_if<boost::is_signed<T> >::type*):
+ fixed_integer_any(_c_digits, _c_mask)
+{
+ _set_signed(n);
+}
+
+/*!
+Constructs a new integer object with the value of the built-in unsigned
+%integer passed to it.
+
+\param[in] n A number of type \c T.
+\tparam T The type of \c n.
+
+You can ignore the \c enable_if parameters, they are there only to tell
+the compiler what types it applies to.
+
+\overload
+
+\note If the number represented by the parameter is too large to fit into the
+fixed_integer, it is silently truncated, and only the lower bits are preserved.
+*/
+template <size_t Bits>
+template <typename T>
+fixed_integer<Bits>::fixed_integer(const T& n,
+ typename boost::enable_if<boost::is_integral<T> >::type*,
+ typename boost::enable_if<boost::is_unsigned<T> >::type*):
+ fixed_integer_any(_c_digits, _c_mask)
+{
+ _set_unsigned(n);
+}
+
+//! \copydoc integer::odd
+template <size_t Bits>
+bool fixed_integer<Bits>::odd() const {
+ return (_get_digit(0) & 0x01) != 0;
+}
+
+//! \copydoc integer::even
+template <size_t Bits>
+bool fixed_integer<Bits>::even() const {
+ return (_get_digit(0) & 0x01) == 0;
+}
+
+//! \copydoc integer::sign
+template <size_t Bits>
+int fixed_integer<Bits>::sign(bool signed_zero) const {
+ if (!signed_zero && _is_zero()) return 0;
+ else return (_get_negative() ? -1 : 1);
+}
+
+//! \copydoc integer::hex_digits
+template <size_t Bits>
+size_t fixed_integer<Bits>::hex_digits() const {
+ size_t bits=_log2();
+ return (bits+3)/4; // Four bits per hex digit, rounded up
+}
+
+/*! \brief The Bitwise Ones' Complement (i.e. bitwise NOT) operator.
+
+This operator does not exist in the integer and nothrow_integer classes, because
+as their lengths are not limited, it would result in an infinitely long number.
+*/
+template <size_t Bits>
+fixed_integer<Bits> fixed_integer<Bits>::operator~() const {
+ fixed_integer<Bits> r(*this);
+ r._make_unique();
+ detail::digit_t *p = r._get_writable_digits(), *pe1 = p + r._get_length(),
+ *pe2 = p + _c_digits;
+ while (p != pe1) { *p = ~(*p); ++p; }
+ while (p != pe2) *p++ = detail::digit_mask;
+ r._set_length(_c_digits);
+ r._cleanup();
+ return BOOST_XINT_MOVE(r);
+}
+
+#define BOOST_XINT_FIXED_OPEQ_FN(name, body) \
+template <size_t Bits> \
+fixed_integer<Bits>& fixed_integer<Bits>::name(const fixed_integer_any& n) { \
+ body(*this, *this, n); \
+ return *this; \
+}
+
+BOOST_XINT_FIXED_OPEQ_FN(operator+=, detail::add)
+BOOST_XINT_FIXED_OPEQ_FN(operator-=, detail::subtract)
+BOOST_XINT_FIXED_OPEQ_FN(operator*=, detail::multiply)
+BOOST_XINT_FIXED_OPEQ_FN(operator/=, detail::divide)
+BOOST_XINT_FIXED_OPEQ_FN(operator%=, detail::mod)
+
+template <size_t Bits>
+fixed_integer<Bits>& fixed_integer<Bits>::operator<<=(size_t shift) {
+ detail::shift_left(*this, *this, shift);
+ return *this;
+}
+
+template <size_t Bits>
+fixed_integer<Bits>& fixed_integer<Bits>::operator>>=(size_t shift) {
+ detail::shift_right(*this, *this, shift);
+ return *this;
+}
+
+template <size_t Bits>
+fixed_integer<Bits> fixed_integer<Bits>::operator<<(size_t shift) const {
+ fixed_integer<Bits> r;
+ detail::shift_left(r, *this, shift);
+ return BOOST_XINT_MOVE(r);
+}
+
+template <size_t Bits>
+fixed_integer<Bits> fixed_integer<Bits>::operator>>(size_t shift) const {
+ fixed_integer<Bits> r;
+ detail::shift_right(r, *this, shift);
+ return BOOST_XINT_MOVE(r);
+}
+
+template <size_t Bits>
+fixed_integer<Bits>& fixed_integer<Bits>::operator++() {
+ _increment();
+ return *this;
+}
+
+template <size_t Bits>
+fixed_integer<Bits>& fixed_integer<Bits>::operator--() {
+ _decrement();
+ return *this;
+}
+
+template <size_t Bits>
+fixed_integer<Bits> fixed_integer<Bits>::operator++(int) {
+ fixed_integer<Bits> old(*this);
+ _increment();
+ return BOOST_XINT_MOVE(old);
+}
+
+template <size_t Bits>
+fixed_integer<Bits> fixed_integer<Bits>::operator--(int) {
+ fixed_integer<Bits> old(*this);
+ _decrement();
+ return BOOST_XINT_MOVE(old);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Non-member fixed_integer function definitions
+
+//! \copydoc abs(const integer&)
+template <size_t Bits>
+fixed_integer<Bits> abs(const fixed_integer<Bits>& n) {
+ if (n._get_negative()) {
+ fixed_integer<Bits> r(n);
+ r._set_negative(false);
+ return BOOST_XINT_MOVE(r);
+ } else return n;
+}
+
+//! \copydoc negate(const integer&)
+template <size_t Bits>
+fixed_integer<Bits> negate(const fixed_integer<Bits>& n) {
+ fixed_integer<Bits> r(n);
+ r._set_negative(!r._get_negative());
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc add(const integer&, const integer&)
+template <size_t Bits>
+fixed_integer<Bits> add(const fixed_integer<Bits>& n1, const
+ fixed_integer<Bits>& n2)
+{
+ fixed_integer<Bits> r;
+ detail::add(r, n1, n2);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc subtract(const integer&, const integer&)
+template <size_t Bits>
+fixed_integer<Bits> subtract(const fixed_integer<Bits>& n1, const
+ fixed_integer<Bits>& n2)
+{
+ fixed_integer<Bits> r;
+ detail::subtract(r, n1, n2);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc multiply(const integer&, const integer&)
+template <size_t Bits>
+fixed_integer<Bits> multiply(const fixed_integer<Bits>& n, const
+ fixed_integer<Bits>& by)
+{
+ fixed_integer<Bits> r;
+ detail::multiply(r, n, by);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc divide(const integer&, const integer&)
+template <size_t Bits>
+fixed_integer<Bits> divide(const fixed_integer<Bits>& dividend,
+ const fixed_integer<Bits>& divisor)
+{
+ fixed_integer<Bits> q, r;
+ detail::divide(q, r, dividend, divisor);
+ return BOOST_XINT_MOVE(q);
+}
+
+//! \copydoc divide(const integer&, const integer&)
+template <size_t Bits>
+typename fixed_integer<Bits>::divide_t divide_r(const fixed_integer<Bits>&
+ dividend, const fixed_integer<Bits>& divisor)
+{
+ fixed_integer<Bits> q, r;
+ detail::divide(q, r, dividend, divisor);
+ return BOOST_XINT_FORWARD(fixed_integer<Bits>::divide_t,
+ fixed_integer<Bits>::divide_t(BOOST_XINT_MOVE(q), BOOST_XINT_MOVE(r)));
+}
+
+//! \copydoc sqr(const integer&)
+template <size_t Bits>
+fixed_integer<Bits> sqr(const fixed_integer<Bits>& n) {
+ fixed_integer<Bits> r;
+ detail::sqr(r, n);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc pow(const integer&, const integer&)
+template <size_t Bits>
+fixed_integer<Bits> pow(const fixed_integer<Bits>& n, const
+ fixed_integer_any& e)
+{
+ fixed_integer<Bits> r;
+ detail::pow(r, n, e);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc pow2(size_t)
+template <size_t Bits>
+fixed_integer<Bits> fixed_pow2(size_t e) {
+ fixed_integer<Bits> r;
+ setbit(r, e);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc factorial(size_t)
+template <size_t Bits>
+fixed_integer<Bits> fixed_factorial(size_t n) {
+ fixed_integer<Bits> r;
+ detail::factorial(r, n);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc sqrt(const integer&)
+template <size_t Bits>
+fixed_integer<Bits> sqrt(const fixed_integer<Bits>& n) {
+ fixed_integer<Bits> r;
+ detail::sqrt(r, n);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc to(const integer&)
+template <size_t Bits, typename T>
+T to(const fixed_integer<Bits>& n) {
+ return detail::to<T>(n);
+}
+
+//! \copydoc from_string
+template <size_t Bits>
+fixed_integer<Bits> fixed_from_string(const std::string& str, size_t base) {
+ fixed_integer<Bits> r;
+ detail::from_string(r, str, base);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc to_binary(const integer&, size_t bits)
+template <size_t Bits>
+xint::binary_t to_binary(const fixed_integer_any& n, size_t bits) {
+ xint::binary_t r;
+ detail::to_binary(r, n, bits);
+ return r;
+}
+
+//! \copydoc from_binary
+template <size_t Bits>
+fixed_integer<Bits> fixed_from_binary(const xint::binary_t& b, size_t bits) {
+ fixed_integer<Bits> r;
+ detail::from_binary(r, b, bits);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc getbit(const integer&, size_t)
+template <size_t Bits>
+bool getbit(const fixed_integer<Bits>& n, size_t bit) {
+ return detail::getbit(n, bit);
+}
+
+//! \copydoc setbit(integer&, size_t)
+template <size_t Bits>
+void setbit(fixed_integer<Bits>& n, size_t bit) {
+ return detail::setbit(n, bit);
+}
+
+//! \copydoc clearbit(integer&, size_t)
+template <size_t Bits>
+void clearbit(fixed_integer<Bits>& n, size_t bit) {
+ return detail::clearbit(n, bit);
+}
+
+//! \copydoc lowestbit(const integer&, size_t)
+template <size_t Bits>
+size_t lowestbit(const fixed_integer<Bits>& n, size_t valueIfZero) {
+ return detail::lowestbit(n, valueIfZero);
+}
+
+//! \copydoc highestbit(const integer&, size_t)
+template <size_t Bits>
+size_t highestbit(const fixed_integer<Bits>& n, size_t valueIfZero) {
+ return detail::highestbit(n, valueIfZero);
+}
+
+//! \copydoc bitwise_and(const integer&, const integer&)
+template <size_t Bits>
+fixed_integer<Bits> bitwise_and(const fixed_integer<Bits>& n1, const
+ fixed_integer<Bits>& n2)
+{
+ fixed_integer<Bits> r;
+ detail::bitwise_and(r, n1, n2);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc bitwise_or(const integer&, const integer&)
+template <size_t Bits>
+fixed_integer<Bits> bitwise_or (const fixed_integer<Bits>& n1, const
+ fixed_integer<Bits>& n2)
+{
+ fixed_integer<Bits> r;
+ detail::bitwise_or(r, n1, n2);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc bitwise_xor(const integer&, const integer&)
+template <size_t Bits>
+fixed_integer<Bits> bitwise_xor(const fixed_integer<Bits>& n1, const
+ fixed_integer<Bits>& n2)
+{
+ fixed_integer<Bits> r;
+ detail::bitwise_xor(r, n1, n2);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc shift(const integer&, int)
+template <size_t Bits>
+fixed_integer<Bits> shift(const fixed_integer<Bits>& n, int byBits) {
+ return (byBits < 0 ? shift_right(n, -byBits) : shift_left(n, byBits));
+}
+
+//! \copydoc shift_left(const integer&, size_t)
+template <size_t Bits>
+fixed_integer<Bits> shift_left(const fixed_integer<Bits>& n, size_t byBits) {
+ fixed_integer<Bits> r;
+ detail::shift_left(r, n, byBits);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc shift_right(const integer&, size_t)
+template <size_t Bits>
+fixed_integer<Bits> shift_right(const fixed_integer<Bits>& n, size_t byBits) {
+ fixed_integer<Bits> r;
+ detail::shift_right(r, n, byBits);
+ return BOOST_XINT_MOVE(r);
+}
+
+template <size_t Bits>
+fixed_integer<Bits> mod(const fixed_integer<Bits>& n, const fixed_integer<Bits>&
+ m)
+{
+ fixed_integer<Bits> r;
+ detail::mod(r, n, m);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc mulmod(const integer&, const integer&, const integer&)
+template <size_t Bits>
+fixed_integer<Bits> mulmod(const fixed_integer<Bits>& n, const
+ fixed_integer<Bits>& by, const fixed_integer<Bits>& m)
+{
+ return mod(n * by, m);
+}
+
+//! \copydoc sqrmod(const integer&, const integer&)
+template <size_t Bits>
+fixed_integer<Bits> sqrmod(const fixed_integer<Bits>& n, const
+ fixed_integer<Bits>& m)
+{
+ return mod(sqr(n), m);
+}
+
+//! \copydoc powmod(const integer&, const integer&, const integer&, bool)
+template <size_t Bits>
+fixed_integer<Bits> powmod(const fixed_integer<Bits>& n, const
+ fixed_integer<Bits>& e, const fixed_integer<Bits>& m, bool noMontgomery)
+{
+ fixed_integer<Bits> r;
+ detail::powmod(r, n, e, m, noMontgomery);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc invmod(const integer&, const integer&)
+template <size_t Bits>
+fixed_integer<Bits> invmod(const fixed_integer<Bits>& n, const
+ fixed_integer<Bits>& m)
+{
+ fixed_integer<Bits> r;
+ detail::invmod(r, n, m);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc random_by_size
+template <size_t Bits>
+fixed_integer<Bits> fixed_random_by_size(size_t bits, bool high_bit_on, bool
+ low_bit_on, bool can_be_negative)
+{
+ return fixed_integer<Bits>(random_by_size((std::min)(Bits, bits),
+ high_bit_on, low_bit_on, can_be_negative));
+}
+
+//! \copydoc random_prime
+template <size_t Bits>
+fixed_integer<Bits> fixed_random_prime(size_t size_in_bits, callback_t callback)
+{
+ fixed_integer<Bits> r(random_prime((std::min)(Bits, size_in_bits), callback));
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc gcd(const integer&, const integer&)
+template <size_t Bits>
+fixed_integer<Bits> gcd(const fixed_integer<Bits>& num1, const
+ fixed_integer<Bits>& num2)
+{
+ fixed_integer<Bits> r;
+ detail::gcd(r, num1, num2);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \copydoc lcm(const integer&, const integer&)
+template <size_t Bits>
+fixed_integer<Bits> lcm(const fixed_integer<Bits>& num1, const
+ fixed_integer<Bits>& num2)
+{
+ fixed_integer<Bits> r;
+ detail::lcm(r, num1, num2);
+ return BOOST_XINT_MOVE(r);
+}
+
+//! \name Stream input/output functions
+//!@{
+template <typename charT, typename traits, size_t Bits>
+inline std::basic_ostream<charT,traits>& operator<<(std::basic_ostream<charT,
+ traits>& out, const fixed_integer<Bits>& n)
+{
+ return detail::operator<<(out, n);
+}
+
+template <typename charT, typename traits, size_t Bits>
+inline std::basic_istream<charT,traits>& operator>>(std::basic_istream<charT,
+ traits>& in, fixed_integer<Bits>& n)
+{
+ return detail::operator>>(in, n);
+}
+//!@}
+
+// No 100% compatible way to declare a specialization of a function template
+// using a templated class, as far as I can tell. This is the second-best
+// solution.
+template<size_t Bits>
+void swap(fixed_integer<Bits>& left, fixed_integer<Bits>& right) {
+ left._swap(right);
+}
+
+} // namespace xint
+} // namespace boost
+
+namespace std {
+
+template<size_t Bits>
+class numeric_limits<boost::xint::fixed_integer<Bits> > {
+ public:
+ static const bool is_specialized = true;
+
+ static boost::xint::fixed_integer<Bits> min() throw() { return
+ -~(boost::xint::fixed_integer<Bits>()); }
+ static boost::xint::fixed_integer<Bits> max() throw() { return
+ ~(boost::xint::fixed_integer<Bits>()); }
+
+ static const int digits = Bits;
+ static const int digits10; // = boost::xint::fixed_integer<Bits>::_c_log10;
+ static const bool is_signed = true;
+ static const bool is_integer = true;
+ static const bool is_exact = true;
+ static const int radix = 2;
+ static boost::xint::fixed_integer<Bits> epsilon() throw() { return 0; }
+ static boost::xint::fixed_integer<Bits> round_error() throw() { return 0; }
+
+ static const int min_exponent = 0; // Not applicable
+ static const int min_exponent10 = 0; // Not applicable
+ static const int max_exponent = 0; // Not applicable
+ static const int max_exponent10 = 0; // Not applicable
+
+ static const bool has_infinity = false;
+ static const bool has_quiet_NaN = false;
+ static const bool has_signaling_NaN = false;
+ static const float_denorm_style has_denorm = denorm_absent; // Not applicable
+ static const bool has_denorm_loss = false; // Not applicable
+
+ static boost::xint::fixed_integer<Bits> infinity() throw() { return 0; } // Not applicable
+ static boost::xint::fixed_integer<Bits> quiet_NaN() throw() { return 0; } // Not applicable
+ static boost::xint::fixed_integer<Bits> signaling_NaN() throw() { return 0; } // Not applicable
+ static boost::xint::fixed_integer<Bits> denorm_min() throw() { return 0; } // Not applicable
+
+ static const bool is_iec559 = false;
+ static const bool is_bounded = true;
+ static const bool is_modulo = true;
+
+ static const bool traps = true; // I assume this means exceptions?
+ static const bool tinyness_before = false; // Not applicable
+ static const float_round_style round_style = round_indeterminate; // Not applicable
+};
+
+template<size_t Bits>
+const int numeric_limits<boost::xint::fixed_integer<Bits> >::digits10 =
+ static_cast<int>(boost::xint::detail::log10_bits(Bits));
+
+} // namespace std
+
+#endif // BOOST_INCLUDED_XINT_FIXED_INTEGER_HPP

Modified: sandbox/xint/boost/xint/integer.hpp
==============================================================================
--- sandbox/xint/boost/xint/integer.hpp (original)
+++ sandbox/xint/boost/xint/integer.hpp 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -19,8 +19,6 @@
 #define BOOST_INCLUDED_XINT_INTEGER_HPP
 
 #include "internals.hpp"
-#include "exceptions.hpp"
-#include <boost/type_traits.hpp>
 
 namespace boost {
 namespace xint {
@@ -31,19 +29,17 @@
 
     There are only a few member functions; most of the functionality is
     implemented using standalone functions.
-
- Functions that start with an underscore (such as \c _make_unique) are
- intended for internal use only. They may change arbitrarily in future
- versions.
 */
-class integer: public detail::base_integer {
+class integer: public detail::base_variable_length_integer {
     public:
 
     //! \name Constructors & Destructors
     //!@{
     integer();
     integer(const integer& b);
+ integer(BOOST_XINT_RV_REF(integer) b) { _swap(b); }
     explicit integer(const nothrow_integer& b);
+ explicit integer(const fixed_integer_any& b);
     explicit integer(const std::string& str, size_t base=10);
     template <typename T> integer(const T& n,
         typename boost::enable_if<boost::is_integral<T> >::type* = 0,
@@ -61,7 +57,15 @@
         a fixed maximum size, there is no logical way to implement it.
     */
     //@{
- integer& operator=(const integer &c);
+ integer& operator=(BOOST_XINT_COPY_ASSIGN_REF(integer) c);
+ integer& operator=(BOOST_XINT_RV_REF(integer) c) { _swap(c); return *this; }
+ template <typename T> integer& operator=(const T& n) { integer nn(n);
+ _swap(nn); return *this; }
+
+ bool operator!() const { return _is_zero(); }
+ integer operator-() const;
+ integer& operator+() { return *this; }
+ const integer& operator+() const { return *this; }
 
     integer& operator+=(const integer& b);
     integer& operator-=(const integer& b);
@@ -103,13 +107,10 @@
     size_t hex_digits() const;
     //!@}
 
- /*! \name Internal Functions
- \brief These functions allow access to the internals of the %integer.
- They are intended for internal use only.
- */
- //@{
- void _make_unique();
- //@}
+ typedef base_divide_t<integer> divide_t;
+
+ private:
+ BOOST_XINT_COPYABLE_AND_MOVABLE(integer)
 };
 
 //! \name Mathematical primitives
@@ -120,8 +121,7 @@
 integer subtract(const integer& n, const integer& subtrahend);
 integer multiply(const integer& n, const integer& multiplicand);
 integer divide(const integer& dividend, const integer& divisor);
-std::pair<integer, integer> divide_r(const integer& dividend, const integer&
- divisor);
+integer::divide_t divide_r(const integer& dividend, const integer& divisor);
 //!@}
 
 //! \name Powers and roots
@@ -138,8 +138,8 @@
 template <typename T> T to(const integer& n);
 std::string to_string(const integer& n, size_t base=10, bool upperCase=false);
 integer from_string(const std::string& str, size_t base=10);
-std::string to_binary(const integer& n);
-integer from_binary(const std::string& s);
+xint::binary_t to_binary(const integer& n, size_t bits=0);
+integer from_binary(const xint::binary_t& b, size_t bits=0);
 //!@}
 
 //! \name Bit-manipulation functions
@@ -188,7 +188,6 @@
     These act exactly the same as for the built-in %integer types.
 */
 //!@{
-bool operator!(const integer& n1);
 bool operator<(const integer& n1, const integer& n2);
 bool operator>(const integer& n1, const integer& n2);
 bool operator<=(const integer& n1, const integer& n2);
@@ -196,8 +195,6 @@
 bool operator==(const integer& n1, const integer& n2);
 bool operator!=(const integer& n1, const integer& n2);
 
-const integer& operator+(const integer& a);
-integer operator-(const integer& a);
 integer operator+(const integer& n1, const integer& n2);
 integer operator-(const integer& n1, const integer& n2);
 integer operator*(const integer& n1, const integer& n2);
@@ -235,20 +232,7 @@
     typename boost::enable_if<boost::is_integral<T> >::type*,
     typename boost::enable_if<boost::is_signed<T> >::type*)
 {
- if (n >= 0) {
- if (static_cast<T>(n & detail::digit_mask) == n)
- _attach_1(detail::digit_t(n));
- else _attach_n(boost::uintmax_t(n));
- } else if (n == (std::numeric_limits<T>::min)()) {
- // Have to treat the minimum number carefully, because -n is not
- // what you'd think it is.
- _attach_n(boost::uintmax_t(-(n+1)));
- _set_negative(true);
- --(*this);
- } else {
- _attach_n(boost::uintmax_t(-n));
- _set_negative(true);
- }
+ _set_signed(n);
 }
 
 /*!
@@ -267,15 +251,13 @@
     typename boost::enable_if<boost::is_integral<T> >::type*,
     typename boost::enable_if<boost::is_unsigned<T> >::type*)
 {
- if (static_cast<T>(n & detail::digit_mask) == n)
- _attach_1(detail::digit_t(n));
- else _attach_n(boost::uintmax_t(n));
+ _set_unsigned(n);
 }
 
 /*! \brief Efficiently converts from an xint::integer to a built-in %integer
            type.
 
-\param[in] n The integer to convert.
+\param[in] n The %integer to convert.
 \tparam T The type to convert it to.
 
 \returns The numeric value of \c n, converted to the specified type.
@@ -284,18 +266,7 @@
 */
 template <typename T>
 T to(const integer& n) {
- if (n < (std::numeric_limits<T>::min)()
- || n > (std::numeric_limits<T>::max)())
- throw exceptions::too_big("value out of range for requested "
- "conversion");
-
- T rval=0;
- size_t len=n._get_length();
- for (size_t x=0; x<len; ++x)
- rval=static_cast<T>((rval * detail::digit_overflowbit)
- + n._get_digit(len-x-1));
- if (n.sign() < 0) rval *= -1;
- return rval;
+ return detail::to<T>(n);
 }
 
 //! \name Stream input/output functions
@@ -304,88 +275,21 @@
 inline std::basic_ostream<charT,traits>& operator<<(std::basic_ostream<charT,
     traits>& out, const integer& n)
 {
- int base=((out.flags() & std::ios::hex) ? 16
- : (out.flags() & std::ios::oct) ? 8
- : 10);
- bool upperCase=(out.flags() & std::ios::uppercase ? true : false);
-
- int nsign=n.sign();
- if ((out.flags() & std::ios::showpos) && nsign >= 0) out << "+";
-
- if (out.flags() & std::ios::showbase) {
- if (nsign < 0) out << "-";
-
- if (base==16 && upperCase) out << "0X";
- else if (base==16) out << "0x";
- else if (base==8) out << "0";
-
- out << to_string(abs(n), base, upperCase);
- } else {
- out << to_string(n, base, upperCase);
- }
- return out;
+ return detail::operator<<(out, n);
 }
 
 template <typename charT, typename traits>
 inline std::basic_istream<charT,traits>& operator>>(std::basic_istream<charT,
     traits>& in, integer& n)
 {
- int hex=(in.flags() & std::ios::hex) ? 1 : 0;
- int dec=(in.flags() & std::ios::dec) ? 1 : 0;
- int oct=(in.flags() & std::ios::oct) ? 1 : 0;
- int count=hex+dec+oct;
-
- size_t base=autobase;
- if (count==1) {
- if (hex) base=16;
- else if (oct) base=8;
- else base=10;
- } else if (count>1) base=10;
- // else auto-base
-
- std::string s;
- if (in.peek()=='+') {
- in.ignore();
- } else if (in.peek()=='-') {
- in.ignore();
- s.push_back('-');
- }
-
- if (base==autobase) {
- if (in.peek()=='0') {
- in.ignore();
- int c=in.peek();
- if (c=='x' || c=='X') {
- in.ignore();
- base=16;
- } else base=8;
- } else base=10;
- }
-
- while (in) {
- int c=in.peek();
- if ((base==8 && (c>='0' && c<='7')) ||
- (base==10 && (c>='0' && c<='9')) ||
- (base==16 && ((c>='0' && c<='9') || (c>='a' && c<='f') ||
- (c>='A' && c<='F'))))
- {
- in.ignore();
- s.push_back(char(c));
- } else break;
- }
-
- try {
- integer testValue=from_string(s, base);
- n=testValue;
- } catch (std::exception&) {
- // Catch invalid strings
- in.setstate(std::ios::failbit);
- }
-
- return in;
+ return detail::operator>>(in, n);
 }
 //!@}
 
+inline void swap(integer& left, integer& right) {
+ left._swap(right);
+}
+
 } // namespace xint
 } // namespace boost
 

Modified: sandbox/xint/boost/xint/internals.hpp
==============================================================================
--- sandbox/xint/boost/xint/internals.hpp (original)
+++ sandbox/xint/boost/xint/internals.hpp 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -21,6 +21,8 @@
 #define BOOST_INCLUDED_XINT_INTERNALS_HPP
 
 #include <string>
+#include <vector>
+#include <queue>
 #include <limits>
 #include <cstddef> // for size_t
 #include <iostream>
@@ -28,12 +30,58 @@
 #include <boost/integer.hpp>
 #include <boost/cstdint.hpp>
 #include <boost/function.hpp>
+#include <boost/type_traits.hpp>
+
+#ifdef XINT_THREADSAFE
+ #define BOOST_XINT_USE_MOVE
+#endif
+
+#ifdef BOOST_XINT_USE_MOVE
+ #include <boost/move/move.hpp>
+ #define BOOST_XINT_COPY_ASSIGN_REF(type) BOOST_COPY_ASSIGN_REF(type)
+ #define BOOST_XINT_COPYABLE_AND_MOVABLE(type) BOOST_COPYABLE_AND_MOVABLE(type)
+ #define BOOST_XINT_RV_REF(type) BOOST_RV_REF(type)
+ #define BOOST_XINT_MOVE(value) boost::move(value)
+ #define BOOST_XINT_FORWARD(type, value) boost::forward<type>(value)
+#else
+ template <typename T> class disable_boost_rv_ref: public T { };
+ #define BOOST_XINT_COPY_ASSIGN_REF(type) const type&
+ #define BOOST_XINT_COPYABLE_AND_MOVABLE(type)
+ #define BOOST_XINT_RV_REF(type) disable_boost_rv_ref<type>
+ #define BOOST_XINT_MOVE(value) value
+ #define BOOST_XINT_FORWARD(type, value) value
+#endif
 
 namespace boost {
 
 //! \brief All the types and functions of the library are within this namespace.
 namespace xint {
 
+class integer;
+class nothrow_integer;
+class fixed_integer_any;
+template <size_t Bits> class fixed_integer;
+
+//! A callback function takes no parameters and returns a bool.
+//! \see xint::is_prime
+//! \see xint::random_prime
+typedef boost::function<bool ()> callback_t;
+
+//! The format for the binary representations of %integers.
+//! \see xint::to_binary
+//! \see xint::from_binary
+typedef std::vector<unsigned char> binary_t;
+
+//! An empty callback_t, used as a default parameter for some functions.
+//! \see xint::is_prime
+//! \see xint::random_prime
+const callback_t no_callback;
+
+//! A value that can be used for the 'base' parameter of the string-to-integer functions
+//! \see xint::integer::integer(const std::string& str, size_t base)
+//! \see xint::from_string
+const size_t autobase=(std::numeric_limits<size_t>::max)();
+
 //! \brief The items within this namespace are meant for internal use only.
 namespace detail {
 
@@ -55,6 +103,9 @@
 //! \name Some constants used by the library.
 //!@{
 const size_t bits_per_digit = std::numeric_limits<digit_t>::digits;
+const size_t digits_in_uintmax =
+ (std::numeric_limits<boost::uintmax_t>::digits + bits_per_digit - 1) /
+ bits_per_digit;
 const digit_t digit_hibit = (digit_t(1) << (bits_per_digit-1));
 const doubledigit_t doubledigit_hibit = (doubledigit_t(1) << (bits_per_digit*2-1));
 const doubledigit_t digit_overflowbit = (doubledigit_t(1) << bits_per_digit);
@@ -65,23 +116,31 @@
 const extern std::string nan_text;
 
 //! \brief Holds the magnitude digits of an integer.
-template <int digit_count=1>
 struct data_t {
     size_t copies, length, max_length;
- digit_t magnitude[digit_count];
+ digit_t fixed_mask; //!< For the topmost digit; zero for variable-sized
+ digit_t magnitude[1];
 };
 
-//! \name The variable-length data_t functions.
+//! \name The data_t functions.
 //!@{
-data_t<> *allocate(size_t max_digits, size_t initial_length=
+void zero(digit_t *p, digit_t *end);
+void zero(digit_t *p, size_t size);
+data_t *allocate(size_t max_digits, size_t initial_length=
+ (std::numeric_limits<size_t>::max)(), digit_t fixed_mask=0);
+data_t *allocate_fixed(digit_t mask, size_t max_digits, size_t initial_length=
     (std::numeric_limits<size_t>::max)());
-data_t<> *reallocate(data_t<> *olddata, size_t newsize);
-data_t<> *duplicate(data_t<> *olddata, size_t extra=0);
-data_t<> *duplicate(data_t<> *olddata, data_t<> *data_to_copy, size_t extra=0);
-void deallocate(data_t<> *data);
+data_t *allocate_fixed_zero(digit_t mask, size_t max_digits);
+data_t *reallocate(data_t *olddata, size_t newsize);
+data_t *duplicate(data_t *olddata, size_t extra=0);
+data_t *duplicate(data_t *olddata, data_t *data_to_copy, size_t extra=0);
+void deallocate(data_t *data);
 //!@}
 
-//! \brief The base class for the integer classes.
+class temp_t;
+class base_variable_length_integer;
+
+//! \brief The base class for all integer classes.
 class base_integer {
     public:
     ~base_integer();
@@ -90,62 +149,196 @@
     //@{
     detail::digit_t _get_digit(size_t index) const;
     detail::digit_t _get_digit(size_t index, bool) const; //!< \overload
- detail::digit_t* _get_digits();
+ detail::digit_t* _get_writable_digits();
     const detail::digit_t* _get_digits() const; //!< \overload
+
     size_t _get_length() const;
+ size_t _get_max_length() const;
+ void _set_length(size_t digits);
+
+ size_t _log2() const;
+
+ bool _is_nan() const { return (data==0); };
     bool _is_unique() const;
     bool _is_zero() const;
+
+ bool _is_fixed() const;
+ size_t _fixed_digits() const;
+ size_t _fixed_bits() const;
+
+ bool _get_readonly() const;
     bool _get_negative() const;
     void _set_negative(bool neg);
- void _cleanup();
+ void _toggle_negative();
+
     void _realloc(size_t new_digit_count);
- void _duplicate(const base_integer& copy, size_t extra);
- void _shift_left(size_t byBits);
- void _shift_right(size_t byBits);
+ void _cleanup();
+ void _attach(const base_integer& copy);
+
+ 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;
+ void _set_signed(boost::intmax_t n);
+ void _set_unsigned(boost::uintmax_t n, bool negative=false);
+
+ void _make_unique();
+ void _swap(base_integer& other);
     //@}
 
     protected:
- base_integer(): fixed_mask(0), negative(false), data(0) { }
- base_integer(size_t count, digit_t mask, void *d);
+ typedef unsigned int flag_t;
 
- bool _is_nan() const { return (data==0); };
- void _base_make_unique();
- void _attach(data_t<> *new_data, bool neg=false);
- void _attach(const base_integer& copy);
+ base_integer();
+ 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 _set_readonly();
+
+ protected:
+ static const flag_t flag_negative = 0x01;
+ static const flag_t flag_readonly = 0x02;
+ static const flag_t flag_fixedlength = 0x04;
+
+ private:
+ flag_t flags;
+ data_t *data;
+
+ friend class temp_t;
+ friend class base_variable_length_integer;
+};
+
+//! \brief Makes a temporary integer that can always share storage.
+class temp_t: public base_integer {
+ public:
+ explicit temp_t(const base_integer& b) {
+ flags = b.flags;
+ data = b.data;
+ ++data->copies;
+ }
+
+ //! Constructs an empty integer of the same type as the one passed in.
+ temp_t(const base_integer& b, size_t realloc_size):
+ base_integer(b._is_fixed()
+ ? allocate_fixed(b.data->fixed_mask, b._fixed_digits(), realloc_size)
+ : allocate(realloc_size)) { }
+};
+
+//! \brief Makes a negated temporary integer that can always share storage.
+class neg_t: public temp_t {
+ public:
+ explicit neg_t(const base_integer& b): temp_t(b) {
+ _toggle_negative();
+ }
+};
+
+//! \brief The base class for the variable-length integer classes.
+class base_variable_length_integer: public base_integer {
+ protected:
     void _attach_0();
- void _attach_1(digit_t n);
- void _attach_n(boost::uintmax_t n);
- void _set_n(boost::uintmax_t n);
+};
+
+//! \brief Used internally to reorder bits into different-sized groupings.
+class bitqueue_t {
+ public:
+ bitqueue_t(): bits_pending(0) { }
+ void push(doubledigit_t bits, size_t count);
+ doubledigit_t pop(size_t requestedbits);
+ bool empty() const { return pending.empty(); }
+ size_t size() const { return bits_pending; }
 
     private:
- digit_t fixed_mask; //!< For the topmost digit; zero for variable-sized
+ static const size_t ddbits = std::numeric_limits<doubledigit_t>::digits;
+ typedef std::pair<doubledigit_t, size_t> indata_t;
+ typedef std::queue<indata_t> inqueue_t;
 
- bool negative;
- data_t<> *data;
+ size_t bits_pending;
+ inqueue_t pending;
 };
 
+int compare(const base_integer &b1, const base_integer &b2, bool
+ ignoresign=false);
+std::string to_string(const base_integer& n, size_t base, bool uppercase);
+void from_string(base_integer& target, const std::string& str, size_t base);
+void add(base_integer& target, const base_integer& n1, const base_integer& n2);
+void subtract(base_integer& target, const base_integer& n1, const base_integer&
+ n2);
+void multiply(base_integer& target, const base_integer& n1, const base_integer&
+ n2);
+void divide(base_integer& qtarget, base_integer& rtarget, const base_integer&
+ n1, const base_integer& n2);
+void divide(base_integer& target, const base_integer& n1, const base_integer&
+ n2);
+void sqr(base_integer& target, const base_integer& n);
+void pow(base_integer& target, const base_integer& n, const base_integer& e);
+void factorial(base_integer& target, size_t n);
+void sqrt(base_integer& target, const base_integer& n);
+bool getbit(const base_integer& n, size_t bit);
+void setbit(base_integer& n, size_t bit);
+void clearbit(base_integer& n, size_t bit);
+size_t lowestbit(const base_integer& n, size_t valueIfZero);
+size_t highestbit(const base_integer& n, size_t valueIfZero);
+void bitwise_and(base_integer& target, const base_integer& n1, const
+ base_integer& n2);
+void bitwise_or(base_integer& target, const base_integer& n1, const
+ base_integer& n2);
+void bitwise_xor(base_integer& target, const base_integer& n1, const
+ base_integer& n2);
+void shift_left(base_integer& target, const base_integer& n, size_t byBits);
+void shift_right(base_integer& target, const base_integer& n, size_t byBits);
+void to_binary(xint::binary_t& target, const base_integer& n, size_t bits);
+void from_binary(base_integer& target, const xint::binary_t& s, size_t bits);
+void gcd(base_integer& target, const base_integer& num1, const base_integer&
+ num2);
+void lcm(base_integer& target, const base_integer& num1, const base_integer&
+ num2);
+void mod(base_integer& target, const base_integer& n1, const base_integer&
+ n2);
+void invmod(base_integer& target, const base_integer& n, const base_integer& m);
+void powmod(base_integer& target, const base_integer& n, const base_integer& e,
+ const base_integer& m, bool noMontgomery);
+
+size_t log10_bits(size_t bits);
+
 } // namespace detail
 
-//! A callback function takes no parameters and returns a bool.
-//! @see xint::is_prime
-//! @see xint::random_prime
-typedef boost::function<bool ()> callback_t;
+/*! \brief The base class for all fixed_integer types.
 
-//! An empty callback_t, used as a default parameter for some functions.
-//! @see xint::is_prime
-//! @see xint::random_prime
-const callback_t no_callback;
+This class eases operations on different-sized fixed_integer types.
+*/
+class fixed_integer_any: public detail::base_integer {
+ public:
+ /*! \name Automatic conversion operators.
 
-//! A value that can be used for the 'base' parameter of the string-to-integer functions
-//! @see xint::integer::integer(const std::string& str, size_t base)
-//! @see xint::from_string
-const size_t autobase=(std::numeric_limits<size_t>::max)();
+ These allow the compiler to create a temporary fixed_integer, of the
+ size of boost::uintmax_t, for proper comparisons between fixed_integer
+ types and literals. They shouldn't be used for any other purposes.
+ */
+ template <typename T> fixed_integer_any(const T& n,
+ typename boost::enable_if<boost::is_integral<T> >::type* = 0,
+ typename boost::enable_if<boost::is_signed<T> >::type* = 0):
+ base_integer(detail::digits_in_uintmax, detail::digit_mask)
+ { _set_signed(n); }
+
+ template <typename T> fixed_integer_any(const T& n,
+ typename boost::enable_if<boost::is_integral<T> >::type* = 0,
+ typename boost::enable_if<boost::is_unsigned<T> >::type* = 0):
+ base_integer(detail::digits_in_uintmax, detail::digit_mask)
+ { _set_unsigned(n); }
 
-class integer;
-class nothrow_integer;
-template <size_t bits> class fixed_integer;
+ protected:
+ fixed_integer_any(size_t count, detail::digit_t mask):
+ base_integer(count, mask) { }
+ explicit fixed_integer_any(detail::data_t *adopt, bool neg=false):
+ base_integer(adopt, neg) { }
+ explicit fixed_integer_any(const fixed_integer_any& c):
+ base_integer(c, true) { }
+};
 
 //! \name Miscellaneous functions
 //!@{
@@ -153,6 +346,176 @@
 bool opt_thread_safe();
 //!@}
 
+/*! \brief Holds the results from a division-with-remainder call.
+
+This class serves essentially the same purpose as an \c std::pair. The only
+reason it exists is that \c std::pair doesn't work well with Boost.Move on some
+compilers.
+*/
+template <class T>
+class base_divide_t {
+ public:
+ base_divide_t() { }
+ base_divide_t(const T& q, const T& r): quotient(q), remainder(r) { }
+ base_divide_t(const base_divide_t<T>& copy):
+ quotient(copy.quotient), remainder(copy.remainder) { }
+ base_divide_t(BOOST_XINT_RV_REF(base_divide_t) move) {
+ quotient._swap(move.quotient); remainder._swap(move.remainder); }
+
+ base_divide_t& operator=(BOOST_XINT_COPY_ASSIGN_REF(base_divide_t) copy)
+ { quotient = copy.quotient; remainder = copy.remainder; return
+ *this; }
+ base_divide_t& operator=(BOOST_XINT_RV_REF(base_divide_t) move) {
+ quotient._swap(move.quotient); remainder._swap(move.remainder); return
+ *this; }
+
+ T quotient, remainder;
+
+ private:
+ BOOST_XINT_COPYABLE_AND_MOVABLE(base_divide_t)
+};
+
+} // namespace xint
+} // namespace boost
+
+////////////////////////////////////////////////////////////////////////////////
+// Template functions
+
+#include "exceptions.hpp"
+
+namespace boost {
+namespace xint {
+namespace detail {
+
+template <typename T>
+size_t log2(const T& n,
+ typename boost::enable_if<boost::is_integral<T> >::type* = 0,
+ typename boost::enable_if<boost::is_unsigned<T> >::type* = 0)
+{
+ size_t lo=0, hi=std::numeric_limits<T>::digits;
+ while (lo < hi) {
+ size_t s = lo + ((hi - lo) >> 1);
+ if (n >= (T(1) << s)) lo = s + 1;
+ else hi = s;
+ }
+ return lo;
+}
+
+template <typename T>
+size_t log2(const T& nn,
+ typename boost::enable_if<boost::is_integral<T> >::type* = 0,
+ typename boost::enable_if<boost::is_signed<T> >::type* = 0)
+{
+ typedef typename boost::make_unsigned<T>::type uT;
+ return log2(static_cast<uT>(nn < 0 ? -nn : nn));
+}
+
+template <typename T>
+T to(const base_integer& n) {
+ if (compare(n, fixed_integer_any((std::numeric_limits<T>::min)())) < 0
+ || compare(n, fixed_integer_any((std::numeric_limits<T>::max)())) > 0)
+ throw exceptions::too_big("value out of range for requested "
+ "conversion");
+
+ T rval = 0;
+ size_t len=n._get_length();
+ for (size_t x=0; x<len; ++x) {
+ if (sizeof(T) > sizeof(detail::digit_t)) rval <<= detail::bits_per_digit;
+ rval += static_cast<T>(n._get_digit(len - x - 1));
+ }
+ if (n._get_negative()) rval = -rval; // Bogus MSVC warning C4146
+ return rval;
+}
+
+template <typename charT, typename traits>
+inline std::basic_ostream<charT,traits>& operator<<(std::basic_ostream<charT,
+ traits>& out, const base_integer& n)
+{
+ int base=((out.flags() & std::ios::hex) ? 16
+ : (out.flags() & std::ios::oct) ? 8
+ : 10);
+ bool upperCase=(out.flags() & std::ios::uppercase ? true : false);
+
+ int nsign = (n._is_zero() ? 0 : n._get_negative() ? -1 : 1);
+ if ((out.flags() & std::ios::showpos) && nsign >= 0) out << "+";
+
+ if (out.flags() & std::ios::showbase) {
+ if (nsign < 0) out << "-";
+
+ if (base==16 && upperCase) out << "0X";
+ else if (base==16) out << "0x";
+ else if (base==8) out << "0";
+
+ if (n._get_negative()) {
+ out << to_string(neg_t(n), base, upperCase);
+ } else {
+ out << to_string(n, base, upperCase);
+ }
+ } else {
+ out << to_string(n, base, upperCase);
+ }
+ return out;
+}
+
+template <typename charT, typename traits>
+inline std::basic_istream<charT,traits>& operator>>(std::basic_istream<charT,
+ traits>& in, base_integer& n)
+{
+ int hex=(in.flags() & std::ios::hex) ? 1 : 0;
+ int dec=(in.flags() & std::ios::dec) ? 1 : 0;
+ int oct=(in.flags() & std::ios::oct) ? 1 : 0;
+ int count=hex+dec+oct;
+
+ size_t base=autobase;
+ if (count==1) {
+ if (hex) base=16;
+ else if (oct) base=8;
+ else base=10;
+ } else if (count>1) base=10;
+ // else auto-base
+
+ std::string s;
+ if (in.peek()=='+') {
+ in.ignore();
+ } else if (in.peek()=='-') {
+ in.ignore();
+ s.push_back('-');
+ }
+
+ if (base==autobase) {
+ if (in.peek()=='0') {
+ in.ignore();
+ int c=in.peek();
+ if (c=='x' || c=='X') {
+ in.ignore();
+ base=16;
+ } else base=8;
+ } else base=10;
+ }
+
+ while (in) {
+ int c=in.peek();
+ if ((base==8 && (c>='0' && c<='7')) ||
+ (base==10 && (c>='0' && c<='9')) ||
+ (base==16 && ((c>='0' && c<='9') || (c>='a' && c<='f') ||
+ (c>='A' && c<='F'))))
+ {
+ in.ignore();
+ s.push_back(char(c));
+ } else break;
+ }
+
+ try {
+ detail::from_string(n, s, base);
+ } catch (std::exception&) {
+ // Catch invalid strings
+ in.setstate(std::ios::failbit);
+ }
+
+ return in;
+}
+
+} // namespace detail
 } // namespace xint
 } // namespace boost
 

Modified: sandbox/xint/boost/xint/nothrow_integer.hpp
==============================================================================
--- sandbox/xint/boost/xint/nothrow_integer.hpp (original)
+++ sandbox/xint/boost/xint/nothrow_integer.hpp 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -18,9 +18,7 @@
 #ifndef BOOST_INCLUDED_XINT_NOTHROW_INTEGER_HPP
 #define BOOST_INCLUDED_XINT_NOTHROW_INTEGER_HPP
 
-#include "internals.hpp"
 #include "integer.hpp"
-#include <boost/type_traits.hpp>
 
 namespace boost {
 namespace xint {
@@ -32,19 +30,17 @@
 
     There are only a few member functions; most of the functionality is
     implemented using standalone functions.
-
- Functions that start with an underscore (such as \c _make_unique) are
- intended for internal use only. They may change arbitrarily in future
- versions.
 */
-class nothrow_integer: public detail::base_integer {
+class nothrow_integer: public detail::base_variable_length_integer {
     public:
 
     //! \name Constructors & Destructors
     //!@{
     nothrow_integer();
     nothrow_integer(const nothrow_integer& b);
- nothrow_integer(const integer& b);
+ nothrow_integer(BOOST_XINT_RV_REF(nothrow_integer) b) { _swap(b); }
+ explicit nothrow_integer(const integer& b);
+ explicit nothrow_integer(const fixed_integer_any& b);
     explicit nothrow_integer(const std::string& str, size_t base=10);
     template <typename T> nothrow_integer(const T& n,
         typename boost::enable_if<boost::is_integral<T> >::type* = 0,
@@ -63,7 +59,16 @@
         it.
     */
     //@{
- nothrow_integer& operator=(const nothrow_integer &c);
+ nothrow_integer& operator=(BOOST_XINT_COPY_ASSIGN_REF(nothrow_integer) c);
+ nothrow_integer& operator=(BOOST_XINT_RV_REF(nothrow_integer) c) { _swap(c);
+ return *this; }
+ template <typename T> nothrow_integer& operator=(const T& n) {
+ nothrow_integer nn(n); _swap(nn); return *this; }
+
+ bool operator!() const { return _is_zero(); }
+ nothrow_integer operator-() const;
+ nothrow_integer& operator+() { return *this; }
+ const nothrow_integer& operator+() const { return *this; }
 
     nothrow_integer& operator+=(const nothrow_integer& b);
     nothrow_integer& operator-=(const nothrow_integer& b);
@@ -107,13 +112,13 @@
     static const nothrow_integer& nan();
     //@}
 
- /*! \name Internal Functions
- \brief These functions allow access to the internals of the
- %integer. They are intended for internal use only.
- */
- //@{
- void _make_unique();
- //@}
+ //! \brief For internal use only.
+ void _make_unique(bool);
+
+ typedef base_divide_t<nothrow_integer> divide_t;
+
+ private:
+ BOOST_XINT_COPYABLE_AND_MOVABLE(nothrow_integer)
 };
 
 //! \name Mathematical primitives
@@ -127,8 +132,8 @@
     multiplicand);
 nothrow_integer divide(const nothrow_integer& dividend, const nothrow_integer&
     divisor);
-std::pair<nothrow_integer, nothrow_integer> divide_r(const nothrow_integer&
- dividend, const nothrow_integer& divisor);
+nothrow_integer::divide_t divide_r(const nothrow_integer& dividend, const
+ nothrow_integer& divisor);
 //!@}
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -150,8 +155,8 @@
 std::string to_string(const nothrow_integer& n, size_t base=10, bool upperCase =
     false);
 nothrow_integer nothrow_from_string(const std::string& str, size_t base=10);
-std::string to_binary(const nothrow_integer& n);
-nothrow_integer nothrow_from_binary(const std::string& s);
+xint::binary_t to_binary(const nothrow_integer& n, size_t bits=0);
+nothrow_integer nothrow_from_binary(const xint::binary_t& s, size_t bits=0);
 //!@}
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -217,7 +222,6 @@
     These act exactly the same as for the built-in %integer types.
 */
 //!@{
-bool operator!(const nothrow_integer& n1);
 bool operator<(const nothrow_integer& n1, const nothrow_integer& n2);
 bool operator>(const nothrow_integer& n1, const nothrow_integer& n2);
 bool operator<=(const nothrow_integer& n1, const nothrow_integer& n2);
@@ -225,8 +229,6 @@
 bool operator==(const nothrow_integer& n1, const nothrow_integer& n2);
 bool operator!=(const nothrow_integer& n1, const nothrow_integer& n2);
 
-const nothrow_integer& operator+(const nothrow_integer& a);
-nothrow_integer operator-(const nothrow_integer& a);
 nothrow_integer operator+(const nothrow_integer& n1, const nothrow_integer& n2);
 nothrow_integer operator-(const nothrow_integer& n1, const nothrow_integer& n2);
 nothrow_integer operator*(const nothrow_integer& n1, const nothrow_integer& n2);
@@ -268,9 +270,9 @@
     typename boost::enable_if<boost::is_signed<T> >::type*)
 {
     try {
- *this=nothrow_integer(xint::nothrow_integer(n));
+ _set_signed(n);
     } catch (std::exception&) {
- _attach(0);
+ _base_attach(0);
     }
 }
 
@@ -291,9 +293,9 @@
     typename boost::enable_if<boost::is_unsigned<T> >::type*)
 {
     try {
- *this=nothrow_integer(xint::nothrow_integer(n));
+ _set_unsigned(n);
     } catch (std::exception&) {
- _attach(0);
+ _base_attach(0);
     }
 }
 
@@ -304,7 +306,7 @@
 template <typename T>
 T to(const nothrow_integer& n) {
     try {
- return to<T>(xint::nothrow_integer(n));
+ return detail::to<T>(n);
     } catch (std::exception&) {
         return 0;
     }
@@ -320,7 +322,7 @@
         out << detail::nan_text;
         return out;
     } else {
- return xint::operator<<(out, xint::nothrow_integer(n));
+ return detail::operator<<(out, n);
     }
 }
 
@@ -331,22 +333,31 @@
     if (in.peek()=='#') {
         // Must be either #NaN# or an error
         char buffer[6];
- std::streamsize size=in.readsome(buffer, 5);
- buffer[size]=0;
+
+ // These are efficient and safe, but MSVC complains about them anyway.
+ //std::streamsize size=in.readsome(buffer, 5);
+ //buffer[size]=0;
+
+ // Replacing them with these.
+ char *p = buffer, *pe = p + 5;
+ while (p != pe) in >> *p++;
+ *p = 0;
+
         std::string str(buffer);
 
         if (str==detail::nan_text) n=nothrow_integer::nan();
         else in.setstate(std::ios::failbit);
+ return in;
     } else {
- xint::nothrow_integer nn;
- xint::operator>>(in, nn);
- if (in) n=nn;
+ return detail::operator>>(in, n);
     }
-
- return in;
 }
 //!@}
 
+inline void swap(nothrow_integer& left, nothrow_integer& right) {
+ left._swap(right);
+}
+
 } // namespace xint
 } // namespace boost
 

Modified: sandbox/xint/boost/xint/random.hpp
==============================================================================
--- sandbox/xint/boost/xint/random.hpp (original)
+++ sandbox/xint/boost/xint/random.hpp 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -57,6 +57,7 @@
     struct base_random_generator {
         typedef unsigned int result_type;
         virtual result_type operator()()=0;
+ virtual ~base_random_generator() { }
     };
 
     //! Support class for the random generator code.

Modified: sandbox/xint/boost/xint/xint.hpp
==============================================================================
--- sandbox/xint/boost/xint/xint.hpp (original)
+++ sandbox/xint/boost/xint/xint.hpp 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -21,6 +21,7 @@
 #include "internals.hpp"
 #include "integer.hpp"
 #include "nothrow_integer.hpp"
+#include "fixed_integer.hpp"
 #include "random.hpp"
 #include "exceptions.hpp"
 

Modified: sandbox/xint/doc/acknowledgements.html
==============================================================================
--- sandbox/xint/doc/acknowledgements.html (original)
+++ sandbox/xint/doc/acknowledgements.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -12,7 +12,6 @@
   <div class="tabs">
     <ul>
       <li>Main Page</li>
- <li class="current">Related Pages</li>
       <li>Namespaces</li>
       <li>Classes</li>
       <li>Files</li>
@@ -56,7 +55,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 Sat Apr 17 20:02:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Apr 30 00:24:25 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.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-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -12,7 +12,6 @@
   <div class="tabs">
     <ul>
       <li>Main Page</li>
- <li>Related Pages</li>
       <li>Namespaces</li>
       <li>Classes</li>
       <li class="current">Files</li>
@@ -29,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 Sat Apr 17 20:02:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Apr 30 00:24:25 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
 </body>

Modified: sandbox/xint/doc/annotated.html
==============================================================================
--- sandbox/xint/doc/annotated.html (original)
+++ sandbox/xint/doc/annotated.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -12,7 +12,6 @@
   <div class="tabs">
     <ul>
       <li>Main Page</li>
- <li>Related Pages</li>
       <li>Namespaces</li>
       <li class="current">Classes</li>
       <li>Files</li>
@@ -28,28 +27,37 @@
 </div>
 <div class="contents">
 <h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
- <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td class="indexvalue">The base class for the integer classes </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t&lt; T &gt;</a></td><td class="indexvalue">Holds the results from a division-with-remainder call </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td class="indexvalue">The base class for all integer classes </td></tr>
   <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1detail_1_1base__random__generator.html">boost::xint::detail::base_random_generator</a></td><td class="indexvalue">The base class for <a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html" title="Support class for the random generator code.">random_generator</a> </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__variable__length__integer.html">boost::xint::detail::base_variable_length_integer</a></td><td class="indexvalue">The base class for the variable-length integer classes </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1detail_1_1bitqueue__t.html">boost::xint::detail::bitqueue_t</a></td><td class="indexvalue">Used internally to reorder bits into different-sized groupings </td></tr>
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html">boost::xint::exceptions::cannot_represent</a></td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html">boost::xint::detail::data_t&lt; digit_count &gt;</a></td><td class="indexvalue">Holds the magnitude digits of an integer </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html">boost::xint::detail::data_t</a></td><td class="indexvalue">Holds the magnitude digits of an integer </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classdisable__boost__rv__ref.html">disable_boost_rv_ref&lt; T &gt;</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">boost::xint::exceptions::divide_by_zero</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1fixed__integer.html">boost::xint::fixed_integer&lt; Bits &gt;</a></td><td class="indexvalue">A fixed-size integer type </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1fixed__integer__any.html">boost::xint::fixed_integer_any</a></td><td class="indexvalue">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 </td></tr>
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1integer.html">boost::xint::integer</a></td><td class="indexvalue">The core integer class </td></tr>
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">boost::xint::exceptions::invalid_argument</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">boost::xint::exceptions::invalid_base</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html">boost::xint::exceptions::invalid_digit</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html">boost::xint::exceptions::invalid_modulus</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1detail_1_1neg__t.html">boost::xint::detail::neg_t</a></td><td class="indexvalue">Makes a negated temporary integer that can always share storage </td></tr>
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">boost::xint::exceptions::no_strong_random</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">boost::xint::exceptions::not_a_number</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1nothrow__integer.html">boost::xint::nothrow_integer</a></td><td class="indexvalue">The nothrow_integer class </td></tr>
+ <tr><td class="indexkey"><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&lt; boost::xint::fixed_integer&lt; Bits &gt; &gt;</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1integer_01_4.html">std::numeric_limits&lt; boost::xint::integer &gt;</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classstd_1_1numeric__limits_3_01boost_1_1xint_1_1nothrow__integer_01_4.html">std::numeric_limits&lt; boost::xint::nothrow_integer &gt;</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">boost::xint::exceptions::overflow_error</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1detail_1_1random__generator.html">boost::xint::detail::random_generator&lt; T &gt;</a></td><td class="indexvalue">Support class for the random generator code </td></tr>
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1strong__random__generator.html">boost::xint::strong_random_generator</a></td><td class="indexvalue">A convenience class for cryptographically-secure random numbers </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1detail_1_1temp__t.html">boost::xint::detail::temp_t</a></td><td class="indexvalue">Makes a temporary integer that can always share storage </td></tr>
   <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 Sat Apr 17 20:02:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Apr 30 00:24:25 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.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-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -12,7 +12,6 @@
   <div class="tabs">
     <ul>
       <li>Main Page</li>
- <li>Related Pages</li>
       <li>Namespaces</li>
       <li>Classes</li>
       <li class="current">Files</li>
@@ -44,13 +43,15 @@
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>The items within this namespace are meant for internal use only. </p>
 <br/></td></tr>
 </p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#aee0c323135ed34026523afa598e8a270">boost::xint::detail::log10_bits</a> (size_t bits)</td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Contains the definitions for the <code>base_integer</code> member functions. </p>
 
 <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 Sat Apr 17 20:02:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Apr 30 00:24:25 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.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-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -12,7 +12,6 @@
   <div class="tabs">
     <ul>
       <li>Main Page</li>
- <li>Related Pages</li>
       <li>Namespaces</li>
       <li>Classes</li>
       <li class="current">Files</li>
@@ -37,275 +36,347 @@
 <a name="l00011"></a>00011 <span class="comment"> See http://www.boost.org/libs/xint for library home page.</span>
 <a name="l00012"></a>00012 <span class="comment">*/</span>
 <a name="l00013"></a>00013
-<a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
-<a name="l00019"></a>00019
-<a name="l00020"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html">00020</a> <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
-<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"> #define XINT_DISABLE_COPY_ON_WRITE</span>
-<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00023"></a>00023 <span class="preprocessor"></span>
-<a name="l00024"></a><a class="code" href="namespaceboost.html">00024</a> <span class="keyword">namespace </span>boost {
-<a name="l00025"></a>00025 <span class="keyword">namespace </span>xint {
-<a name="l00026"></a>00026 <span class="keyword">namespace </span>detail {
-<a name="l00027"></a>00027
-<a name="l00028"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a94ba0c5d0b11588062116ebf6263f2cc">00028</a> <span class="keyword">namespace </span>{
-<a name="l00029"></a>00029 <span class="keyword">struct </span>zerodata_t: <span class="keyword">public</span> <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the magnitude digits of an integer.">data_t</a>&lt;&gt; {
-<a name="l00030"></a>00030 <span class="keyword">public</span>:
-<a name="l00031"></a>00031 zerodata_t() { copies=1; length=max_length=1; *magnitude=0; }
-<a name="l00032"></a>00032 } zerodata;
-<a name="l00033"></a>00033 } <span class="comment">// namespace</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../boost/xint/internals.hpp&quot;</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../boost/xint/integer.hpp&quot;</span>
+<a name="l00020"></a>00020
+<a name="l00021"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html">00021</a> <span class="preprocessor">#ifdef XINT_THREADSAFE</span>
+<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"> #define XINT_DISABLE_COPY_ON_WRITE</span>
+<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00024"></a>00024 <span class="preprocessor"></span>
+<a name="l00025"></a><a class="code" href="namespaceboost.html">00025</a> <span class="keyword">namespace </span>boost {
+<a name="l00026"></a>00026 <span class="keyword">namespace </span>xint {
+<a name="l00027"></a>00027 <span class="keyword">namespace </span>detail {
+<a name="l00028"></a>00028
+<a name="l00029"></a>00029 <span class="keyword">namespace </span>{
+<a name="l00030"></a>00030 <span class="keyword">struct </span>zerodata_t: <span class="keyword">public</span> data_t {
+<a name="l00031"></a>00031 <span class="keyword">public</span>:
+<a name="l00032"></a>00032 zerodata_t() { copies=1; fixed_mask=0; length=max_length=1; *magnitude=0; }
+<a name="l00033"></a>00033 };
 <a name="l00034"></a>00034
-<a name="l00035"></a>00035 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0e91eb0fd9e83d3cfc284d5b7e20207e">base_integer::base_integer</a>(<span class="keywordtype">size_t</span> count, <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> mask, <span class="keywordtype">void</span> *d):
-<a name="l00036"></a>00036 fixed_mask(mask), negative(false), data(reinterpret_cast&lt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the magnitude digits of an integer.">data_t</a>&lt;&gt;*&gt;(d))
-<a name="l00037"></a>00037 {
-<a name="l00038"></a>00038 assert(mask != 0);
+<a name="l00035"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0e91eb0fd9e83d3cfc284d5b7e20207e">00035</a> zerodata_t* zerodata() {
+<a name="l00036"></a>00036 <span class="keyword">static</span> std::auto_ptr&lt;zerodata_t&gt; z(<span class="keyword">new</span> zerodata_t);
+<a name="l00037"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab5e59c173051f19be31b5af9c2077de0">00037</a> <span class="keywordflow">return</span> z.get();
+<a name="l00038"></a>00038 }
 <a name="l00039"></a>00039
-<a name="l00040"></a>00040 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a2c4e92bbb54af690e1a53e2c02196e52">copies</a>=1;
-<a name="l00041"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a33dd417aa6d0a7892efe3d497b8f3f80">00041</a> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a>=1;
-<a name="l00042"></a>00042 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ac861550f6fa834587a7fafc24e006d22">max_length</a>=count;
-<a name="l00043"></a>00043
-<a name="l00044"></a>00044 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *i = data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a>, *ie = i + data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ac861550f6fa834587a7fafc24e006d22">max_length</a>;
-<a name="l00045"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aad96a1fe27c2b1da6fe933acc444d98f">00045</a> <span class="keywordflow">while</span> (i != ie) *i++ = 0;
-<a name="l00046"></a>00046 }
-<a name="l00047"></a>00047
-<a name="l00048"></a>00048 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a33dd417aa6d0a7892efe3d497b8f3f80">base_integer::~base_integer</a>() {
-<a name="l00049"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a04f1087ed90152d3cc1b803b359951ab">00049</a> <span class="keywordflow">if</span> (fixed_mask != 0 &amp;&amp; data &amp;&amp; data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a2c4e92bbb54af690e1a53e2c02196e52">copies</a> == 1) <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a3465b5d474bf9db2df3567fe68e15d33">deallocate</a>(data);
-<a name="l00050"></a>00050 }
-<a name="l00051"></a>00051
-<a name="l00052"></a>00052 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aad96a1fe27c2b1da6fe933acc444d98f">base_integer::_get_digit</a>(<span class="keywordtype">size_t</span> index)<span class="keyword"> const </span>{
-<a name="l00053"></a>00053 <span class="keywordflow">return</span> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a>[index];
-<a name="l00054"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee8727d51762352bba8ea8e3b8489f2">00054</a> }
-<a name="l00055"></a>00055
-<a name="l00056"></a>00056 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aad96a1fe27c2b1da6fe933acc444d98f">base_integer::_get_digit</a>(<span class="keywordtype">size_t</span> index, <span class="keywordtype">bool</span>)<span class="keyword"> const </span>{
-<a name="l00057"></a>00057 <span class="keywordflow">if</span> (index &gt;= data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a>) <span class="keywordflow">return</span> 0;
-<a name="l00058"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4dbd638f790c50cfb2f68af5d3852372">00058</a> <span class="keywordflow">return</span> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a>[index];
-<a name="l00059"></a>00059 }
-<a name="l00060"></a>00060
-<a name="l00061"></a>00061 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>* <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee8727d51762352bba8ea8e3b8489f2">base_integer::_get_digits</a>() {
-<a name="l00062"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a7462afdf5589caa01bb1ed732f633469">00062</a> <span class="keywordflow">return</span> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a>;
-<a name="l00063"></a>00063 }
-<a name="l00064"></a>00064
-<a name="l00065"></a>00065 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>* <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee8727d51762352bba8ea8e3b8489f2">base_integer::_get_digits</a>()<span class="keyword"> const </span>{
-<a name="l00066"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ad75a8d9bef5eb2d57cbac37cafd925eb">00066</a> <span class="keywordflow">return</span> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a>;
-<a name="l00067"></a>00067 }
-<a name="l00068"></a>00068
-<a name="l00069"></a>00069 <span class="keywordtype">size_t</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a7462afdf5589caa01bb1ed732f633469">base_integer::_get_length</a>()<span class="keyword"> const </span>{
-<a name="l00070"></a>00070 <span class="keywordflow">return</span> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a>;
-<a name="l00071"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">00071</a> }
-<a name="l00072"></a>00072
-<a name="l00073"></a>00073 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ad75a8d9bef5eb2d57cbac37cafd925eb">base_integer::_duplicate</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html" title="The base class for the integer classes.">base_integer</a>&amp; c, <span class="keywordtype">size_t</span> extra) {
-<a name="l00074"></a>00074 negative=c.negative;
-<a name="l00075"></a>00075 data=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#ab5aa26edc4b7699f3ff5d18729732b71">duplicate</a>(data, c.data, extra);
-<a name="l00076"></a>00076 }
-<a name="l00077"></a>00077
-<a name="l00078"></a>00078 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">base_integer::_attach</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the magnitude digits of an integer.">data_t&lt;&gt;</a> *new_data, <span class="keywordtype">bool</span> neg) {
-<a name="l00079"></a>00079 assert(fixed_mask == 0);
-<a name="l00080"></a>00080
-<a name="l00081"></a>00081 <span class="preprocessor"> #ifdef XINT_DISABLE_COPY_ON_WRITE</span>
-<a name="l00082"></a>00082 <span class="preprocessor"></span> data=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#ab5aa26edc4b7699f3ff5d18729732b71">duplicate</a>(data, new_data);
-<a name="l00083"></a>00083 <span class="preprocessor"> #else</span>
-<a name="l00084"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee6c6d706a8dc8cdd1a16b1e65a47e2">00084</a> <span class="preprocessor"></span> <span class="keywordflow">if</span> (data &amp;&amp; --data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a2c4e92bbb54af690e1a53e2c02196e52">copies</a> == 0) <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a3465b5d474bf9db2df3567fe68e15d33">deallocate</a>(data);
-<a name="l00085"></a>00085 data=new_data;
-<a name="l00086"></a>00086 <span class="keywordflow">if</span> (data) ++data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a2c4e92bbb54af690e1a53e2c02196e52">copies</a>;
-<a name="l00087"></a>00087 <span class="preprocessor"> #endif</span>
-<a name="l00088"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4f2678c34cdf09e8df0c38ea91347fd7">00088</a> <span class="preprocessor"></span> negative=neg;
-<a name="l00089"></a>00089 }
-<a name="l00090"></a>00090
-<a name="l00091"></a>00091 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">base_integer::_attach</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html" title="The base class for the integer classes.">base_integer</a>&amp; copy) {
-<a name="l00092"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab94f96758a658c1523291c6d10ca7dc0">00092</a> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">_attach</a>(copy.data, copy.negative);
-<a name="l00093"></a>00093 }
-<a name="l00094"></a>00094
-<a name="l00095"></a>00095 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4f2678c34cdf09e8df0c38ea91347fd7">base_integer::_attach_0</a>() {
-<a name="l00096"></a>00096 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">_attach</a>(&amp;zerodata);
-<a name="l00097"></a>00097 }
-<a name="l00098"></a>00098
-<a name="l00099"></a>00099 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab94f96758a658c1523291c6d10ca7dc0">base_integer::_attach_1</a>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> n) {
-<a name="l00100"></a>00100 <span class="keywordflow">if</span> (n == 0) {
-<a name="l00101"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a00be0a0a2d19316259c54a8ced4e8451">00101</a> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">_attach</a>(&amp;zerodata);
-<a name="l00102"></a>00102 } <span class="keywordflow">else</span> {
-<a name="l00103"></a>00103 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">_attach</a>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a092b8b90955e65e858dfbdd1cc35b960">allocate</a>(1));
-<a name="l00104"></a>00104 *data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a>=n;
-<a name="l00105"></a>00105 }
-<a name="l00106"></a>00106 }
-<a name="l00107"></a>00107
-<a name="l00108"></a>00108 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a00be0a0a2d19316259c54a8ced4e8451">base_integer::_attach_n</a>(boost::uintmax_t n) {
-<a name="l00109"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0980c3f09050640e8f33a9f10bcd2c38">00109</a> <span class="keyword">static</span> <span class="keywordtype">int</span> bits = std::numeric_limits&lt;boost::uintmax_t&gt;::digits;
-<a name="l00110"></a>00110 <span class="keyword">static</span> <span class="keywordtype">int</span> maxDigits = (bits + <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> - 1) / <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
-<a name="l00111"></a>00111
-<a name="l00112"></a>00112 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">_attach</a>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a092b8b90955e65e858dfbdd1cc35b960">allocate</a>(maxDigits));
-<a name="l00113"></a>00113 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0980c3f09050640e8f33a9f10bcd2c38">_set_n</a>(n);
-<a name="l00114"></a>00114 }
-<a name="l00115"></a>00115
-<a name="l00116"></a>00116 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0980c3f09050640e8f33a9f10bcd2c38">base_integer::_set_n</a>(boost::uintmax_t n) {
-<a name="l00117"></a>00117 <span class="comment">// Assumes that the proper allocation was already done</span>
-<a name="l00118"></a>00118 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a> = data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ac861550f6fa834587a7fafc24e006d22">max_length</a>;
-<a name="l00119"></a>00119 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *i = data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a>, *ie = i + data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ac861550f6fa834587a7fafc24e006d22">max_length</a>;
-<a name="l00120"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aee70939aaa336233f62341cf7d595010">00120</a> <span class="keywordflow">while</span> (n != 0 &amp;&amp; i != ie) {
-<a name="l00121"></a>00121 *i++ = <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(n &amp; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">digit_mask</a>);
-<a name="l00122"></a>00122 n &gt;&gt;= <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
-<a name="l00123"></a>00123 }
-<a name="l00124"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a576bd802f9b2cb8450250839bc52b98c">00124</a> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a>();
-<a name="l00125"></a>00125 }
-<a name="l00126"></a>00126
-<a name="l00127"></a>00127 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aee70939aaa336233f62341cf7d595010">base_integer::_is_unique</a>()<span class="keyword"> const </span>{
-<a name="l00128"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2a6ba9a67a9167e9535d735dacbaace7">00128</a> <span class="keywordflow">return</span> (!data || data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a2c4e92bbb54af690e1a53e2c02196e52">copies</a> == 1);
-<a name="l00129"></a>00129 }
-<a name="l00130"></a>00130
-<a name="l00131"></a>00131 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a576bd802f9b2cb8450250839bc52b98c">base_integer::_is_zero</a>()<span class="keyword"> const </span>{
-<a name="l00132"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91cb2f84f30425e9158c2ac9bfcd9cb6">00132</a> <span class="keywordflow">return</span> (data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a> == 1 &amp;&amp; *data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a> == 0);
-<a name="l00133"></a>00133 }
-<a name="l00134"></a>00134
-<a name="l00135"></a>00135 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2a6ba9a67a9167e9535d735dacbaace7">base_integer::_get_negative</a>()<span class="keyword"> const </span>{
-<a name="l00136"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">00136</a> <span class="keywordflow">return</span> negative;
-<a name="l00137"></a>00137 }
-<a name="l00138"></a>00138
-<a name="l00139"></a>00139 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91cb2f84f30425e9158c2ac9bfcd9cb6">base_integer::_set_negative</a>(<span class="keywordtype">bool</span> neg) {
-<a name="l00140"></a>00140 negative=neg;
-<a name="l00141"></a>00141 }
-<a name="l00142"></a>00142
-<a name="l00143"></a>00143 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">base_integer::_cleanup</a>() {
-<a name="l00144"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a36175e45a3f8660f59a9de593328fefd">00144</a> <span class="keywordflow">if</span> (fixed_mask) data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a>[data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#ac861550f6fa834587a7fafc24e006d22">max_length</a>-1] &amp;= fixed_mask;
-<a name="l00145"></a>00145 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *p = data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a> + data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a> - 1;
-<a name="l00146"></a>00146 <span class="keywordflow">while</span> (p != data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a> &amp;&amp; *p == 0) { --data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a>; --p; }
-<a name="l00147"></a>00147 <span class="keywordflow">if</span> (data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a> == 1 &amp;&amp; *data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a> == 0) negative = <span class="keyword">false</span>;
-<a name="l00148"></a>00148
-<a name="l00149"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aea0cff03f7886f2c44747538e27ad7f1">00149</a> }
-<a name="l00150"></a>00150
-<a name="l00151"></a>00151 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a36175e45a3f8660f59a9de593328fefd">base_integer::_realloc</a>(<span class="keywordtype">size_t</span> new_digit_count) {
-<a name="l00152"></a>00152 assert(fixed_mask == 0);
-<a name="l00153"></a>00153 data = <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a756b3b8912e24da52a5f1e54d49bbbbe">reallocate</a>(data, new_digit_count);
-<a name="l00154"></a>00154 }
-<a name="l00155"></a>00155
-<a name="l00156"></a>00156 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aea0cff03f7886f2c44747538e27ad7f1">base_integer::_shift_left</a>(<span class="keywordtype">size_t</span> byBits) {
-<a name="l00157"></a>00157 <span class="keywordtype">size_t</span> bytes=byBits / <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>, bits=byBits % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
-<a name="l00158"></a>00158 <span class="keywordtype">size_t</span> oldLength = data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a>;
-<a name="l00159"></a>00159
-<a name="l00160"></a>00160 data=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a756b3b8912e24da52a5f1e54d49bbbbe">reallocate</a>(data, data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a> + bytes + 1);
-<a name="l00161"></a>00161
-<a name="l00162"></a>00162 <span class="keywordflow">if</span> (bits != 0) {
-<a name="l00163"></a>00163 <span class="comment">// Handle both bits and bytes in one pass</span>
-<a name="l00164"></a>00164 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s = data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a> + oldLength - 1, *t = s + bytes + 1;
+<a name="l00040"></a>00040 } <span class="comment">// namespace</span>
+<a name="l00041"></a>00041
+<a name="l00042"></a>00042 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0e91eb0fd9e83d3cfc284d5b7e20207e">base_integer::base_integer</a>(): flags(0), data(0) { }
+<a name="l00043"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a160a243a54984431613c88fb7fbacb0c">00043</a>
+<a name="l00044"></a>00044 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0e91eb0fd9e83d3cfc284d5b7e20207e">base_integer::base_integer</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html" title="The base class for all integer classes.">base_integer</a>&amp; c, <span class="keywordtype">bool</span> fixed): flags(0), data(0)
+<a name="l00045"></a>00045 {
+<a name="l00046"></a>00046 <span class="keywordflow">if</span> (fixed) flags |= <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a988572f30ed3d8fc3b936eeec09724ef">flag_fixedlength</a>;
+<a name="l00047"></a>00047 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee6c6d706a8dc8cdd1a16b1e65a47e2">_attach</a>(c);
+<a name="l00048"></a>00048 }
+<a name="l00049"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a94fcb8494e0a8787c34ea6dcb9d5c4cf">00049</a>
+<a name="l00050"></a>00050 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0e91eb0fd9e83d3cfc284d5b7e20207e">base_integer::base_integer</a>(<span class="keywordtype">size_t</span> count, <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> mask): flags(flag_fixedlength),
+<a name="l00051"></a>00051 data(0)
+<a name="l00052"></a>00052 {
+<a name="l00053"></a>00053 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9e58a5897a80b8017ff7da7f0abacb6b">_base_attach</a>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa11166a9b6a4505bc8793ecdc31ad81f">allocate_fixed</a>(mask, count, 1));
+<a name="l00054"></a>00054 }
+<a name="l00055"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a33dd417aa6d0a7892efe3d497b8f3f80">00055</a>
+<a name="l00056"></a>00056 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0e91eb0fd9e83d3cfc284d5b7e20207e">base_integer::base_integer</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the magnitude digits of an integer.">data_t</a> *adopt, <span class="keywordtype">bool</span> neg): flags(0), data(0) {
+<a name="l00057"></a>00057 <span class="keywordflow">if</span> (adopt &amp;&amp; adopt-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a> != 0) flags |= <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a988572f30ed3d8fc3b936eeec09724ef">flag_fixedlength</a>;
+<a name="l00058"></a>00058 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9e58a5897a80b8017ff7da7f0abacb6b">_base_attach</a>(adopt);
+<a name="l00059"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aad96a1fe27c2b1da6fe933acc444d98f">00059</a> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91cb2f84f30425e9158c2ac9bfcd9cb6">_set_negative</a>(neg);
+<a name="l00060"></a>00060 }
+<a name="l00061"></a>00061
+<a name="l00062"></a>00062 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a33dd417aa6d0a7892efe3d497b8f3f80">base_integer::~base_integer</a>() {
+<a name="l00063"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a04f1087ed90152d3cc1b803b359951ab">00063</a> <span class="keywordflow">if</span> (data &amp;&amp; --data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a75fbdec9c81fcd83302e479ed2cae3c0">copies</a> == 0) <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a44089260e9472ac378d3e2ed739e7e08">deallocate</a>(data);
+<a name="l00064"></a>00064 }
+<a name="l00065"></a>00065
+<a name="l00066"></a>00066 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aad96a1fe27c2b1da6fe933acc444d98f">base_integer::_get_digit</a>(<span class="keywordtype">size_t</span> index)<span class="keyword"> const </span>{
+<a name="l00067"></a>00067 <span class="keywordflow">return</span> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a>[index];
+<a name="l00068"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a355b981cef93f9c674fe4202b4d02d64">00068</a> }
+<a name="l00069"></a>00069
+<a name="l00070"></a>00070 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aad96a1fe27c2b1da6fe933acc444d98f">base_integer::_get_digit</a>(<span class="keywordtype">size_t</span> index, <span class="keywordtype">bool</span>)<span class="keyword"> const </span>{
+<a name="l00071"></a>00071 <span class="keywordflow">if</span> (index &gt;= data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a>) <span class="keywordflow">return</span> 0;
+<a name="l00072"></a>00072 <span class="keywordflow">return</span> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a>[index];
+<a name="l00073"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4dbd638f790c50cfb2f68af5d3852372">00073</a> }
+<a name="l00074"></a>00074
+<a name="l00075"></a>00075 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>* <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a355b981cef93f9c674fe4202b4d02d64">base_integer::_get_writable_digits</a>() {
+<a name="l00076"></a>00076 assert(!<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ac4692f68ae9b4c949680421c877dc400">_get_readonly</a>());
+<a name="l00077"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a7462afdf5589caa01bb1ed732f633469">00077</a> <span class="keywordflow">return</span> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a>;
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079
+<a name="l00080"></a>00080 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>* <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4dbd638f790c50cfb2f68af5d3852372">base_integer::_get_digits</a>()<span class="keyword"> const </span>{
+<a name="l00081"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ac9fbd48df9971107d98ff5840ee3557e">00081</a> <span class="keywordflow">return</span> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a>;
+<a name="l00082"></a>00082 }
+<a name="l00083"></a>00083
+<a name="l00084"></a>00084 <span class="keywordtype">size_t</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a7462afdf5589caa01bb1ed732f633469">base_integer::_get_length</a>()<span class="keyword"> const </span>{
+<a name="l00085"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a44cf0d0743513fe84addcaf2e66bb343">00085</a> <span class="keywordflow">return</span> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a>;
+<a name="l00086"></a>00086 }
+<a name="l00087"></a>00087
+<a name="l00088"></a>00088 <span class="keywordtype">size_t</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ac9fbd48df9971107d98ff5840ee3557e">base_integer::_get_max_length</a>()<span class="keyword"> const </span>{
+<a name="l00089"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a29f37fcd3e14cd2b271d990edc3dbb56">00089</a> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a70e40ee3b40acbc6a7dd55a7f8d5c13c">_is_fixed</a>() ? <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a546d2270418066857ddf948b20de4810">_fixed_digits</a>() : (std::numeric_limits&lt;size_t&gt;::max)();
+<a name="l00090"></a>00090 }
+<a name="l00091"></a>00091
+<a name="l00092"></a>00092 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a44cf0d0743513fe84addcaf2e66bb343">base_integer::_set_length</a>(<span class="keywordtype">size_t</span> digits) {
+<a name="l00093"></a>00093 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a> = digits;
+<a name="l00094"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ad87a527e2b5379b358484893a1cd8ebb">00094</a> }
+<a name="l00095"></a>00095
+<a name="l00096"></a>00096 <span class="keywordtype">size_t</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a29f37fcd3e14cd2b271d990edc3dbb56">base_integer::_log2</a>()<span class="keyword"> const </span>{
+<a name="l00097"></a>00097 <span class="keywordtype">size_t</span> len = <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a7462afdf5589caa01bb1ed732f633469">_get_length</a>() - 1;
+<a name="l00098"></a>00098 <span class="keywordflow">return</span> (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> * len) + <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a35e711ff550651a2d9414249e9adcc60">log2</a>(<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aad96a1fe27c2b1da6fe933acc444d98f">_get_digit</a>(len));
+<a name="l00099"></a>00099 }
+<a name="l00100"></a>00100
+<a name="l00101"></a>00101 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ad87a527e2b5379b358484893a1cd8ebb">base_integer::_set_unsigned</a>(boost::uintmax_t n, <span class="keywordtype">bool</span> negative) {
+<a name="l00102"></a>00102 <span class="comment">// Assumes that the proper allocation &amp; sizing was already done</span>
+<a name="l00103"></a>00103 assert(!<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ac4692f68ae9b4c949680421c877dc400">_get_readonly</a>());
+<a name="l00104"></a>00104 <span class="keywordflow">if</span> (data == 0) <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9e58a5897a80b8017ff7da7f0abacb6b">_base_attach</a>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#af1f0f3f0daacef4f7c496378bf6bdfd8">allocate</a>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a2dcd1e1d9d0bed7c296c7474ed4f976e">detail::digits_in_uintmax</a>));
+<a name="l00105"></a>00105 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(n) == n) {
+<a name="l00106"></a>00106 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a> = 1;
+<a name="l00107"></a>00107 *data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a> = <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(n);
+<a name="l00108"></a>00108 } <span class="keywordflow">else</span> {
+<a name="l00109"></a>00109 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *i = data-&gt;magnitude, *ie = i + data-&gt;max_length;
+<a name="l00110"></a>00110 <span class="keywordflow">while</span> (n != 0 &amp;&amp; i != ie) {
+<a name="l00111"></a>00111 *i++ = <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(n &amp; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">digit_mask</a>);
+<a name="l00112"></a>00112 n &gt;&gt;= <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
+<a name="l00113"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#af81476d55eaf931ff396c82894c7f72d">00113</a> }
+<a name="l00114"></a>00114 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a> = i - data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a>;
+<a name="l00115"></a>00115 }
+<a name="l00116"></a>00116 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91cb2f84f30425e9158c2ac9bfcd9cb6">_set_negative</a>(negative);
+<a name="l00117"></a>00117 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a>();
+<a name="l00118"></a>00118 }
+<a name="l00119"></a>00119
+<a name="l00120"></a>00120 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#af81476d55eaf931ff396c82894c7f72d">base_integer::_set_signed</a>(boost::intmax_t n) {
+<a name="l00121"></a>00121 <span class="keywordflow">if</span> (n &gt;= 0) {
+<a name="l00122"></a>00122 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ad87a527e2b5379b358484893a1cd8ebb">_set_unsigned</a>(n);
+<a name="l00123"></a>00123 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == (std::numeric_limits&lt;boost::intmax_t&gt;::min)()) {
+<a name="l00124"></a>00124 <span class="comment">// Have to treat the minimum number carefully, because -n is not</span>
+<a name="l00125"></a>00125 <span class="comment">// what you&#39;d think it is.</span>
+<a name="l00126"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aee70939aaa336233f62341cf7d595010">00126</a> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ad87a527e2b5379b358484893a1cd8ebb">_set_unsigned</a>(-(n+1), <span class="keyword">true</span>);
+<a name="l00127"></a>00127 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91e4b721c42445501b136a13d7ce9d32">_decrement</a>();
+<a name="l00128"></a>00128 } <span class="keywordflow">else</span> {
+<a name="l00129"></a>00129 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ad87a527e2b5379b358484893a1cd8ebb">_set_unsigned</a>(-n, <span class="keyword">true</span>);
+<a name="l00130"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a576bd802f9b2cb8450250839bc52b98c">00130</a> }
+<a name="l00131"></a>00131 }
+<a name="l00132"></a>00132
+<a name="l00133"></a>00133 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aee70939aaa336233f62341cf7d595010">base_integer::_is_unique</a>()<span class="keyword"> const </span>{
+<a name="l00134"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a70e40ee3b40acbc6a7dd55a7f8d5c13c">00134</a> <span class="keywordflow">return</span> (!data || data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a75fbdec9c81fcd83302e479ed2cae3c0">copies</a> &lt;= 1);
+<a name="l00135"></a>00135 }
+<a name="l00136"></a>00136
+<a name="l00137"></a>00137 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a576bd802f9b2cb8450250839bc52b98c">base_integer::_is_zero</a>()<span class="keyword"> const </span>{
+<a name="l00138"></a>00138 <span class="keywordflow">return</span> (data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a> == 1 &amp;&amp; *data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a> == 0);
+<a name="l00139"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a546d2270418066857ddf948b20de4810">00139</a> }
+<a name="l00140"></a>00140
+<a name="l00141"></a>00141 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a70e40ee3b40acbc6a7dd55a7f8d5c13c">base_integer::_is_fixed</a>()<span class="keyword"> const </span>{
+<a name="l00142"></a>00142 <span class="keywordflow">if</span> (data) <span class="keywordflow">return</span> (data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a> != 0);
+<a name="l00143"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a89015b1e803dbd5162f6b6e5f3ff374c">00143</a> <span class="keywordflow">else</span> <span class="keywordflow">return</span> ((flags &amp; <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a988572f30ed3d8fc3b936eeec09724ef">flag_fixedlength</a>) != 0);
+<a name="l00144"></a>00144 }
+<a name="l00145"></a>00145
+<a name="l00146"></a>00146 <span class="keywordtype">size_t</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a546d2270418066857ddf948b20de4810">base_integer::_fixed_digits</a>()<span class="keyword"> const </span>{
+<a name="l00147"></a>00147 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a70e40ee3b40acbc6a7dd55a7f8d5c13c">_is_fixed</a>() ? data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af6047dff158ec443f2f73d012710d4cd">max_length</a> : 0;
+<a name="l00148"></a>00148 }
+<a name="l00149"></a>00149
+<a name="l00150"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2a6ba9a67a9167e9535d735dacbaace7">00150</a> <span class="keywordtype">size_t</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a89015b1e803dbd5162f6b6e5f3ff374c">base_integer::_fixed_bits</a>()<span class="keyword"> const </span>{
+<a name="l00151"></a>00151 <span class="keywordtype">size_t</span> digits = <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a546d2270418066857ddf948b20de4810">_fixed_digits</a>();
+<a name="l00152"></a>00152 <span class="keywordflow">if</span> (digits != 0) <span class="keywordflow">return</span> ((digits - 1) * <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">detail::bits_per_digit</a>) +
+<a name="l00153"></a>00153 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a35e711ff550651a2d9414249e9adcc60">detail::log2</a>(data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a>);
+<a name="l00154"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91cb2f84f30425e9158c2ac9bfcd9cb6">00154</a> <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
+<a name="l00155"></a>00155 }
+<a name="l00156"></a>00156
+<a name="l00157"></a>00157 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2a6ba9a67a9167e9535d735dacbaace7">base_integer::_get_negative</a>()<span class="keyword"> const </span>{
+<a name="l00158"></a>00158 <span class="keywordflow">return</span> ((flags &amp; <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a406617f773cbc0901a60290c5bc4dbac">flag_negative</a>) ? <span class="keyword">true</span> : <span class="keyword">false</span>);
+<a name="l00159"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2397061bb963562fd145ed5b4a6799ca">00159</a> }
+<a name="l00160"></a>00160
+<a name="l00161"></a>00161 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91cb2f84f30425e9158c2ac9bfcd9cb6">base_integer::_set_negative</a>(<span class="keywordtype">bool</span> neg) {
+<a name="l00162"></a>00162 <span class="keywordflow">if</span> (neg) flags |= <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a406617f773cbc0901a60290c5bc4dbac">flag_negative</a>;
+<a name="l00163"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ac4692f68ae9b4c949680421c877dc400">00163</a> <span class="keywordflow">else</span> flags &amp;= ~<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a406617f773cbc0901a60290c5bc4dbac">flag_negative</a>;
+<a name="l00164"></a>00164 }
 <a name="l00165"></a>00165
-<a name="l00166"></a>00166 *t-- = *s &gt;&gt; (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> - bits);
-<a name="l00167"></a>00167 <span class="keywordflow">while</span> (s &gt; data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a>) {
-<a name="l00168"></a>00168 *t = (*s-- &lt;&lt; bits);
-<a name="l00169"></a>00169 *t-- |= (*s &gt;&gt; (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> - bits));
-<a name="l00170"></a>00170 }
-<a name="l00171"></a>00171 *t = (*s &lt;&lt; bits);
-<a name="l00172"></a>00172
-<a name="l00173"></a>00173 <span class="keywordflow">if</span> (bytes != 0) {
-<a name="l00174"></a>00174 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t = data-&gt;magnitude, *te = t + bytes;
-<a name="l00175"></a>00175 <span class="keywordflow">while</span> (t != te) *t++ = 0;
-<a name="l00176"></a>00176 }
-<a name="l00177"></a>00177 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bytes != 0) {
-<a name="l00178"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a8236c349f72d154823d592123d94f218">00178</a> memmove(data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a> + bytes, data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a>, <span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>) *
-<a name="l00179"></a>00179 oldLength);
-<a name="l00180"></a>00180 memset(data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a>, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>) * bytes);
-<a name="l00181"></a>00181 }
-<a name="l00182"></a>00182 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a>();
-<a name="l00183"></a>00183 }
-<a name="l00184"></a>00184
-<a name="l00185"></a>00185 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a8236c349f72d154823d592123d94f218">base_integer::_shift_right</a>(<span class="keywordtype">size_t</span> byBits) {
-<a name="l00186"></a>00186 <span class="keywordtype">size_t</span> bytes=byBits / <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>, bits=byBits % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>,
-<a name="l00187"></a>00187 bits2 = <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> - bits;
-<a name="l00188"></a>00188
-<a name="l00189"></a>00189 <span class="keywordflow">if</span> (bytes &gt;= data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a>) {
-<a name="l00190"></a>00190 <span class="comment">// Right-shift it into oblivion.</span>
-<a name="l00191"></a>00191 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a> = 1;
-<a name="l00192"></a>00192 *data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a> = 0;
-<a name="l00193"></a>00193 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits != 0) {
-<a name="l00194"></a>00194 <span class="comment">// Handle both bits and bytes in one pass</span>
-<a name="l00195"></a>00195 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t = data-&gt;magnitude, *s = data-&gt;magnitude + bytes,
-<a name="l00196"></a>00196 *se = data-&gt;magnitude + data-&gt;length - 1;
-<a name="l00197"></a>00197 <span class="keywordflow">while</span> (s!=se) {
-<a name="l00198"></a>00198 *t = (*s++ &gt;&gt; bits);
-<a name="l00199"></a>00199 *t++ |= (*s &lt;&lt; bits2);
-<a name="l00200"></a>00200 }
-<a name="l00201"></a>00201 *t = (*s &gt;&gt; bits);
-<a name="l00202"></a>00202 <span class="keywordflow">if</span> (bytes != 0) {
-<a name="l00203"></a>00203 memset(data-&gt;magnitude + data-&gt;length - bytes, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>) *
-<a name="l00204"></a>00204 bytes);
-<a name="l00205"></a>00205 data-&gt;length -= bytes;
-<a name="l00206"></a>00206 }
-<a name="l00207"></a>00207 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a>();
-<a name="l00208"></a>00208 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bytes != 0) {
-<a name="l00209"></a>00209 memmove(data-&gt;magnitude, data-&gt;magnitude + bytes, <span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>) *
-<a name="l00210"></a>00210 (data-&gt;length - bytes));
-<a name="l00211"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#abdfe224ab8dae4dbd4cfdd16e6c0612f">00211</a> memset(data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a> + data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a> - bytes, 0, <span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>) *
-<a name="l00212"></a>00212 bytes);
-<a name="l00213"></a>00213 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a> -= bytes;
-<a name="l00214"></a>00214 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a>();
-<a name="l00215"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a3e0e821a38c37d4b94b61a62a9448b42">00215</a> }
-<a name="l00216"></a>00216 }
-<a name="l00217"></a>00217
-<a name="l00218"></a>00218 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#abdfe224ab8dae4dbd4cfdd16e6c0612f">base_integer::_base_make_unique</a>() {
-<a name="l00219"></a>00219 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aee70939aaa336233f62341cf7d595010">_is_unique</a>()) data=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#ab5aa26edc4b7699f3ff5d18729732b71">duplicate</a>(data);
-<a name="l00220"></a>00220 }
-<a name="l00221"></a>00221
-<a name="l00222"></a>00222 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a3e0e821a38c37d4b94b61a62a9448b42">base_integer::_add</a>(<span class="keyword">const</span> base_integer&amp; n) {
-<a name="l00223"></a>00223 <span class="comment">//assert(mCopies==1);</span>
-<a name="l00224"></a>00224 <span class="comment">//assert(mLength &gt;= addend.mLength);</span>
-<a name="l00225"></a>00225
-<a name="l00226"></a>00226 <span class="comment">// The answer to any addition problem contains, at most, one digit more</span>
-<a name="l00227"></a>00227 <span class="comment">// than the largest addend.</span>
-<a name="l00228"></a>00228 data=<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a756b3b8912e24da52a5f1e54d49bbbbe">reallocate</a>(data, data-&gt;length + 1);
+<a name="l00166"></a>00166 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2397061bb963562fd145ed5b4a6799ca">base_integer::_toggle_negative</a>() {
+<a name="l00167"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a8e11790b0ec09eb4b74d2df00e63bf95">00167</a> flags ^= <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a406617f773cbc0901a60290c5bc4dbac">flag_negative</a>;
+<a name="l00168"></a>00168 }
+<a name="l00169"></a>00169
+<a name="l00170"></a>00170 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ac4692f68ae9b4c949680421c877dc400">base_integer::_get_readonly</a>()<span class="keyword"> const </span>{
+<a name="l00171"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a36175e45a3f8660f59a9de593328fefd">00171</a> <span class="keywordflow">return</span> ((flags &amp; <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a993c7f7bfba3eec3cc5d1ed0fe7aa36c">flag_readonly</a>) ? <span class="keyword">true</span> : <span class="keyword">false</span>);
+<a name="l00172"></a>00172 }
+<a name="l00173"></a>00173
+<a name="l00174"></a>00174 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a8e11790b0ec09eb4b74d2df00e63bf95">base_integer::_set_readonly</a>() {
+<a name="l00175"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a685da8a208baf4f77502062d4cc0f062">00175</a> flags |= <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a993c7f7bfba3eec3cc5d1ed0fe7aa36c">flag_readonly</a>;
+<a name="l00176"></a>00176 }
+<a name="l00177"></a>00177
+<a name="l00178"></a>00178 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a36175e45a3f8660f59a9de593328fefd">base_integer::_realloc</a>(<span class="keywordtype">size_t</span> new_digit_count) {
+<a name="l00179"></a>00179 data = <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a1883fadafa2eeb3e70dfd9032f35bbdd">reallocate</a>(data, new_digit_count);
+<a name="l00180"></a>00180 }
+<a name="l00181"></a>00181
+<a name="l00182"></a>00182 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a685da8a208baf4f77502062d4cc0f062">base_integer::_make_unique</a>() {
+<a name="l00183"></a>00183 <span class="keywordflow">if</span> (data &amp;&amp; !<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aee70939aaa336233f62341cf7d595010">_is_unique</a>()) {
+<a name="l00184"></a>00184 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the magnitude digits of an integer.">data_t</a> *olddata = data;
+<a name="l00185"></a>00185
+<a name="l00186"></a>00186 data = (olddata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a> != 0 ?
+<a name="l00187"></a>00187 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa11166a9b6a4505bc8793ecdc31ad81f">allocate_fixed</a>(olddata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a>, olddata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af6047dff158ec443f2f73d012710d4cd">max_length</a>, 0) :
+<a name="l00188"></a>00188 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#af1f0f3f0daacef4f7c496378bf6bdfd8">allocate</a>(olddata-&gt;length, 0));
+<a name="l00189"></a>00189 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a75fbdec9c81fcd83302e479ed2cae3c0">copies</a> = 1;
+<a name="l00190"></a>00190 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a> = olddata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a>;
+<a name="l00191"></a>00191
+<a name="l00192"></a>00192 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s = olddata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a>, *se = s + olddata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a>;
+<a name="l00193"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a6c2015c98805bf96d68aae1c13287a36">00193</a> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t = data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a>;
+<a name="l00194"></a>00194 <span class="keywordflow">while</span> (s != se) *t++ = *s++;
+<a name="l00195"></a>00195
+<a name="l00196"></a>00196 --olddata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a75fbdec9c81fcd83302e479ed2cae3c0">copies</a>;
+<a name="l00197"></a>00197 }
+<a name="l00198"></a>00198 }
+<a name="l00199"></a>00199
+<a name="l00200"></a>00200 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a6c2015c98805bf96d68aae1c13287a36">base_integer::_swap</a>(<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html" title="The base class for all integer classes.">base_integer</a>&amp; other) {
+<a name="l00201"></a>00201 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#af85f2e55215d2ec3f15164fff64cddd9">flag_t</a> tempflags = flags;
+<a name="l00202"></a>00202 flags = other.flags;
+<a name="l00203"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9e58a5897a80b8017ff7da7f0abacb6b">00203</a> other.flags = tempflags;
+<a name="l00204"></a>00204
+<a name="l00205"></a>00205 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the magnitude digits of an integer.">data_t</a> *tempdata = data;
+<a name="l00206"></a>00206 data = other.data;
+<a name="l00207"></a>00207 other.data = tempdata;
+<a name="l00208"></a>00208 }
+<a name="l00209"></a>00209
+<a name="l00210"></a>00210 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9e58a5897a80b8017ff7da7f0abacb6b">base_integer::_base_attach</a>(<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the magnitude digits of an integer.">data_t</a> *new_data, flag_t setflags, <span class="keywordtype">size_t</span>
+<a name="l00211"></a>00211 extra_allocation)
+<a name="l00212"></a>00212 {
+<a name="l00213"></a>00213 <span class="preprocessor"> #ifdef XINT_DISABLE_COPY_ON_WRITE</span>
+<a name="l00214"></a>00214 <span class="preprocessor"></span> <span class="keywordtype">bool</span> adopt=(new_data &amp;&amp; new_data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a75fbdec9c81fcd83302e479ed2cae3c0">copies</a> == 0);
+<a name="l00215"></a>00215 <span class="preprocessor"> #else</span>
+<a name="l00216"></a>00216 <span class="preprocessor"></span> <span class="keywordtype">bool</span> adopt=<span class="keyword">true</span>;
+<a name="l00217"></a>00217 <span class="preprocessor"> #endif</span>
+<a name="l00218"></a>00218 <span class="preprocessor"></span>
+<a name="l00219"></a>00219 <span class="keywordflow">if</span> (data != new_data || extra_allocation != 0) {
+<a name="l00220"></a>00220 <span class="comment">// If only one of them is fixed-length, the data can&#39;t be adopted.</span>
+<a name="l00221"></a>00221 <span class="keywordflow">if</span> (adopt &amp;&amp; new_data &amp;&amp; <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a70e40ee3b40acbc6a7dd55a7f8d5c13c">_is_fixed</a>() != (new_data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a> != 0))
+<a name="l00222"></a>00222 adopt=<span class="keyword">false</span>;
+<a name="l00223"></a>00223
+<a name="l00224"></a>00224 <span class="comment">// If either of them are fixed-length, and they&#39;re not the same fixed-</span>
+<a name="l00225"></a>00225 <span class="comment">// length, then the data can&#39;t be adopted.</span>
+<a name="l00226"></a>00226 <span class="keywordflow">if</span> (adopt &amp;&amp; data &amp;&amp; new_data &amp;&amp; (data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a> ||
+<a name="l00227"></a>00227 new_data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a>) &amp;&amp; (data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a> != new_data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a>
+<a name="l00228"></a>00228 || data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af6047dff158ec443f2f73d012710d4cd">max_length</a> != new_data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af6047dff158ec443f2f73d012710d4cd">max_length</a>)) adopt=<span class="keyword">false</span>;
 <a name="l00229"></a>00229
-<a name="l00230"></a>00230 <span class="comment">// Now add the digits, starting at the least-significant digit.</span>
-<a name="l00231"></a>00231 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> carry = 0;
-<a name="l00232"></a>00232 <span class="keywordtype">size_t</span> x = 0;
-<a name="l00233"></a>00233 <span class="keywordflow">for</span> (; x &lt; n.data-&gt;length; ++x) {
-<a name="l00234"></a>00234 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> t = <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(data-&gt;magnitude[x]) +
-<a name="l00235"></a>00235 n.data-&gt;magnitude[x] + carry;
-<a name="l00236"></a>00236 <span class="keywordflow">if</span> (t &gt;= <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>) { carry = 1; t -= <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>; }
-<a name="l00237"></a>00237 <span class="keywordflow">else</span> carry=0;
-<a name="l00238"></a>00238 data-&gt;magnitude[x] = <span class="keyword">static_cast&lt;</span><a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a><span class="keyword">&gt;</span>(t);
-<a name="l00239"></a>00239 }
-<a name="l00240"></a>00240
-<a name="l00241"></a>00241 <span class="keywordflow">while</span> (carry) {
-<a name="l00242"></a>00242 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> t = <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a>(data-&gt;magnitude[x]) + 1;
-<a name="l00243"></a>00243 <span class="keywordflow">if</span> (t &gt;= <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>) { carry = 1; t -= <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>; }
-<a name="l00244"></a>00244 <span class="keywordflow">else</span> carry=0;
-<a name="l00245"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4f7e982aa22a1910dd5daf0e260c43c5">00245</a> data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a>[x] = <span class="keyword">static_cast&lt;</span><a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a><span class="keyword">&gt;</span>(t);
-<a name="l00246"></a>00246 ++x;
-<a name="l00247"></a>00247 }
-<a name="l00248"></a>00248
-<a name="l00249"></a>00249 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a>();
-<a name="l00250"></a>00250 }
-<a name="l00251"></a>00251
-<a name="l00252"></a>00252 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4f7e982aa22a1910dd5daf0e260c43c5">base_integer::_subtract</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html" title="The base class for the integer classes.">base_integer</a>&amp; n) {
-<a name="l00253"></a>00253 <span class="comment">//assert(mCopies==1);</span>
-<a name="l00254"></a>00254 <span class="comment">//assert(mLength &gt;= subtrahend.mLength);</span>
-<a name="l00255"></a>00255
-<a name="l00256"></a>00256 <span class="comment">// For subtraction, the answer will always be less than or equal to the</span>
-<a name="l00257"></a>00257 <span class="comment">// size of the longest operand, so we&#39;ve already got enough room.</span>
-<a name="l00258"></a>00258
-<a name="l00259"></a>00259 <span class="comment">// Now subtract the digits, starting at the least-significant one.</span>
-<a name="l00260"></a>00260 <span class="keywordtype">size_t</span> x;
-<a name="l00261"></a>00261 <span class="keywordtype">int</span> borrow = 0;
-<a name="l00262"></a>00262 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4a5cc16afeb1b8f5c3f0e9585f8e7d23">doubledigit_t</a> t;
-<a name="l00263"></a>00263 <span class="keywordflow">for</span> (x = 0; x &lt; n.data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#acf4a8986615aba673c134a4f56c3bf53">length</a>; ++x) {
-<a name="l00264"></a>00264 t=(data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a>[x] + <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>) - n.data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#aacce731ac73c34cab97ed3a86b16056a">magnitude</a>[x] -
-<a name="l00265"></a>00265 borrow;
-<a name="l00266"></a>00266 if (t &lt; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>) borrow = 1;
-<a name="l00267"></a>00267 <span class="keywordflow">else</span> { borrow = 0; t -= <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>; }
-<a name="l00268"></a>00268 data-&gt;magnitude[x]=<span class="keyword">static_cast&lt;</span><a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a><span class="keyword">&gt;</span>(t);
-<a name="l00269"></a>00269 }
-<a name="l00270"></a>00270
-<a name="l00271"></a>00271 <span class="keywordflow">for</span> (; x &lt; data-&gt;length &amp;&amp; borrow; ++x) {
-<a name="l00272"></a>00272 t = (data-&gt;magnitude[x] + <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>) - borrow;
-<a name="l00273"></a>00273 <span class="keywordflow">if</span> (t &lt; <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>) borrow=1;
-<a name="l00274"></a>00274 <span class="keywordflow">else</span> { borrow = 0; t -= <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa743d942f784ec3a77e85816628d14cc">digit_overflowbit</a>; }
-<a name="l00275"></a>00275 data-&gt;magnitude[x] = <span class="keyword">static_cast&lt;</span><a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a><span class="keyword">&gt;</span>(t);
-<a name="l00276"></a>00276 }
-<a name="l00277"></a>00277
-<a name="l00278"></a>00278 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a>();
-<a name="l00279"></a>00279 <span class="keywordflow">if</span> (borrow != 0) negative=!negative;
+<a name="l00230"></a>00230 <span class="comment">// If we don&#39;t have a data item, but we&#39;re supposed to allocate extra</span>
+<a name="l00231"></a>00231 <span class="comment">// data, we can&#39;t adopt the existing data item.</span>
+<a name="l00232"></a>00232 <span class="keywordflow">if</span> (adopt &amp;&amp; extra_allocation != 0 &amp;&amp; !data) adopt=<span class="keyword">false</span>;
+<a name="l00233"></a>00233
+<a name="l00234"></a>00234 <span class="comment">// If extra_allocation is requested, and it&#39;s a variable-length integer,</span>
+<a name="l00235"></a>00235 <span class="comment">// check the max_size. If there isn&#39;t enough to fit in the</span>
+<a name="l00236"></a>00236 <span class="comment">// extra_allocation, don&#39;t allow adoption.</span>
+<a name="l00237"></a>00237 <span class="keywordflow">if</span> (adopt &amp;&amp; extra_allocation != 0 &amp;&amp; data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a> == 0)
+<a name="l00238"></a>00238 <span class="keywordflow">if</span> (data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a> + extra_allocation &gt; data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af6047dff158ec443f2f73d012710d4cd">max_length</a>) adopt=<span class="keyword">false</span>;
+<a name="l00239"></a>00239
+<a name="l00240"></a>00240 <span class="keywordflow">if</span> (adopt) {
+<a name="l00241"></a>00241 <span class="keywordflow">if</span> (data &amp;&amp; --data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a75fbdec9c81fcd83302e479ed2cae3c0">copies</a> == 0) <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a44089260e9472ac378d3e2ed739e7e08">deallocate</a>(data);
+<a name="l00242"></a>00242 data=new_data;
+<a name="l00243"></a>00243 <span class="keywordflow">if</span> (data) ++data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a75fbdec9c81fcd83302e479ed2cae3c0">copies</a>;
+<a name="l00244"></a>00244 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (new_data != 0) {
+<a name="l00245"></a>00245 <span class="comment">// Duplicate the data in a unique data_t item</span>
+<a name="l00246"></a>00246 <span class="keywordflow">if</span> (data == 0) {
+<a name="l00247"></a>00247 data = (<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a70e40ee3b40acbc6a7dd55a7f8d5c13c">_is_fixed</a>() ?
+<a name="l00248"></a>00248 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa11166a9b6a4505bc8793ecdc31ad81f">allocate_fixed</a>(new_data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a>, new_data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af6047dff158ec443f2f73d012710d4cd">max_length</a>,
+<a name="l00249"></a>00249 0) :
+<a name="l00250"></a>00250 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#af1f0f3f0daacef4f7c496378bf6bdfd8">allocate</a>(new_data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a> + extra_allocation, 0));
+<a name="l00251"></a>00251 ++data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a75fbdec9c81fcd83302e479ed2cae3c0">copies</a>;
+<a name="l00252"></a>00252 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a75fbdec9c81fcd83302e479ed2cae3c0">copies</a> &gt; 1 || data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af6047dff158ec443f2f73d012710d4cd">max_length</a> &lt; new_data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a>
+<a name="l00253"></a>00253 + extra_allocation) || <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ac4692f68ae9b4c949680421c877dc400">_get_readonly</a>())
+<a name="l00254"></a>00254 {
+<a name="l00255"></a>00255 <a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html" title="Holds the magnitude digits of an integer.">data_t</a> *olddata = data;
+<a name="l00256"></a>00256 data = (<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a70e40ee3b40acbc6a7dd55a7f8d5c13c">_is_fixed</a>() ?
+<a name="l00257"></a>00257 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa11166a9b6a4505bc8793ecdc31ad81f">allocate_fixed</a>(data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a>, data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af6047dff158ec443f2f73d012710d4cd">max_length</a>, 0) :
+<a name="l00258"></a>00258 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#af1f0f3f0daacef4f7c496378bf6bdfd8">allocate</a>(new_data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a> + extra_allocation, 0));
+<a name="l00259"></a>00259 ++data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a75fbdec9c81fcd83302e479ed2cae3c0">copies</a>;
+<a name="l00260"></a>00260 <span class="keywordflow">if</span> (--olddata-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a75fbdec9c81fcd83302e479ed2cae3c0">copies</a> == 0) <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a44089260e9472ac378d3e2ed739e7e08">deallocate</a>(olddata);
+<a name="l00261"></a>00261 }
+<a name="l00262"></a>00262 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a> = (std::min)(new_data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a> + extra_allocation,
+<a name="l00263"></a>00263 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af6047dff158ec443f2f73d012710d4cd">max_length</a>);
+<a name="l00264"></a>00264
+<a name="l00265"></a>00265 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s = new_data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a>, *se = s + new_data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a>;
+<a name="l00266"></a>00266 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t = data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a>, *te = t + data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a>;
+<a name="l00267"></a>00267 <span class="keywordflow">while</span> (t != te &amp;&amp; s != se) *t++ = *s++;
+<a name="l00268"></a>00268 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a4e055aa4ada37a5892b2605de2a953ae">zero</a>(t, te);
+<a name="l00269"></a>00269 } <span class="keywordflow">else</span> {
+<a name="l00270"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee6c6d706a8dc8cdd1a16b1e65a47e2">00270</a> <span class="keywordflow">if</span> (--data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a75fbdec9c81fcd83302e479ed2cae3c0">copies</a> == 0) <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a44089260e9472ac378d3e2ed739e7e08">deallocate</a>(data);
+<a name="l00271"></a>00271 data=0;
+<a name="l00272"></a>00272 }
+<a name="l00273"></a>00273 }
+<a name="l00274"></a>00274 flags = setflags;
+<a name="l00275"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">00275</a> }
+<a name="l00276"></a>00276
+<a name="l00277"></a>00277 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee6c6d706a8dc8cdd1a16b1e65a47e2">base_integer::_attach</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html" title="The base class for all integer classes.">base_integer</a>&amp; copy) {
+<a name="l00278"></a>00278 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9e58a5897a80b8017ff7da7f0abacb6b">_base_attach</a>(copy.data, copy.flags);
+<a name="l00279"></a>00279 <span class="keywordflow">if</span> (data) <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a>();
 <a name="l00280"></a>00280 }
 <a name="l00281"></a>00281
-<a name="l00282"></a>00282 } <span class="comment">// namespace detail</span>
-<a name="l00283"></a>00283 } <span class="comment">// namespace xint</span>
-<a name="l00284"></a>00284 } <span class="comment">// namespace boost</span>
+<a name="l00282"></a>00282 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">base_integer::_cleanup</a>() {
+<a name="l00283"></a>00283 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *p = data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a> + data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a> - 1;
+<a name="l00284"></a>00284 <span class="keywordflow">if</span> (data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a> != 0 &amp;&amp; p == data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a> + data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#af6047dff158ec443f2f73d012710d4cd">max_length</a> - 1)
+<a name="l00285"></a>00285 *p &amp;= data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a5ecd68cad8903d2b85c295279df5cf99" title="For the topmost digit; zero for variable-sized.">fixed_mask</a>;
+<a name="l00286"></a>00286 <span class="keywordflow">if</span> (*p == 0) {
+<a name="l00287"></a>00287 <span class="keywordflow">if</span> (p != data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a>) {
+<a name="l00288"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a1ee8597806a71bb2846b9b8eb8d05dce">00288</a> <span class="keywordflow">while</span> (--p != data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a> &amp;&amp; *p == 0); <span class="comment">// Null loop</span>
+<a name="l00289"></a>00289 <span class="keywordflow">if</span> (*p == 0) <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91cb2f84f30425e9158c2ac9bfcd9cb6">_set_negative</a>(<span class="keyword">false</span>); <span class="comment">// It&#39;s zero.</span>
+<a name="l00290"></a>00290 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a081b825b5fb98a03909fa3280e658c8c">length</a> = p - data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a> + 1;
+<a name="l00291"></a>00291 } <span class="comment">// It&#39;s zero, but it may legitimately be a &quot;negative zero&quot;, leave it.</span>
+<a name="l00292"></a>00292 }
+<a name="l00293"></a>00293 }
+<a name="l00294"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab47afee36e91b35b199b0ac3b6542ad2">00294</a>
+<a name="l00295"></a>00295 <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_1detail_1_1base__integer.html#a1ee8597806a71bb2846b9b8eb8d05dce">base_integer::_to_integer</a>()<span class="keyword"> const </span>{
+<a name="l00296"></a>00296 <a class="code" href="classboost_1_1xint_1_1integer.html" title="The core integer class.">integer</a> r;
+<a name="l00297"></a>00297 r.<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee6c6d706a8dc8cdd1a16b1e65a47e2">_attach</a>(*<span class="keyword">this</span>);
+<a name="l00298"></a>00298 <span class="keywordflow">return</span> r;
+<a name="l00299"></a>00299 }
+<a name="l00300"></a>00300
+<a name="l00301"></a>00301 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab47afee36e91b35b199b0ac3b6542ad2">base_integer::_increment</a>(<span class="keywordtype">bool</span> absolute_value) {
+<a name="l00302"></a>00302 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a685da8a208baf4f77502062d4cc0f062">_make_unique</a>();
+<a name="l00303"></a>00303 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a576bd802f9b2cb8450250839bc52b98c">_is_zero</a>()) {
+<a name="l00304"></a>00304 data-&gt;<a class="code" href="structboost_1_1xint_1_1detail_1_1data__t.html#a47e251676febcdbf5ed47e13491c81b3">magnitude</a>[0] = 1;
+<a name="l00305"></a>00305 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91cb2f84f30425e9158c2ac9bfcd9cb6">_set_negative</a>(<span class="keyword">false</span>);
+<a name="l00306"></a>00306 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!absolute_value &amp;&amp; <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2a6ba9a67a9167e9535d735dacbaace7">_get_negative</a>()) {
+<a name="l00307"></a>00307 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91e4b721c42445501b136a13d7ce9d32">_decrement</a>(<span class="keyword">true</span>);
+<a name="l00308"></a>00308 } <span class="keywordflow">else</span> {
+<a name="l00309"></a>00309 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a36175e45a3f8660f59a9de593328fefd">_realloc</a>(<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a7462afdf5589caa01bb1ed732f633469">_get_length</a>() + 1);
+<a name="l00310"></a>00310 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *p = <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a355b981cef93f9c674fe4202b4d02d64">_get_writable_digits</a>(), *pe = p + <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a7462afdf5589caa01bb1ed732f633469">_get_length</a>();
+<a name="l00311"></a>00311
+<a name="l00312"></a>00312 <span class="keywordflow">while</span> (p &lt; pe) {
+<a name="l00313"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91e4b721c42445501b136a13d7ce9d32">00313</a> <span class="keywordflow">if</span> (*p == <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">digit_mask</a>) *p++ = 0;
+<a name="l00314"></a>00314 <span class="keywordflow">else</span> { *p++ += 1; <span class="keywordflow">break</span>; }
+<a name="l00315"></a>00315 }
+<a name="l00316"></a>00316 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a>();
+<a name="l00317"></a>00317 }
+<a name="l00318"></a>00318 }
+<a name="l00319"></a>00319
+<a name="l00320"></a>00320 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91e4b721c42445501b136a13d7ce9d32">base_integer::_decrement</a>(<span class="keywordtype">bool</span> absolute_value) {
+<a name="l00321"></a>00321 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a685da8a208baf4f77502062d4cc0f062">_make_unique</a>();
+<a name="l00322"></a>00322 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a576bd802f9b2cb8450250839bc52b98c">_is_zero</a>()) {
+<a name="l00323"></a>00323 data-&gt;magnitude[0]=1;
+<a name="l00324"></a>00324 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91cb2f84f30425e9158c2ac9bfcd9cb6">_set_negative</a>(<span class="keyword">true</span>);
+<a name="l00325"></a>00325 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!absolute_value &amp;&amp; <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2a6ba9a67a9167e9535d735dacbaace7">_get_negative</a>()) {
+<a name="l00326"></a>00326 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab47afee36e91b35b199b0ac3b6542ad2">_increment</a>(<span class="keyword">true</span>);
+<a name="l00327"></a>00327 } <span class="keywordflow">else</span> {
+<a name="l00328"></a>00328 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *p = <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a355b981cef93f9c674fe4202b4d02d64">_get_writable_digits</a>(), *pe = p + <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a7462afdf5589caa01bb1ed732f633469">_get_length</a>();
+<a name="l00329"></a>00329 <span class="keywordflow">while</span> (p != pe) {
+<a name="l00330"></a>00330 <span class="keywordflow">if</span> (*p == 0) *p++ = <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aecc94d5cb515781b3a33ddf76884e8f5">digit_mask</a>;
+<a name="l00331"></a>00331 <span class="keywordflow">else</span> { *p++ -= 1; <span class="keywordflow">break</span>; }
+<a name="l00332"></a><a class="code" href="classboost_1_1xint_1_1detail_1_1base__variable__length__integer.html#ae670e3ba7921916f7a7394c4bb9b940b">00332</a> }
+<a name="l00333"></a>00333 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a>();
+<a name="l00334"></a>00334 }
+<a name="l00335"></a>00335 }
+<a name="l00336"></a>00336
+<a name="l00338"></a>00338
+<a name="l00339"></a>00339 <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__variable__length__integer.html#ae670e3ba7921916f7a7394c4bb9b940b">base_variable_length_integer::_attach_0</a>() {
+<a name="l00340"></a>00340 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9e58a5897a80b8017ff7da7f0abacb6b">_base_attach</a>(zerodata());
+<a name="l00341"></a>00341 }
+<a name="l00342"></a>00342
+<a name="l00343"></a>00343 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aee0c323135ed34026523afa598e8a270">log10_bits</a>(<span class="keywordtype">size_t</span> bits) {
+<a name="l00344"></a>00344 assert(std::numeric_limits&lt;boost::intmax_t&gt;::digits &gt;= 32);
+<a name="l00345"></a>00345 <span class="keyword">const</span> boost::intmax_t large_step(1000000000), small_step(10);
+<a name="l00346"></a>00346 <span class="keyword">const</span> <span class="keywordtype">size_t</span> count_per_large_step = 9, count_per_small_step = 1;
+<a name="l00347"></a>00347 integer n(<a class="code" href="namespaceboost_1_1xint.html#af710e4b39cfa66096c202f17d12cc7b7" title="Calculate the value of 2e">pow2</a>(bits)-1);
+<a name="l00348"></a>00348
+<a name="l00349"></a>00349 <span class="keywordtype">size_t</span> r = 0;
+<a name="l00350"></a>00350 <span class="keywordflow">while</span> (n &gt;= large_step) { n /= large_step; r += count_per_large_step; }
+<a name="l00351"></a>00351 <span class="keywordflow">while</span> (n &gt;= small_step) { n /= small_step; r += count_per_small_step; }
+<a name="l00352"></a>00352 <span class="keywordflow">return</span> r;
+<a name="l00353"></a>00353 }
+<a name="l00354"></a>00354
+<a name="l00355"></a>00355 } <span class="comment">// namespace detail</span>
+<a name="l00356"></a>00356 } <span class="comment">// namespace xint</span>
+<a name="l00357"></a>00357 } <span class="comment">// namespace boost</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 20:02:57 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Apr 30 00:24:24 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.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-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -12,7 +12,6 @@
   <div class="tabs">
     <ul>
       <li>Main Page</li>
- <li>Related Pages</li>
       <li>Namespaces</li>
       <li>Classes</li>
       <li class="current">Files</li>
@@ -39,26 +38,41 @@
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
 <br/></td></tr>
 </p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html">boost::xint::detail</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>The items within this namespace are meant for internal use only. </p>
+<br/></td></tr>
+</p>
 <tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a53d3a82d1e9cc3093f7152536226ad26">boost::xint::detail::bitwise_and</a> (base_integer &amp;target, const base_integer &amp;n1, const base_integer &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a371947fdd527dc7f9749288893da9ef2">boost::xint::detail::bitwise_or</a> (base_integer &amp;target, const base_integer &amp;n1, const base_integer &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a3021d365585065f356b81a0250403541">boost::xint::detail::bitwise_xor</a> (base_integer &amp;target, const base_integer &amp;n1, const base_integer &amp;n2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#acac1cc20095f62e9c39941651dde4316">boost::xint::detail::clearbit</a> (base_integer &amp;n, size_t bit)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a6e4e8f8c4d7f25dbf7a6c5d13e74472b">boost::xint::detail::getbit</a> (const base_integer &amp;n, size_t bit)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#aa5632075443060f8efc8c2d76e3d0d38">boost::xint::detail::highestbit</a> (const base_integer &amp;n, size_t valueIfZero)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a70ae609a4ed2dfd6fb2c237eadfe8a71">boost::xint::detail::lowestbit</a> (const base_integer &amp;n, size_t valueIfZero)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#aab28ac84cd1fb51d3d6206abad9fba01">boost::xint::detail::setbit</a> (base_integer &amp;n, size_t bit)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a2c4f8bb0f54061c28c9eb9c2cc852273">boost::xint::detail::shift_left</a> (base_integer &amp;target, const base_integer &amp;n, size_t byBits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#ac6682e4cab49f639aa538ccd10b3a8e5">boost::xint::detail::shift_right</a> (base_integer &amp;target, const base_integer &amp;n, size_t byBits)</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Bit-manipulation functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpcc775c18f98f26f2b84ac7a2558636f2"></a> </p>
 </div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac00836bdc530b3eaf0a9b9f2e208273b">boost::xint::getbit</a> (const integer &amp;n, size_t bit)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Queries the value of a particular bit in an integer. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a6278915cf51b0d448a9db40031226182">boost::xint::setbit</a> (integer &amp;n, size_t bit)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an integer to one. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a96d452df71ac6799a7041647b4b106df">boost::xint::clearbit</a> (integer &amp;n, size_t bit)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an integer to zero. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a783e728f8221cd424d6f7f5d5f67ec40">boost::xint::lowestbit</a> (const integer &amp;n, size_t valueIfZero)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the lowest bit in an integer with a value of one. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aec002c076eff13d0382c5d2cd6de1d60">boost::xint::highestbit</a> (const integer &amp;n, size_t valueIfZero)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the highest bit in an integer with a value of one. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2">boost::xint::bitwise_and</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>AND</code> operation. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec">boost::xint::bitwise_or</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>OR</code> operation. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1">boost::xint::bitwise_xor</a> (const integer &amp;n1, const integer &amp;n2)</td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>XOR</code> operation. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a96d452df71ac6799a7041647b4b106df">boost::xint::clearbit</a> (integer &amp;n, size_t bit)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an integer to zero. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac00836bdc530b3eaf0a9b9f2e208273b">boost::xint::getbit</a> (const integer &amp;n, size_t bit)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Queries the value of a particular bit in an integer. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aec002c076eff13d0382c5d2cd6de1d60">boost::xint::highestbit</a> (const integer &amp;n, size_t valueIfZero)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the highest bit in an integer with a value of one. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a783e728f8221cd424d6f7f5d5f67ec40">boost::xint::lowestbit</a> (const integer &amp;n, size_t valueIfZero)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the lowest bit in an integer with a value of one. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a6278915cf51b0d448a9db40031226182">boost::xint::setbit</a> (integer &amp;n, size_t bit)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an integer to one. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014">boost::xint::shift</a> (const integer &amp;n, int byBits)</td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bit-shift an integer, in either direction. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96">boost::xint::shift_left</a> (const integer &amp;n, size_t byBits)</td></tr>
@@ -71,7 +85,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 Sat Apr 17 20:02:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Apr 30 00:24:25 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.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-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -12,7 +12,6 @@
   <div class="tabs">
     <ul>
       <li>Main Page</li>
- <li>Related Pages</li>
       <li>Namespaces</li>
       <li>Classes</li>
       <li class="current">Files</li>
@@ -37,145 +36,265 @@
 <a name="l00011"></a>00011 <span class="comment"> See http://www.boost.org/libs/xint for library home page.</span>
 <a name="l00012"></a>00012 <span class="comment">*/</span>
 <a name="l00013"></a>00013
-<a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../boost/xint/integer.hpp&quot;</span>
 <a name="l00019"></a>00019
 <a name="l00020"></a>00020 <span class="keyword">namespace </span>boost {
 <a name="l00021"></a>00021 <span class="keyword">namespace </span>xint {
 <a name="l00022"></a>00022
-<a name="l00023"></a>00023 <span class="keyword">using namespace </span>detail;
+<a name="l00023"></a>00023 <span class="keyword">namespace </span>detail {
 <a name="l00024"></a>00024
-<a name="l00033"></a>00033 <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> integer&amp; n, <span class="keywordtype">size_t</span> bit) {
-<a name="l00034"></a>00034 <span class="keywordtype">size_t</span> index=bit/<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
-<a name="l00035"></a>00035 <span class="keywordflow">if</span> (index &lt; n._get_length()) {
-<a name="l00036"></a>00036 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> mask=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(1) &lt;&lt; (bit % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>));
-<a name="l00037"></a>00037 <span class="keywordflow">return</span> ((n._get_digit(index) &amp; mask) != 0);
-<a name="l00038"></a>00038 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00039"></a>00039 }
+<a name="l00025"></a>00025 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a6e4e8f8c4d7f25dbf7a6c5d13e74472b">getbit</a>(<span class="keyword">const</span> base_integer&amp; n, <span class="keywordtype">size_t</span> bit) {
+<a name="l00026"></a>00026 <span class="keywordtype">size_t</span> index = bit / <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
+<a name="l00027"></a>00027 <span class="keywordflow">if</span> (index &lt; n._get_length()) {
+<a name="l00028"></a>00028 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> mask=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(1) &lt;&lt; (bit % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>));
+<a name="l00029"></a>00029 <span class="keywordflow">return</span> ((n._get_digit(index) &amp; mask) != 0);
+<a name="l00030"></a>00030 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00031"></a>00031 }
+<a name="l00032"></a>00032
+<a name="l00033"></a>00033 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aab28ac84cd1fb51d3d6206abad9fba01">setbit</a>(base_integer&amp; n, <span class="keywordtype">size_t</span> bit) {
+<a name="l00034"></a>00034 <span class="keywordflow">if</span> (n._is_fixed() &amp;&amp; bit &gt;= n._fixed_bits()) <span class="keywordflow">return</span>;
+<a name="l00035"></a>00035
+<a name="l00036"></a>00036 n._make_unique();
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038 <span class="keywordtype">size_t</span> index = bit / <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
+<a name="l00039"></a>00039 <span class="keywordflow">if</span> (index &gt;= n._get_length()) n._realloc(index+1);
 <a name="l00040"></a>00040
-<a name="l00048"></a>00048 <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>(integer&amp; n, <span class="keywordtype">size_t</span> bit) {
-<a name="l00049"></a>00049 n._make_unique();
-<a name="l00050"></a>00050
-<a name="l00051"></a>00051 <span class="keywordtype">size_t</span> index=bit/<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
-<a name="l00052"></a>00052 <span class="keywordflow">if</span> (index &gt;= n._get_length()) n._realloc(index+1);
-<a name="l00053"></a>00053
-<a name="l00054"></a>00054 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> mask=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(1) &lt;&lt; (bit % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>));
-<a name="l00055"></a>00055 n._get_digits()[index] |= mask;
-<a name="l00056"></a>00056 n._cleanup();
-<a name="l00057"></a>00057 }
-<a name="l00058"></a>00058
-<a name="l00066"></a>00066 <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>(integer&amp; n, <span class="keywordtype">size_t</span> bit) {
-<a name="l00067"></a>00067 <span class="keywordtype">size_t</span> index=bit/<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
-<a name="l00068"></a>00068 <span class="keywordflow">if</span> (index &lt; n._get_length()) {
-<a name="l00069"></a>00069 n._make_unique();
-<a name="l00070"></a>00070 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> mask=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(1) &lt;&lt; (bit % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>));
-<a name="l00071"></a>00071 n._get_digits()[index] &amp;= ~mask;
-<a name="l00072"></a>00072 n._cleanup();
-<a name="l00073"></a>00073 }
+<a name="l00041"></a>00041 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> mask = (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(1) &lt;&lt; (bit % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>));
+<a name="l00042"></a>00042 n._get_writable_digits()[index] |= mask;
+<a name="l00043"></a>00043 n._cleanup();
+<a name="l00044"></a>00044 }
+<a name="l00045"></a>00045
+<a name="l00046"></a>00046 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#acac1cc20095f62e9c39941651dde4316">clearbit</a>(base_integer&amp; n, <span class="keywordtype">size_t</span> bit) {
+<a name="l00047"></a>00047 <span class="keywordflow">if</span> (n._is_fixed() &amp;&amp; bit &gt;= n._fixed_bits()) <span class="keywordflow">return</span>;
+<a name="l00048"></a>00048
+<a name="l00049"></a>00049 <span class="keywordtype">size_t</span> index = bit / <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
+<a name="l00050"></a>00050 <span class="keywordflow">if</span> (index &lt; n._get_length()) {
+<a name="l00051"></a>00051 n._make_unique();
+<a name="l00052"></a>00052 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> mask=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>(1) &lt;&lt; (bit % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>));
+<a name="l00053"></a>00053 n._get_writable_digits()[index] &amp;= ~mask;
+<a name="l00054"></a>00054 n._cleanup();
+<a name="l00055"></a>00055 }
+<a name="l00056"></a>00056 }
+<a name="l00057"></a>00057
+<a name="l00058"></a>00058 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a70ae609a4ed2dfd6fb2c237eadfe8a71">lowestbit</a>(<span class="keyword">const</span> base_integer&amp; n, <span class="keywordtype">size_t</span> valueIfZero) {
+<a name="l00059"></a>00059 <span class="keywordflow">if</span> (n._is_zero()) <span class="keywordflow">return</span> valueIfZero;
+<a name="l00060"></a>00060
+<a name="l00061"></a>00061 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *p=n._get_digits(), *pe=p+n._get_length();
+<a name="l00062"></a>00062 <span class="keywordflow">while</span> (p!=pe &amp;&amp; *p==0) ++p;
+<a name="l00063"></a>00063
+<a name="l00064"></a>00064 <span class="keywordtype">size_t</span> index=(p - n._get_digits());
+<a name="l00065"></a>00065 <span class="keywordtype">size_t</span> r=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> * index);
+<a name="l00066"></a>00066 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> digit=*p;
+<a name="l00067"></a>00067
+<a name="l00068"></a>00068 <span class="keywordflow">while</span> ((digit &amp; 0x01)==0) {
+<a name="l00069"></a>00069 digit&gt;&gt;=1;
+<a name="l00070"></a>00070 ++r;
+<a name="l00071"></a>00071 }
+<a name="l00072"></a>00072
+<a name="l00073"></a>00073 <span class="keywordflow">return</span> r;
 <a name="l00074"></a>00074 }
 <a name="l00075"></a>00075
-<a name="l00085"></a>00085 <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> integer&amp; n, <span class="keywordtype">size_t</span> valueIfZero) {
-<a name="l00086"></a>00086 <span class="keywordflow">if</span> (n.sign()==0) <span class="keywordflow">return</span> valueIfZero;
-<a name="l00087"></a>00087
-<a name="l00088"></a>00088 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *p=n._get_digits(), *pe=p+n._get_length();
-<a name="l00089"></a>00089 <span class="keywordflow">while</span> (p!=pe &amp;&amp; *p==0) ++p;
-<a name="l00090"></a>00090
-<a name="l00091"></a>00091 <span class="keywordtype">size_t</span> index=(p - n._get_digits());
-<a name="l00092"></a>00092 <span class="keywordtype">size_t</span> r=(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> * index);
-<a name="l00093"></a>00093 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> digit=*p;
-<a name="l00094"></a>00094
-<a name="l00095"></a>00095 <span class="keywordflow">while</span> ((digit &amp; 0x01)==0) {
-<a name="l00096"></a>00096 digit&gt;&gt;=1;
-<a name="l00097"></a>00097 ++r;
-<a name="l00098"></a>00098 }
-<a name="l00099"></a>00099
-<a name="l00100"></a>00100 <span class="keywordflow">return</span> r;
-<a name="l00101"></a>00101 }
-<a name="l00102"></a>00102
-<a name="l00112"></a>00112 <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> integer&amp; n, <span class="keywordtype">size_t</span> valueIfZero) {
-<a name="l00113"></a>00113 <span class="keywordflow">if</span> (n.sign()==0) <span class="keywordflow">return</span> valueIfZero;
-<a name="l00114"></a>00114 <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(<a class="code" href="namespaceboost_1_1xint.html#a0cd277cd7a80cda764f889781f0140cd" title="Get the log2 value of an integer.">log2</a>(n)-1);
-<a name="l00115"></a>00115 }
+<a name="l00076"></a>00076 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa5632075443060f8efc8c2d76e3d0d38">highestbit</a>(<span class="keyword">const</span> base_integer&amp; n, <span class="keywordtype">size_t</span> valueIfZero) {
+<a name="l00077"></a>00077 <span class="keywordflow">return</span> (n._is_zero() ? valueIfZero : n._log2()-1);
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079
+<a name="l00080"></a>00080 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a53d3a82d1e9cc3093f7152536226ad26">bitwise_and</a>(base_integer&amp; target, <span class="keyword">const</span> base_integer&amp; n1, <span class="keyword">const</span>
+<a name="l00081"></a>00081 base_integer&amp; n2)
+<a name="l00082"></a>00082 {
+<a name="l00083"></a>00083 <span class="keywordtype">bool</span> n1larger=(n1._get_length() &gt; n2._get_length());
+<a name="l00084"></a>00084 <span class="keyword">const</span> base_integer &amp;smaller(n1larger ? n2 : n1),
+<a name="l00085"></a>00085 &amp;larger(n1larger ? n1 : n2);
+<a name="l00086"></a>00086
+<a name="l00087"></a>00087 <span class="keywordtype">size_t</span> maxlen = (std::min)(smaller._get_length(), target._get_max_length());
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 target._make_unique();
+<a name="l00090"></a>00090 target._realloc(maxlen);
+<a name="l00091"></a>00091
+<a name="l00092"></a>00092 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s1 = smaller._get_digits(), *s1e = s1 + maxlen, *s2 =
+<a name="l00093"></a>00093 larger._get_digits();
+<a name="l00094"></a>00094 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t = target._get_writable_digits();
+<a name="l00095"></a>00095
+<a name="l00096"></a>00096 <span class="keywordflow">while</span> (s1 &lt; s1e) *t++ = *s1++ &amp; *s2++;
+<a name="l00097"></a>00097
+<a name="l00098"></a>00098 target._cleanup();
+<a name="l00099"></a>00099 }
+<a name="l00100"></a>00100
+<a name="l00101"></a>00101 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a371947fdd527dc7f9749288893da9ef2">bitwise_or</a>(base_integer&amp; target, <span class="keyword">const</span> base_integer&amp; n1, <span class="keyword">const</span>
+<a name="l00102"></a>00102 base_integer&amp; n2)
+<a name="l00103"></a>00103 {
+<a name="l00104"></a>00104 <span class="keywordtype">bool</span> n1larger = (n1._get_length() &gt; n2._get_length());
+<a name="l00105"></a>00105 <span class="keyword">const</span> base_integer &amp;smaller(n1larger ? n2 : n1), &amp;larger(n1larger ? n1 : n2);
+<a name="l00106"></a>00106
+<a name="l00107"></a>00107 <span class="keywordtype">size_t</span> maxlen = (std::min)(larger._get_length(), target._get_max_length());
+<a name="l00108"></a>00108
+<a name="l00109"></a>00109 target._make_unique();
+<a name="l00110"></a>00110 target._realloc(maxlen);
+<a name="l00111"></a>00111
+<a name="l00112"></a>00112 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s1 = smaller._get_digits(), *s1e = s1 +
+<a name="l00113"></a>00113 (std::min)(smaller._get_length(), maxlen);
+<a name="l00114"></a>00114 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s2 = larger._get_digits(), *s2e = s2 + maxlen;
+<a name="l00115"></a>00115 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t = target._get_writable_digits();
 <a name="l00116"></a>00116
-<a name="l00123"></a>00123 integer <a class="code" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2" title="Combine two integers using a bitwise AND operation.">bitwise_and</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) {
-<a name="l00124"></a>00124 <span class="keywordtype">bool</span> n1larger=(n1._get_length() &gt; n2._get_length());
-<a name="l00125"></a>00125 <span class="keyword">const</span> integer&amp; smaller(n1larger ? n2 : n1), larger(n1larger ? n1 : n2);
-<a name="l00126"></a>00126
-<a name="l00127"></a>00127 integer r;
-<a name="l00128"></a>00128 r._realloc(smaller._get_length());
-<a name="l00129"></a>00129
-<a name="l00130"></a>00130 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s1=smaller._get_digits(), *s1e=s1+smaller._get_length(),
-<a name="l00131"></a>00131 *s2=larger._get_digits();
-<a name="l00132"></a>00132 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t=r._get_digits();
+<a name="l00117"></a>00117 <span class="keywordflow">while</span> (s1 &lt; s1e) *t++ = *s1++ | *s2++;
+<a name="l00118"></a>00118 <span class="keywordflow">while</span> (s2 &lt; s2e) *t++ = *s2++;
+<a name="l00119"></a>00119
+<a name="l00120"></a>00120 target._cleanup();
+<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_1_1detail.html#a3021d365585065f356b81a0250403541">bitwise_xor</a>(base_integer&amp; target, <span class="keyword">const</span> base_integer&amp; n1, <span class="keyword">const</span>
+<a name="l00124"></a>00124 base_integer&amp; n2)
+<a name="l00125"></a>00125 {
+<a name="l00126"></a>00126 <span class="keywordtype">bool</span> n1larger=(n1._get_length() &gt; n2._get_length());
+<a name="l00127"></a>00127 <span class="keyword">const</span> base_integer &amp;smaller(n1larger ? n2 : n1), &amp;larger(n1larger ? n1 : n2);
+<a name="l00128"></a>00128
+<a name="l00129"></a>00129 <span class="keywordtype">size_t</span> maxlen = (std::min)(larger._get_length(), target._get_max_length());
+<a name="l00130"></a>00130
+<a name="l00131"></a>00131 target._make_unique();
+<a name="l00132"></a>00132 target._realloc(maxlen);
 <a name="l00133"></a>00133
-<a name="l00134"></a>00134 <span class="keywordflow">while</span> (s1 &lt; s1e) *t++ = *s1++ &amp; *s2++;
-<a name="l00135"></a>00135
-<a name="l00136"></a>00136 r._cleanup();
-<a name="l00137"></a>00137 <span class="keywordflow">return</span> r;
-<a name="l00138"></a>00138 }
-<a name="l00139"></a>00139
-<a name="l00146"></a>00146 integer <a class="code" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec" title="Combine two integers using a bitwise OR operation.">bitwise_or</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) {
-<a name="l00147"></a>00147 <span class="keywordtype">bool</span> n1larger=(n1._get_length() &gt; n2._get_length());
-<a name="l00148"></a>00148 <span class="keyword">const</span> integer&amp; smaller(n1larger ? n2 : n1), larger(n1larger ? n1 : n2);
-<a name="l00149"></a>00149
-<a name="l00150"></a>00150 integer r;
-<a name="l00151"></a>00151 r._realloc(larger._get_length());
-<a name="l00152"></a>00152
-<a name="l00153"></a>00153 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s1=smaller._get_digits(), *s1e=s1+smaller._get_length();
-<a name="l00154"></a>00154 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s2=larger._get_digits(), *s2e=s2+larger._get_length();
-<a name="l00155"></a>00155 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t=r._get_digits();
-<a name="l00156"></a>00156
-<a name="l00157"></a>00157 <span class="keywordflow">while</span> (s1&lt;s1e) *t++ = *s1++ | *s2++;
-<a name="l00158"></a>00158 <span class="keywordflow">while</span> (s2&lt;s2e) *t++ = *s2++;
+<a name="l00134"></a>00134 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s1 = smaller._get_digits(), *s1e = s1 +
+<a name="l00135"></a>00135 (std::min)(smaller._get_length(), maxlen);
+<a name="l00136"></a>00136 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s2 = larger._get_digits(), *s2e = s2 + maxlen;
+<a name="l00137"></a>00137 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t = target._get_writable_digits();
+<a name="l00138"></a>00138
+<a name="l00139"></a>00139 <span class="keywordflow">while</span> (s1&lt;s1e) *t++ = *s1++ ^ *s2++;
+<a name="l00140"></a>00140 <span class="keywordflow">while</span> (s2&lt;s2e) *t++ = *s2++;
+<a name="l00141"></a>00141
+<a name="l00142"></a>00142 target._cleanup();
+<a name="l00143"></a>00143 }
+<a name="l00144"></a>00144
+<a name="l00145"></a>00145 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a2c4f8bb0f54061c28c9eb9c2cc852273">shift_left</a>(base_integer&amp; target, <span class="keyword">const</span> base_integer&amp; n, <span class="keywordtype">size_t</span> byBits) {
+<a name="l00146"></a>00146 <span class="keywordflow">if</span> (byBits==0) {
+<a name="l00147"></a>00147 target._attach(n);
+<a name="l00148"></a>00148 <span class="keywordflow">return</span>;
+<a name="l00149"></a>00149 }
+<a name="l00150"></a>00150
+<a name="l00151"></a>00151 <span class="keywordtype">size_t</span> bytes = byBits / <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>, bits = byBits % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>;
+<a name="l00152"></a>00152 <span class="keywordtype">size_t</span> nlen = n._get_length();
+<a name="l00153"></a>00153
+<a name="l00154"></a>00154 temp_t answer(target, n._get_length() + bytes + 1);
+<a name="l00155"></a>00155 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *tgt = answer._get_writable_digits();
+<a name="l00156"></a>00156 <span class="keywordtype">size_t</span> anslen = answer._get_max_length();
+<a name="l00157"></a>00157
+<a name="l00158"></a>00158 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *src = n._get_digits();
 <a name="l00159"></a>00159
-<a name="l00160"></a>00160 r._cleanup();
-<a name="l00161"></a>00161 <span class="keywordflow">return</span> r;
-<a name="l00162"></a>00162 }
+<a name="l00160"></a>00160 <span class="comment">// bits/bytes is distance to move</span>
+<a name="l00161"></a>00161 <span class="comment">// nlen is one greater than top source byte to move</span>
+<a name="l00162"></a>00162 nlen = (std::min)(nlen, anslen - bytes - (bits != 0 ? 1 : 0));
 <a name="l00163"></a>00163
-<a name="l00171"></a>00171 integer <a class="code" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1" title="Combine two integers using a bitwise XOR operation.">bitwise_xor</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) {
-<a name="l00172"></a>00172 <span class="keywordtype">bool</span> n1larger=(n1._get_length() &gt; n2._get_length());
-<a name="l00173"></a>00173 <span class="keyword">const</span> integer&amp; smaller(n1larger ? n2 : n1), larger(n1larger ? n1 : n2);
-<a name="l00174"></a>00174
-<a name="l00175"></a>00175 integer r;
-<a name="l00176"></a>00176 r._realloc(larger._get_length());
-<a name="l00177"></a>00177
-<a name="l00178"></a>00178 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s1=smaller._get_digits(), *s1e=s1+smaller._get_length();
-<a name="l00179"></a>00179 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s2=larger._get_digits(), *s2e=s2+larger._get_length();
-<a name="l00180"></a>00180 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t=r._get_digits();
-<a name="l00181"></a>00181
-<a name="l00182"></a>00182 <span class="keywordflow">while</span> (s1&lt;s1e) *t++ = *s1++ ^ *s2++;
-<a name="l00183"></a>00183 <span class="keywordflow">while</span> (s2&lt;s2e) *t++ = *s2++;
-<a name="l00184"></a>00184
-<a name="l00185"></a>00185 r._cleanup();
-<a name="l00186"></a>00186 <span class="keywordflow">return</span> r;
-<a name="l00187"></a>00187 }
+<a name="l00164"></a>00164 <span class="keywordflow">if</span> (bits != 0 &amp;&amp; bytes+1 &lt; anslen) {
+<a name="l00165"></a>00165 <span class="comment">// Handle both bits and bytes in one pass</span>
+<a name="l00166"></a>00166 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s = src + nlen - 1;
+<a name="l00167"></a>00167 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t = tgt + nlen + bytes;
+<a name="l00168"></a>00168
+<a name="l00169"></a>00169 *t-- = *s &gt;&gt; (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> - bits);
+<a name="l00170"></a>00170 <span class="keywordflow">while</span> (s &gt; src) {
+<a name="l00171"></a>00171 *t = (*s-- &lt;&lt; bits);
+<a name="l00172"></a>00172 *t-- |= (*s &gt;&gt; (<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> - bits));
+<a name="l00173"></a>00173 }
+<a name="l00174"></a>00174 *t = (*s &lt;&lt; bits);
+<a name="l00175"></a>00175 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bytes != 0 &amp;&amp; bytes+1 &lt; anslen) {
+<a name="l00176"></a>00176 memcpy(tgt + bytes, src, <span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>) * nlen);
+<a name="l00177"></a>00177 }
+<a name="l00178"></a>00178 answer._cleanup();
+<a name="l00179"></a>00179 answer._set_negative(n._get_negative());
+<a name="l00180"></a>00180 target._attach(answer);
+<a name="l00181"></a>00181 }
+<a name="l00182"></a>00182
+<a name="l00183"></a>00183 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#ac6682e4cab49f639aa538ccd10b3a8e5">shift_right</a>(base_integer&amp; target, <span class="keyword">const</span> base_integer&amp; n, <span class="keywordtype">size_t</span> byBits) {
+<a name="l00184"></a>00184 <span class="keywordflow">if</span> (byBits==0) {
+<a name="l00185"></a>00185 target._attach(n);
+<a name="l00186"></a>00186 <span class="keywordflow">return</span>;
+<a name="l00187"></a>00187 }
 <a name="l00188"></a>00188
-<a name="l00197"></a>00197 integer <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>(<span class="keyword">const</span> integer&amp; n, <span class="keywordtype">int</span> byBits) {
-<a name="l00198"></a>00198 <span class="keywordflow">if</span> (byBits &gt; 0) <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(n, byBits);
-<a name="l00199"></a>00199 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(n, -byBits);
-<a name="l00200"></a>00200 }
-<a name="l00201"></a>00201
-<a name="l00209"></a>00209 integer <a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(<span class="keyword">const</span> integer&amp; n, <span class="keywordtype">size_t</span> byBits) {
-<a name="l00210"></a>00210 <span class="keywordflow">if</span> (byBits==0) <span class="keywordflow">return</span> n;
-<a name="l00211"></a>00211
-<a name="l00212"></a>00212 integer nn(n);
-<a name="l00213"></a>00213 nn._make_unique();
-<a name="l00214"></a>00214 nn._shift_left(byBits);
-<a name="l00215"></a>00215 <span class="keywordflow">return</span> nn;
-<a name="l00216"></a>00216 }
+<a name="l00189"></a>00189 <span class="keywordtype">size_t</span> bytes = byBits / <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>, bits = byBits % <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a>,
+<a name="l00190"></a>00190 bits2 = <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a7502e1dd4c20a5ad799c6414b55e6818">bits_per_digit</a> - bits;
+<a name="l00191"></a>00191
+<a name="l00192"></a>00192 temp_t answer(target, n._get_length() + bytes + 1);
+<a name="l00193"></a>00193 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *tgt = answer._get_writable_digits();
+<a name="l00194"></a>00194
+<a name="l00195"></a>00195 <span class="keywordtype">size_t</span> nlen = n._get_length();
+<a name="l00196"></a>00196 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *src = n._get_digits();
+<a name="l00197"></a>00197 <span class="keywordflow">if</span> (bytes &lt; nlen) {
+<a name="l00198"></a>00198 <span class="keywordflow">if</span> (bits != 0) {
+<a name="l00199"></a>00199 <span class="comment">// Handle both bits and bytes in one pass</span>
+<a name="l00200"></a>00200 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *s = src + bytes, *se = src + nlen - 1;
+<a name="l00201"></a>00201 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a> *t = tgt;
+<a name="l00202"></a>00202 <span class="keywordflow">while</span> (s!=se) {
+<a name="l00203"></a>00203 *t = (*s++ &gt;&gt; bits);
+<a name="l00204"></a>00204 *t++ |= (*s &lt;&lt; bits2);
+<a name="l00205"></a>00205 }
+<a name="l00206"></a>00206 *t = (*s &gt;&gt; bits);
+<a name="l00207"></a>00207 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bytes != 0) {
+<a name="l00208"></a>00208 memcpy(tgt, src + bytes, <span class="keyword">sizeof</span>(<a class="code" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">digit_t</a>) * (nlen - bytes));
+<a name="l00209"></a>00209 }
+<a name="l00210"></a>00210 }
+<a name="l00211"></a>00211 answer._cleanup();
+<a name="l00212"></a>00212 answer._set_negative(n._get_negative());
+<a name="l00213"></a>00213 target._attach(answer);
+<a name="l00214"></a>00214 }
+<a name="l00215"></a>00215
+<a name="l00216"></a>00216 } <span class="comment">// namespace detail</span>
 <a name="l00217"></a>00217
-<a name="l00225"></a>00225 integer <a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(<span class="keyword">const</span> integer&amp; n, <span class="keywordtype">size_t</span> byBits) {
-<a name="l00226"></a>00226 <span class="keywordflow">if</span> (byBits==0) <span class="keywordflow">return</span> n;
-<a name="l00227"></a>00227
-<a name="l00228"></a>00228 integer nn(n);
-<a name="l00229"></a>00229 nn._make_unique();
-<a name="l00230"></a>00230 nn._shift_right(byBits);
-<a name="l00231"></a>00231 <span class="keywordflow">return</span> nn;
-<a name="l00232"></a>00232 }
-<a name="l00233"></a>00233
-<a name="l00234"></a>00234 } <span class="comment">// namespace xint</span>
-<a name="l00235"></a>00235 } <span class="comment">// namespace boost</span>
+<a name="l00228"></a>00228 <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> integer&amp; n, <span class="keywordtype">size_t</span> bit) {
+<a name="l00229"></a>00229 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a6e4e8f8c4d7f25dbf7a6c5d13e74472b">detail::getbit</a>(n, bit);
+<a name="l00230"></a>00230 }
+<a name="l00231"></a>00231
+<a name="l00241"></a>00241 <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>(integer&amp; n, <span class="keywordtype">size_t</span> bit) {
+<a name="l00242"></a>00242 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aab28ac84cd1fb51d3d6206abad9fba01">detail::setbit</a>(n, bit);
+<a name="l00243"></a>00243 }
+<a name="l00244"></a>00244
+<a name="l00254"></a>00254 <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>(integer&amp; n, <span class="keywordtype">size_t</span> bit) {
+<a name="l00255"></a>00255 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#acac1cc20095f62e9c39941651dde4316">detail::clearbit</a>(n, bit);
+<a name="l00256"></a>00256 }
+<a name="l00257"></a>00257
+<a name="l00269"></a>00269 <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> integer&amp; n, <span class="keywordtype">size_t</span> valueIfZero) {
+<a name="l00270"></a>00270 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a70ae609a4ed2dfd6fb2c237eadfe8a71">detail::lowestbit</a>(n, valueIfZero);
+<a name="l00271"></a>00271 }
+<a name="l00272"></a>00272
+<a name="l00284"></a>00284 <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> integer&amp; n, <span class="keywordtype">size_t</span> valueIfZero) {
+<a name="l00285"></a>00285 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint_1_1detail.html#aa5632075443060f8efc8c2d76e3d0d38">detail::highestbit</a>(n, valueIfZero);
+<a name="l00286"></a>00286 }
+<a name="l00287"></a>00287
+<a name="l00297"></a>00297 integer <a class="code" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2" title="Combine two integers using a bitwise AND operation.">bitwise_and</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) {
+<a name="l00298"></a>00298 integer r;
+<a name="l00299"></a>00299 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a53d3a82d1e9cc3093f7152536226ad26">detail::bitwise_and</a>(r, n1, n2);
+<a name="l00300"></a>00300 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00301"></a>00301 }
+<a name="l00302"></a>00302
+<a name="l00312"></a>00312 integer <a class="code" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec" title="Combine two integers using a bitwise OR operation.">bitwise_or</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) {
+<a name="l00313"></a>00313 integer r;
+<a name="l00314"></a>00314 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a371947fdd527dc7f9749288893da9ef2">detail::bitwise_or</a>(r, n1, n2);
+<a name="l00315"></a>00315 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00316"></a>00316 }
+<a name="l00317"></a>00317
+<a name="l00327"></a>00327 integer <a class="code" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1" title="Combine two integers using a bitwise XOR operation.">bitwise_xor</a>(<span class="keyword">const</span> integer&amp; n1, <span class="keyword">const</span> integer&amp; n2) {
+<a name="l00328"></a>00328 integer r;
+<a name="l00329"></a>00329 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a3021d365585065f356b81a0250403541">detail::bitwise_xor</a>(r, n1, n2);
+<a name="l00330"></a>00330 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00331"></a>00331 }
+<a name="l00332"></a>00332
+<a name="l00343"></a>00343 integer <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>(<span class="keyword">const</span> integer&amp; n, <span class="keywordtype">int</span> byBits) {
+<a name="l00344"></a>00344 <span class="keywordflow">if</span> (byBits &gt; 0) <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(n, byBits);
+<a name="l00345"></a>00345 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(n, -byBits);
+<a name="l00346"></a>00346 }
+<a name="l00347"></a>00347
+<a name="l00357"></a>00357 integer <a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(<span class="keyword">const</span> integer&amp; n, <span class="keywordtype">size_t</span> byBits) {
+<a name="l00358"></a>00358 integer r;
+<a name="l00359"></a>00359 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#a2c4f8bb0f54061c28c9eb9c2cc852273">detail::shift_left</a>(r, n, byBits);
+<a name="l00360"></a>00360 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00361"></a>00361 }
+<a name="l00362"></a>00362
+<a name="l00372"></a>00372 integer <a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(<span class="keyword">const</span> integer&amp; n, <span class="keywordtype">size_t</span> byBits) {
+<a name="l00373"></a>00373 integer r;
+<a name="l00374"></a>00374 <a class="code" href="namespaceboost_1_1xint_1_1detail.html#ac6682e4cab49f639aa538ccd10b3a8e5">detail::shift_right</a>(r, n, byBits);
+<a name="l00375"></a>00375 <span class="keywordflow">return</span> <a class="code" href="internals_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00376"></a>00376 }
+<a name="l00377"></a>00377
+<a name="l00378"></a>00378 } <span class="comment">// namespace xint</span>
+<a name="l00379"></a>00379 } <span class="comment">// namespace boost</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 20:02:57 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Apr 30 00:24:24 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
 </body>

Deleted: sandbox/xint/doc/blockable__bit__manipulations_8cpp.html
==============================================================================
--- sandbox/xint/doc/blockable__bit__manipulations_8cpp.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,67 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_bit_manipulations.cpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>blockable_bit_manipulations.cpp File Reference</h1>
-<p>Contains the bit-manipulation functions for <code>nothrow_integers</code>.
-More...</p>
-
-<p>Go to the source code of this file.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
-
-<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
-<br/></td></tr>
-</p>
-<tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Bit-manipulation functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpcc775c18f98f26f2b84ac7a2558636f2"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a125277404ae139bee70547f2d51d3e0e">boost::xint::getbit</a> (const nothrow_integer &amp;n, size_t bit)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac76235b31dcadded8193443b78743948">boost::xint::setbit</a> (nothrow_integer &amp;n, size_t bit)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a6b82b4f0911b258e82b9c11b4413c8bf">boost::xint::clearbit</a> (nothrow_integer &amp;n, size_t bit)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a09477129544d4bdb08ddd63644683f5c">boost::xint::lowestbit</a> (const nothrow_integer &amp;n, size_t valueIfZero)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab817edabf5a6709c753dc6c07186ea75">boost::xint::highestbit</a> (const nothrow_integer &amp;n, size_t valueIfZero)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#abd4c2a471ad1e603ce5ef032071dd2ef">boost::xint::bitwise_and</a> (const nothrow_integer &amp;n1, const nothrow_integer &amp;n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a1221efa42739f309024e1715adc58917">boost::xint::bitwise_or</a> (const nothrow_integer &amp;n1, const nothrow_integer &amp;n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab4996f013ac222b53bea0b46ff95e1df">boost::xint::bitwise_xor</a> (const nothrow_integer &amp;n1, const nothrow_integer &amp;n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ad62ca08dc3d7600eee872dc5a95c338c">boost::xint::shift</a> (const nothrow_integer &amp;n, int byBits)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a4bc41e443d230352f7c099e60f4056f4">boost::xint::shift_left</a> (const nothrow_integer &amp;n, size_t byBits)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a295196e5fa8931578d27468cb5154f07">boost::xint::shift_right</a> (const nothrow_integer &amp;n, size_t byBits)</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Contains the bit-manipulation functions for <code>nothrow_integers</code>. </p>
-
-<p>Definition in file <a class="el" href="blockable__bit__manipulations_8cpp_source.html">blockable_bit_manipulations.cpp</a>.</p>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__bit__manipulations_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/blockable__bit__manipulations_8cpp_source.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,149 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_bit_manipulations.cpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-<h1>blockable_bit_manipulations.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
-<a name="l00002"></a>00002 <span class="comment">/*</span>
-<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
-<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
-<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
-<a name="l00006"></a>00006 <span class="comment"></span>
-<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
-<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
-<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
-<a name="l00010"></a>00010 <span class="comment"></span>
-<a name="l00011"></a>00011 <span class="comment"> See
http://www.boost.org/libs/xint for library home page.</span>
-<a name="l00012"></a>00012 <span class="comment">*/</span>
-<a name="l00013"></a>00013
-<a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
-<a name="l00019"></a>00019
-<a name="l00020"></a>00020 <span class="keyword">namespace </span>boost {
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>xint {
-<a name="l00022"></a>00022
-<a name="l00027"></a>00027 <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> nothrow_integer&amp; n, <span class="keywordtype">size_t</span> bit) {
-<a name="l00028"></a>00028 <span class="keywordflow">try</span> {
-<a name="l00029"></a>00029 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac00836bdc530b3eaf0a9b9f2e208273b" title="Queries the value of a particular bit in an integer.">getbit</a>(xint::integer(n), bit);
-<a name="l00030"></a>00030 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00031"></a>00031 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00032"></a>00032 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00033"></a>00033 }
-<a name="l00034"></a>00034 }
-<a name="l00035"></a>00035
-<a name="l00037"></a>00037 <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>(nothrow_integer&amp; n, <span class="keywordtype">size_t</span> bit) {
-<a name="l00038"></a>00038 <span class="keywordflow">try</span> {
-<a name="l00039"></a>00039 xint::integer nn(n);
-<a name="l00040"></a>00040 <a class="code" href="namespaceboost_1_1xint.html#a6278915cf51b0d448a9db40031226182" title="Sets a specific bit in an integer to one.">setbit</a>(nn, bit);
-<a name="l00041"></a>00041 n=nothrow_integer(nn);
-<a name="l00042"></a>00042 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00043"></a>00043 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00044"></a>00044 }
-<a name="l00045"></a>00045 }
-<a name="l00046"></a>00046
-<a name="l00048"></a>00048 <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>(nothrow_integer&amp; n, <span class="keywordtype">size_t</span> bit) {
-<a name="l00049"></a>00049 <span class="keywordflow">try</span> {
-<a name="l00050"></a>00050 xint::integer nn(n);
-<a name="l00051"></a>00051 <a class="code" href="namespaceboost_1_1xint.html#a96d452df71ac6799a7041647b4b106df" title="Sets a specific bit in an integer to zero.">clearbit</a>(nn, bit);
-<a name="l00052"></a>00052 n=nothrow_integer(nn);
-<a name="l00053"></a>00053 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00054"></a>00054 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00055"></a>00055 }
-<a name="l00056"></a>00056 }
-<a name="l00057"></a>00057
-<a name="l00062"></a>00062 <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> nothrow_integer&amp; n, <span class="keywordtype">size_t</span> valueIfZero) {
-<a name="l00063"></a>00063 <span class="keywordflow">try</span> {
-<a name="l00064"></a>00064 <span class="keywordflow">return</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>(xint::integer(n), valueIfZero);
-<a name="l00065"></a>00065 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00066"></a>00066 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00067"></a>00067 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l00068"></a>00068 }
-<a name="l00069"></a>00069 }
-<a name="l00070"></a>00070
-<a name="l00075"></a>00075 <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> nothrow_integer&amp; n, <span class="keywordtype">size_t</span> valueIfZero) {
-<a name="l00076"></a>00076 <span class="keywordflow">try</span> {
-<a name="l00077"></a>00077 <span class="keywordflow">return</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>(xint::integer(n), valueIfZero);
-<a name="l00078"></a>00078 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00079"></a>00079 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00080"></a>00080 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l00081"></a>00081 }
-<a name="l00082"></a>00082 }
-<a name="l00083"></a>00083
-<a name="l00085"></a>00085 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2" title="Combine two integers using a bitwise AND operation.">bitwise_and</a>(<span class="keyword">const</span> nothrow_integer&amp; n1, <span class="keyword">const</span> nothrow_integer&amp; n2) {
-<a name="l00086"></a>00086 <span class="keywordflow">try</span> {
-<a name="l00087"></a>00087 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2" title="Combine two integers using a bitwise AND operation.">bitwise_and</a>(xint::integer(n1), xint::integer(n2)));
-<a name="l00088"></a>00088 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00089"></a>00089 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00090"></a>00090 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00091"></a>00091 }
-<a name="l00092"></a>00092 }
-<a name="l00093"></a>00093
-<a name="l00095"></a>00095 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec" title="Combine two integers using a bitwise OR operation.">bitwise_or</a>(<span class="keyword">const</span> nothrow_integer&amp; n1, <span class="keyword">const</span> nothrow_integer&amp; n2) {
-<a name="l00096"></a>00096 <span class="keywordflow">try</span> {
-<a name="l00097"></a>00097 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec" title="Combine two integers using a bitwise OR operation.">bitwise_or</a>(xint::integer(n1), xint::integer(n2)));
-<a name="l00098"></a>00098 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00099"></a>00099 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00100"></a>00100 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00101"></a>00101 }
-<a name="l00102"></a>00102 }
-<a name="l00103"></a>00103
-<a name="l00105"></a>00105 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1" title="Combine two integers using a bitwise XOR operation.">bitwise_xor</a>(<span class="keyword">const</span> nothrow_integer&amp; n1, <span class="keyword">const</span> nothrow_integer&amp; n2) {
-<a name="l00106"></a>00106 <span class="keywordflow">try</span> {
-<a name="l00107"></a>00107 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1" title="Combine two integers using a bitwise XOR operation.">bitwise_xor</a>(xint::integer(n1), xint::integer(n2)));
-<a name="l00108"></a>00108 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00109"></a>00109 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00110"></a>00110 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00111"></a>00111 }
-<a name="l00112"></a>00112 }
-<a name="l00113"></a>00113
-<a name="l00115"></a>00115 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>(<span class="keyword">const</span> nothrow_integer&amp; n, <span class="keywordtype">int</span> byBits) {
-<a name="l00116"></a>00116 <span class="keywordflow">if</span> (byBits &gt; 0) <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(n, byBits);
-<a name="l00117"></a>00117 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(n, -byBits);
-<a name="l00118"></a>00118 }
-<a name="l00119"></a>00119
-<a name="l00121"></a>00121 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(<span class="keyword">const</span> nothrow_integer&amp; n, <span class="keywordtype">size_t</span> byBits) {
-<a name="l00122"></a>00122 <span class="keywordflow">try</span> {
-<a name="l00123"></a>00123 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(xint::integer(n), byBits));
-<a name="l00124"></a>00124 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00125"></a>00125 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00126"></a>00126 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00127"></a>00127 }
-<a name="l00128"></a>00128 }
-<a name="l00129"></a>00129
-<a name="l00131"></a>00131 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(<span class="keyword">const</span> nothrow_integer&amp; n, <span class="keywordtype">size_t</span> byBits) {
-<a name="l00132"></a>00132 <span class="keywordflow">try</span> {
-<a name="l00133"></a>00133 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(xint::integer(n), byBits));
-<a name="l00134"></a>00134 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00135"></a>00135 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00136"></a>00136 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00137"></a>00137 }
-<a name="l00138"></a>00138 }
-<a name="l00139"></a>00139
-<a name="l00140"></a>00140 } <span class="comment">// namespace xint</span>
-<a name="l00141"></a>00141 } <span class="comment">// namespace boost</span>
-</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__compare_8cpp.html
==============================================================================
--- sandbox/xint/doc/blockable__compare_8cpp.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,67 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_compare.cpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>blockable_compare.cpp File Reference</h1>
-<p>Contains the the compare function and comparison operators for nothrow_integers.
-More...</p>
-
-<p>Go to the source code of this file.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
-
-<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
-<br/></td></tr>
-</p>
-<tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Miscellaneous functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp458f92801f3edfaf2e30b1f530c324e2"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a2745c08384519957ceaf26c3e421d485">boost::xint::compare</a> (const nothrow_integer &amp;b1, const nothrow_integer &amp;b2, bool ignoresign)</td></tr>
-<tr><td colspan="2"><div class="groupHeader">Operators</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpb3c5827f54218753bb2c3338236446c2"></a> These act exactly the same as for the built-in integer types. </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ad1ffadda01cf8e0b230178a9325d96dc">boost::xint::operator!</a> (const nothrow_integer &amp;num1)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#accccaec2c2a8ccfadfc559adbb7ff6ed">boost::xint::operator==</a> (const nothrow_integer &amp;num1, const nothrow_integer &amp;num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a43189615a1bfb4904c969efe846cefc6">boost::xint::operator!=</a> (const nothrow_integer &amp;num1, const nothrow_integer &amp;num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aab98cd20fa3761900de197363bac0fcb">boost::xint::operator&lt;</a> (const nothrow_integer &amp;num1, const nothrow_integer &amp;num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a002b54ae65c6c265d773e7b491bd90fb">boost::xint::operator&gt;</a> (const nothrow_integer &amp;num1, const nothrow_integer &amp;num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a8a72cb95a5e25a310215eaa2cc93349f">boost::xint::operator&lt;=</a> (const nothrow_integer &amp;num1, const nothrow_integer &amp;num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a2e213ecd798c6bc331460dff13b35173">boost::xint::operator&gt;=</a> (const nothrow_integer &amp;num1, const nothrow_integer &amp;num2)</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Contains the the compare function and comparison operators for nothrow_integers. </p>
-
-<p>Definition in file <a class="el" href="blockable__compare_8cpp_source.html">blockable_compare.cpp</a>.</p>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__compare_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/blockable__compare_8cpp_source.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,95 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_compare.cpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-<h1>blockable_compare.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
-<a name="l00002"></a>00002 <span class="comment">/*</span>
-<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
-<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
-<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
-<a name="l00006"></a>00006 <span class="comment"></span>
-<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
-<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
-<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
-<a name="l00010"></a>00010 <span class="comment"></span>
-<a name="l00011"></a>00011 <span class="comment"> See
http://www.boost.org/libs/xint for library home page.</span>
-<a name="l00012"></a>00012 <span class="comment">*/</span>
-<a name="l00013"></a>00013
-<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
-<a name="l00020"></a>00020
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>boost {
-<a name="l00022"></a>00022 <span class="keyword">namespace </span>xint {
-<a name="l00023"></a>00023
-<a name="l00028"></a>00028 <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a2745c08384519957ceaf26c3e421d485">compare</a>(<span class="keyword">const</span> nothrow_integer &amp;b1, <span class="keyword">const</span> nothrow_integer &amp;b2, <span class="keywordtype">bool</span> ignoresign) {
-<a name="l00029"></a>00029 <span class="keywordflow">try</span> {
-<a name="l00030"></a>00030 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a2745c08384519957ceaf26c3e421d485">compare</a>(xint::integer(b1), xint::integer(b2));
-<a name="l00031"></a>00031 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00032"></a>00032 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00033"></a>00033 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l00034"></a>00034 }
-<a name="l00035"></a>00035 }
-<a name="l00036"></a>00036
-<a name="l00037"></a>00037 <span class="keyword">namespace </span>{
-<a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00039"></a>00039 <span class="keywordtype">bool</span> cmp(<span class="keyword">const</span> nothrow_integer &amp;num1, <span class="keyword">const</span> nothrow_integer &amp;num2, <span class="keyword">const</span> T&amp; t) {
-<a name="l00040"></a>00040 <span class="keywordflow">try</span> {
-<a name="l00041"></a>00041 <span class="keywordflow">return</span> t(<a class="code" href="namespaceboost_1_1xint.html#a2745c08384519957ceaf26c3e421d485">compare</a>(xint::integer(num1), xint::integer(num2)), 0);
-<a name="l00042"></a>00042 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00043"></a>00043 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00044"></a>00044 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00045"></a>00045 }
-<a name="l00046"></a>00046 }
-<a name="l00047"></a>00047 } <span class="comment">// namespace</span>
-<a name="l00048"></a>00048
-<a name="l00049"></a>00049 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ad1ffadda01cf8e0b230178a9325d96dc">operator!</a>(<span class="keyword">const</span> nothrow_integer &amp;num1) {
-<a name="l00050"></a>00050 <span class="keywordflow">try</span> {
-<a name="l00051"></a>00051 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad1ffadda01cf8e0b230178a9325d96dc">operator!</a>(xint::integer(num1));
-<a name="l00052"></a>00052 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00053"></a>00053 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00054"></a>00054 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00055"></a>00055 }
-<a name="l00056"></a>00056 }
-<a name="l00057"></a>00057
-<a name="l00058"></a>00058 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#accccaec2c2a8ccfadfc559adbb7ff6ed">operator==</a>(<span class="keyword">const</span> nothrow_integer &amp;num1, <span class="keyword">const</span> nothrow_integer &amp;num2) {
-<a name="l00059"></a>00059 <span class="keywordflow">return</span> cmp(num1, num2, std::equal_to&lt;int&gt;()); }
-<a name="l00060"></a>00060 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a43189615a1bfb4904c969efe846cefc6">operator!=</a>(<span class="keyword">const</span> nothrow_integer&amp; num1, <span class="keyword">const</span> nothrow_integer&amp; num2) {
-<a name="l00061"></a>00061 <span class="keywordflow">return</span> cmp(num1, num2, std::not_equal_to&lt;int&gt;()); }
-<a name="l00062"></a>00062 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#aab98cd20fa3761900de197363bac0fcb">operator&lt;</a>(<span class="keyword">const</span> nothrow_integer&amp; num1, <span class="keyword">const</span> nothrow_integer&amp; num2) {
-<a name="l00063"></a>00063 <span class="keywordflow">return</span> cmp(num1, num2, std::less&lt;int&gt;()); }
-<a name="l00064"></a>00064 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a002b54ae65c6c265d773e7b491bd90fb">operator&gt;</a>(<span class="keyword">const</span> nothrow_integer&amp; num1, <span class="keyword">const</span> nothrow_integer&amp; num2) {
-<a name="l00065"></a>00065 <span class="keywordflow">return</span> cmp(num1, num2, std::greater&lt;int&gt;()); }
-<a name="l00066"></a>00066 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a8a72cb95a5e25a310215eaa2cc93349f">operator&lt;=</a>(<span class="keyword">const</span> nothrow_integer&amp; num1, <span class="keyword">const</span> nothrow_integer&amp; num2) {
-<a name="l00067"></a>00067 <span class="keywordflow">return</span> cmp(num1, num2, std::less_equal&lt;int&gt;()); }
-<a name="l00068"></a>00068 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a2e213ecd798c6bc331460dff13b35173">operator&gt;=</a>(<span class="keyword">const</span> nothrow_integer&amp; num1, <span class="keyword">const</span> nothrow_integer&amp; num2) {
-<a name="l00069"></a>00069 <span class="keywordflow">return</span> cmp(num1, num2, std::greater_equal&lt;int&gt;()); }
-<a name="l00070"></a>00070
-<a name="l00071"></a>00071 } <span class="comment">// namespace xint</span>
-<a name="l00072"></a>00072 } <span class="comment">// namespace boost</span>
-</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__convert_8cpp.html
==============================================================================
--- sandbox/xint/doc/blockable__convert_8cpp.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,61 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_convert.cpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>blockable_convert.cpp File Reference</h1>
-<p>Contains the conversion functions for nothrow_integers.
-More...</p>
-
-<p>Go to the source code of this file.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
-
-<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
-<br/></td></tr>
-</p>
-<tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Conversion functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp9c2e8a06d85d2c9b83b5a0d27e85d535"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a41f8922f3a2328a3c8f0d50264643ca7">boost::xint::to_string</a> (const nothrow_integer &amp;n, size_t base, bool uppercase)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ae40f9a912e985490d7291d56e597a464">boost::xint::nothrow_from_string</a> (const std::string &amp;str, size_t base)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab6045aa842481c5175a2d2afbe018ff1">boost::xint::nothrow_from_binary</a> (const std::string &amp;str)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0602566ae765c905b4ff84275334a112">boost::xint::to_binary</a> (const nothrow_integer &amp;n)</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Contains the conversion functions for nothrow_integers. </p>
-<p>Note that the xint::to&lt;T&gt; function is not here, because it's a template function and must be defined in a header file. </p>
-
-<p>Definition in file <a class="el" href="blockable__convert_8cpp_source.html">blockable_convert.cpp</a>.</p>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__convert_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/blockable__convert_8cpp_source.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,91 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_convert.cpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-<h1>blockable_convert.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
-<a name="l00002"></a>00002 <span class="comment">/*</span>
-<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
-<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
-<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
-<a name="l00006"></a>00006 <span class="comment"></span>
-<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
-<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
-<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
-<a name="l00010"></a>00010 <span class="comment"></span>
-<a name="l00011"></a>00011 <span class="comment"> See
http://www.boost.org/libs/xint for library home page.</span>
-<a name="l00012"></a>00012 <span class="comment">*/</span>
-<a name="l00013"></a>00013
-<a name="l00021"></a>00021 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
-<a name="l00022"></a>00022
-<a name="l00023"></a>00023 <span class="keyword">namespace </span>boost {
-<a name="l00024"></a>00024 <span class="keyword">namespace </span>xint {
-<a name="l00025"></a>00025
-<a name="l00026"></a>00026 <span class="keyword">using namespace </span>detail;
-<a name="l00027"></a>00027
-<a name="l00036"></a>00036 std::string <a class="code" href="namespaceboost_1_1xint.html#a41f8922f3a2328a3c8f0d50264643ca7">to_string</a>(<span class="keyword">const</span> nothrow_integer&amp; n, <span class="keywordtype">size_t</span> base, <span class="keywordtype">bool</span> uppercase) {
-<a name="l00037"></a>00037 <span class="keywordflow">try</span> {
-<a name="l00038"></a>00038 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a41f8922f3a2328a3c8f0d50264643ca7">to_string</a>(xint::integer(n), base, uppercase);
-<a name="l00039"></a>00039 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00040"></a>00040 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00041"></a>00041 <span class="keywordflow">else</span> <span class="keywordflow">return</span> std::string();
-<a name="l00042"></a>00042 }
-<a name="l00043"></a>00043 }
-<a name="l00044"></a>00044
-<a name="l00049"></a>00049 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#ae40f9a912e985490d7291d56e597a464">nothrow_from_string</a>(<span class="keyword">const</span> std::string&amp; str, <span class="keywordtype">size_t</span> base) {
-<a name="l00050"></a>00050 <span class="keywordflow">try</span> {
-<a name="l00051"></a>00051 <span class="keywordflow">if</span> (str==<a class="code" href="namespaceboost_1_1xint_1_1detail.html#ab0df946a2c10228501ef82bf823d0978" title="Holds the text representation of the Not-a-Number value.">detail::nan_text</a>) <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00052"></a>00052 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#af263105e57d48eff5fe14d4d03ca10e1" title="Converts a string into an integer.">xint::from_string</a>(str, base));
-<a name="l00053"></a>00053 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00054"></a>00054 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00055"></a>00055 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00056"></a>00056 }
-<a name="l00057"></a>00057 }
-<a name="l00058"></a>00058
-<a name="l00060"></a>00060 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#ab6045aa842481c5175a2d2afbe018ff1">nothrow_from_binary</a>(<span class="keyword">const</span> std::string&amp; str) {
-<a name="l00061"></a>00061 <span class="keywordflow">try</span> {
-<a name="l00062"></a>00062 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#a58aa7dc532f0d8a1557c9ec8f512602e" title="Converts a binary representation of a number into an integer.">xint::from_binary</a>(str));
-<a name="l00063"></a>00063 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00064"></a>00064 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00065"></a>00065 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00066"></a>00066 }
-<a name="l00067"></a>00067 }
-<a name="l00068"></a>00068
-<a name="l00070"></a>00070 std::string <a class="code" href="namespaceboost_1_1xint.html#a0602566ae765c905b4ff84275334a112">to_binary</a>(<span class="keyword">const</span> nothrow_integer&amp; n) {
-<a name="l00071"></a>00071 <span class="keywordflow">try</span> {
-<a name="l00072"></a>00072 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a0602566ae765c905b4ff84275334a112">to_binary</a>(xint::integer(n));
-<a name="l00073"></a>00073 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00074"></a>00074 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00075"></a>00075 <span class="keywordflow">else</span> <span class="keywordflow">return</span> std::string();
-<a name="l00076"></a>00076 }
-<a name="l00077"></a>00077 }
-<a name="l00078"></a>00078
-<a name="l00079"></a>00079 } <span class="comment">// namespace xint</span>
-<a name="l00080"></a>00080 } <span class="comment">// namespace boost</span>
-</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__gcd_8cpp.html
==============================================================================
--- sandbox/xint/doc/blockable__gcd_8cpp.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_gcd.cpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>blockable_gcd.cpp File Reference</h1>
-<p>Greatest Common Denominator and Least Common Multple for <code>nothrow_integers</code>.
-More...</p>
-
-<p>Go to the source code of this file.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
-
-<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
-<br/></td></tr>
-</p>
-<tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Miscellaneous functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp458f92801f3edfaf2e30b1f530c324e2"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a3ae2716e04bebbb74be08845db7132e2">boost::xint::gcd</a> (const nothrow_integer &amp;num1, const nothrow_integer &amp;num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a8782636245af4772735f6e7510a7d3da">boost::xint::lcm</a> (const nothrow_integer &amp;num1, const nothrow_integer &amp;num2)</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Greatest Common Denominator and Least Common Multple for <code>nothrow_integers</code>. </p>
-
-<p>Definition in file <a class="el" href="blockable__gcd_8cpp_source.html">blockable_gcd.cpp</a>.</p>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__gcd_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/blockable__gcd_8cpp_source.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,70 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_gcd.cpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-<h1>blockable_gcd.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
-<a name="l00002"></a>00002 <span class="comment">/*</span>
-<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
-<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
-<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
-<a name="l00006"></a>00006 <span class="comment"></span>
-<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
-<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
-<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
-<a name="l00010"></a>00010 <span class="comment"></span>
-<a name="l00011"></a>00011 <span class="comment"> See
http://www.boost.org/libs/xint for library home page.</span>
-<a name="l00012"></a>00012 <span class="comment">*/</span>
-<a name="l00013"></a>00013
-<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
-<a name="l00020"></a>00020
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>boost {
-<a name="l00022"></a>00022 <span class="keyword">namespace </span>xint {
-<a name="l00023"></a>00023
-<a name="l00025"></a>00025 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a3ae2716e04bebbb74be08845db7132e2">gcd</a>(<span class="keyword">const</span> nothrow_integer&amp; num1, <span class="keyword">const</span> nothrow_integer&amp; num2) {
-<a name="l00026"></a>00026 <span class="keywordflow">try</span> {
-<a name="l00027"></a>00027 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#a3ae2716e04bebbb74be08845db7132e2">gcd</a>(xint::integer(num1), xint::integer(num2)));
-<a name="l00028"></a>00028 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00029"></a>00029 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00030"></a>00030 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00031"></a>00031 }
-<a name="l00032"></a>00032 }
-<a name="l00033"></a>00033
-<a name="l00035"></a>00035 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a8782636245af4772735f6e7510a7d3da">lcm</a>(<span class="keyword">const</span> nothrow_integer&amp; num1, <span class="keyword">const</span> nothrow_integer&amp; num2) {
-<a name="l00036"></a>00036 <span class="keywordflow">try</span> {
-<a name="l00037"></a>00037 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#a8782636245af4772735f6e7510a7d3da">lcm</a>(xint::integer(num1), xint::integer(num2)));
-<a name="l00038"></a>00038 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00039"></a>00039 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00040"></a>00040 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00041"></a>00041 }
-<a name="l00042"></a>00042 }
-<a name="l00043"></a>00043
-<a name="l00044"></a>00044 } <span class="comment">// namespace xint</span>
-<a name="l00045"></a>00045 } <span class="comment">// namespace boost</span>
-</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__integer_8cpp.html
==============================================================================
--- sandbox/xint/doc/blockable__integer_8cpp.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,52 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_integer.cpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>blockable_integer.cpp File Reference</h1>
-<p>Contains the definitions for the xint::nothrow_integer member functions.
-More...</p>
-
-<p>Go to the source code of this file.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
-
-<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
-<br/></td></tr>
-</p>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Contains the definitions for the xint::nothrow_integer member functions. </p>
-
-<p>Definition in file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__integer_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/blockable__integer_8cpp_source.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,219 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_integer.cpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-<h1>blockable_integer.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
-<a name="l00002"></a>00002 <span class="comment">/*</span>
-<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
-<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
-<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
-<a name="l00006"></a>00006 <span class="comment"></span>
-<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
-<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
-<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
-<a name="l00010"></a>00010 <span class="comment"></span>
-<a name="l00011"></a>00011 <span class="comment"> See
http://www.boost.org/libs/xint for library home page.</span>
-<a name="l00012"></a>00012 <span class="comment">*/</span>
-<a name="l00013"></a>00013
-<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
-<a name="l00020"></a>00020
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>boost {
-<a name="l00022"></a>00022 <span class="keyword">namespace </span>xint {
-<a name="l00023"></a>00023
-<a name="l00024"></a>00024 <span class="keyword">const</span> std::string <a class="code" href="namespaceboost_1_1xint_1_1detail.html#ab0df946a2c10228501ef82bf823d0978" title="Holds the text representation of the Not-a-Number value.">detail::nan_text</a>(<span class="stringliteral">&quot;#NaN#&quot;</span>);
-<a name="l00025"></a>00025
-<a name="l00027"></a>00027 <span class="comment">// The nothrow_integer class</span>
-<a name="l00028"></a>00028
-<a name="l00029"></a>00029 <span class="keyword">namespace </span>{
-<a name="l00030"></a>00030 std::auto_ptr&lt;nothrow_integer&gt; cZero, cOne, cNaN;
-<a name="l00031"></a>00031 }
-<a name="l00032"></a>00032
-<a name="l00034"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#add8423c7b0d729fe93a8aabf49d333ae">00034</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#add8423c7b0d729fe93a8aabf49d333ae">nothrow_integer::nothrow_integer</a>() {
-<a name="l00035"></a>00035 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4f2678c34cdf09e8df0c38ea91347fd7">_attach_0</a>();
-<a name="l00036"></a>00036 }
-<a name="l00037"></a>00037
-<a name="l00039"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a9c9e622a764a004d256c18b7929081">00039</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>&amp; b) {
-<a name="l00040"></a>00040 <span class="keywordflow">try</span> {
-<a name="l00041"></a>00041 <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>()) <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">_attach</a>(b);
-<a name="l00042"></a>00042 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00043"></a>00043 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00044"></a>00044 }
-<a name="l00045"></a>00045 }
-<a name="l00046"></a>00046
-<a name="l00057"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a195e4062a0f980e1bc9df47f8645854a">00057</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>&amp; b) {
-<a name="l00058"></a>00058 <span class="keywordflow">try</span> {
-<a name="l00059"></a>00059 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">_attach</a>(b);
-<a name="l00060"></a>00060 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00061"></a>00061 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00062"></a>00062 }
-<a name="l00063"></a>00063 }
-<a name="l00064"></a>00064
-<a name="l00066"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a70c7b596f17102c6e292b8994dda76cc">00066</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&amp; str, <span class="keywordtype">size_t</span> base) {
-<a name="l00067"></a>00067 <span class="keywordflow">try</span> {
-<a name="l00068"></a>00068 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">_attach</a>(<a class="code" href="namespaceboost_1_1xint.html#af263105e57d48eff5fe14d4d03ca10e1" title="Converts a string into an integer.">from_string</a>(str, base));
-<a name="l00069"></a>00069 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00070"></a>00070 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00071"></a>00071 }
-<a name="l00072"></a>00072 }
-<a name="l00073"></a>00073
-<a name="l00078"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a39c446f247f63fbad9c4a205a1fbcc74">00078</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a39c446f247f63fbad9c4a205a1fbcc74">nothrow_integer::odd</a>()<span class="keyword"> const </span>{
-<a name="l00079"></a>00079 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a1dd4d6157a77e2e1e13d2915661dce7d" title="Tests *this for Not-a-Number.">is_nan</a>()) {
-<a name="l00080"></a>00080 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1exception_1_1not__a__number.html">exception::not_a_number</a>();
-<a name="l00081"></a>00081 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00082"></a>00082 }
-<a name="l00083"></a>00083 <span class="keywordflow">return</span> ((<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aad96a1fe27c2b1da6fe933acc444d98f">_get_digit</a>(0) &amp; 0x01)==1);
-<a name="l00084"></a>00084 }
-<a name="l00085"></a>00085
-<a name="l00090"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a405c535527d1ff631c7338a6d329c51d">00090</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a405c535527d1ff631c7338a6d329c51d">nothrow_integer::even</a>()<span class="keyword"> const </span>{
-<a name="l00091"></a>00091 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a1dd4d6157a77e2e1e13d2915661dce7d" title="Tests *this for Not-a-Number.">is_nan</a>()) {
-<a name="l00092"></a>00092 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1exception_1_1not__a__number.html">exception::not_a_number</a>();
-<a name="l00093"></a>00093 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00094"></a>00094 }
-<a name="l00095"></a>00095 <span class="keywordflow">return</span> ((<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aad96a1fe27c2b1da6fe933acc444d98f">_get_digit</a>(0) &amp; 0x01)==0);
-<a name="l00096"></a>00096 }
-<a name="l00097"></a>00097
-<a name="l00102"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a76bc6cf5315c6b7ee6083f28acfa7ddf">00102</a> <span class="keywordtype">int</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a76bc6cf5315c6b7ee6083f28acfa7ddf">nothrow_integer::sign</a>(<span class="keywordtype">bool</span> signed_zero)<span class="keyword"> const </span>{
-<a name="l00103"></a>00103 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a1dd4d6157a77e2e1e13d2915661dce7d" title="Tests *this for Not-a-Number.">is_nan</a>()) {
-<a name="l00104"></a>00104 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1exception_1_1not__a__number.html">exception::not_a_number</a>();
-<a name="l00105"></a>00105 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l00106"></a>00106 }
-<a name="l00107"></a>00107 <span class="keywordflow">if</span> (!signed_zero &amp;&amp; <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a576bd802f9b2cb8450250839bc52b98c">_is_zero</a>()) <span class="keywordflow">return</span> 0;
-<a name="l00108"></a>00108 <span class="keywordflow">else</span> <span class="keywordflow">return</span> (<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2a6ba9a67a9167e9535d735dacbaace7">_get_negative</a>() ? -1 : 1);
-<a name="l00109"></a>00109 }
-<a name="l00110"></a>00110
-<a name="l00115"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a06f1a0177446777e4e84dc0fc91d65b2">00115</a> <span class="keywordtype">size_t</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a06f1a0177446777e4e84dc0fc91d65b2">nothrow_integer::hex_digits</a>()<span class="keyword"> const </span>{
-<a name="l00116"></a>00116 <span class="keywordflow">try</span> {
-<a name="l00117"></a>00117 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#add8423c7b0d729fe93a8aabf49d333ae">xint::nothrow_integer</a>(*this).hex_digits();
-<a name="l00118"></a>00118 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00119"></a>00119 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00120"></a>00120 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l00121"></a>00121 }
-<a name="l00122"></a>00122 }
-<a name="l00123"></a>00123
-<a name="l00130"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a1dd4d6157a77e2e1e13d2915661dce7d">00130</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a1dd4d6157a77e2e1e13d2915661dce7d" title="Tests *this for Not-a-Number.">nothrow_integer::is_nan</a>()<span class="keyword"> const </span>{
-<a name="l00131"></a>00131 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#afdaa612dd6669a12d349d6268f1ea3ff">_is_nan</a>();
-<a name="l00132"></a>00132 }
-<a name="l00133"></a>00133
-<a name="l00134"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a80ef0930d8b99b324d01bb27efe709f9">00134</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a80ef0930d8b99b324d01bb27efe709f9">nothrow_integer::operator+=</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>&amp; addend) {
-<a name="l00135"></a>00135 <span class="keywordflow">try</span> {
-<a name="l00136"></a>00136 *<span class="keyword">this</span>=<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#add8423c7b0d729fe93a8aabf49d333ae">nothrow_integer</a>(<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">xint::nothrow_integer</a>(*this).operator+=(<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">xint::nothrow_integer</a>(addend)));
-<a name="l00137"></a>00137 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00138"></a>00138 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00139"></a>00139 *<span class="keyword">this</span>=<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00140"></a>00140 }
-<a name="l00141"></a>00141 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00142"></a>00142 }
-<a name="l00143"></a>00143
-<a name="l00144"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#aee5d502fc0045ceaf4abee175c6d4f69">00144</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#aee5d502fc0045ceaf4abee175c6d4f69">nothrow_integer::operator-=</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>&amp; subtrahend) {
-<a name="l00145"></a>00145 <span class="keywordflow">try</span> {
-<a name="l00146"></a>00146 *<span class="keyword">this</span>=<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#add8423c7b0d729fe93a8aabf49d333ae">nothrow_integer</a>(<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">xint::nothrow_integer</a>(*this).operator-=(<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">xint::nothrow_integer</a>(subtrahend)));
-<a name="l00147"></a>00147 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00148"></a>00148 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00149"></a>00149 *<span class="keyword">this</span>=<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00150"></a>00150 }
-<a name="l00151"></a>00151 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00152"></a>00152 }
-<a name="l00153"></a>00153
-<a name="l00154"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a8d0c877ae53afb89d00c021f10dce67a">00154</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a8d0c877ae53afb89d00c021f10dce67a">nothrow_integer::operator=</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> &amp;c) {
-<a name="l00155"></a>00155 <span class="keywordflow">try</span> {
-<a name="l00156"></a>00156 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">_attach</a>(c);
-<a name="l00157"></a>00157 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00158"></a>00158 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00159"></a>00159 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">_attach</a>(0);
-<a name="l00160"></a>00160 }
-<a name="l00161"></a>00161 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00162"></a>00162 }
-<a name="l00163"></a>00163
-<a name="l00164"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a13e53eb7d7eaff28e52675aed5ee42f1">00164</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a13e53eb7d7eaff28e52675aed5ee42f1">nothrow_integer::operator*=</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>&amp; b) { *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00165"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a04f5934d995a7ca8d0c6bf0d0b2cfdda">00165</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a04f5934d995a7ca8d0c6bf0d0b2cfdda">nothrow_integer::operator/=</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>&amp; b) { *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00166"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a0193f6d340643c9d33517bc053f3d6c7">00166</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a0193f6d340643c9d33517bc053f3d6c7">nothrow_integer::operator%=</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>&amp; b) { *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#af91fe435810928b98d6e2b36ea4c3b53">mod</a>(*<span class="keyword">this</span>, b); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00167"></a>00167
-<a name="l00168"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#ab202967205b2a52063c2ac19647239bc">00168</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#ab202967205b2a52063c2ac19647239bc">nothrow_integer::operator++</a>() { *<span class="keyword">this</span> += <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a1487576980f14a9011d76dab4d7bcb50">one</a>(); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00169"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a19758953082fe86fdc13e4bef45fc6b6">00169</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a19758953082fe86fdc13e4bef45fc6b6">nothrow_integer::operator--</a>() { *<span class="keyword">this</span> -= <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a1487576980f14a9011d76dab4d7bcb50">one</a>(); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00170"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#adf0e88fe1177733ae70496aa1a53a14d">00170</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#ab202967205b2a52063c2ac19647239bc">nothrow_integer::operator++</a>(<span class="keywordtype">int</span>) { <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a> s=*<span class="keyword">this</span>; *<span class="keyword">this</span> += <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a1487576980f14a9011d76dab4d7bcb50">one</a>(); <span class="keywordflow">return</span> s; }
-<a name="l00171"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#added2905dcd5b61db7fc6672831fc4eb">00171</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a19758953082fe86fdc13e4bef45fc6b6">nothrow_integer::operator--</a>(<span class="keywordtype">int</span>) { <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a> s=*<span class="keyword">this</span>; *<span class="keyword">this</span> -= <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a1487576980f14a9011d76dab4d7bcb50">one</a>(); <span class="keywordflow">return</span> s; }
-<a name="l00172"></a>00172
-<a name="l00173"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a616a917ad4877d96ed634dd502efecb8">00173</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a616a917ad4877d96ed634dd502efecb8">nothrow_integer::operator&lt;&lt;</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ae22c3492ecf08370a9a972c8d6fb8e96" title="Left-shift an integer by a specified number of bits.">shift_left</a>(*<span class="keyword">this</span>, shift); }
-<a name="l00174"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a6eb932be75bcc68ca4fca3845c811f87">00174</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a6eb932be75bcc68ca4fca3845c811f87">nothrow_integer::operator&gt;&gt;</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aca7453fa9e276ebefacc9827b55f69d2" title="Right-shift an integer by a specified number of bits.">shift_right</a>(*<span class="keyword">this</span>, shift); }
-<a name="l00175"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a6d644e1792f821acd8d4b9dfe9aa557e">00175</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a6d644e1792f821acd8d4b9dfe9aa557e">nothrow_integer::operator&amp;=</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>&amp; n) { *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2" title="Combine two integers using a bitwise AND operation.">bitwise_and</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00176"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a0d005b0e98ea4a078d6c471217c07a24">00176</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a0d005b0e98ea4a078d6c471217c07a24">nothrow_integer::operator|=</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>&amp; n) { *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec" title="Combine two integers using a bitwise OR operation.">bitwise_or</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00177"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#aab4b0f9c0ffeb93f68185a6ae4a98986">00177</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#aab4b0f9c0ffeb93f68185a6ae4a98986">nothrow_integer::operator^=</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>&amp; n) { *<span class="keyword">this</span>=<a class="code" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1" title="Combine two integers using a bitwise XOR operation.">bitwise_xor</a>(*<span class="keyword">this</span>, n); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00178"></a>00178
-<a name="l00179"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#aeddbf6a9232a10643c8bfb53576393ee">00179</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#aeddbf6a9232a10643c8bfb53576393ee">nothrow_integer::operator&lt;&lt;=</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>) {
-<a name="l00180"></a>00180 <span class="keywordflow">try</span> {
-<a name="l00181"></a>00181 *<span class="keyword">this</span>=<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#add8423c7b0d729fe93a8aabf49d333ae">nothrow_integer</a>(<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">xint::nothrow_integer</a>(*this).operator&lt;&lt;=(shift));
-<a name="l00182"></a>00182 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00183"></a>00183 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00184"></a>00184 *<span class="keyword">this</span>=<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00185"></a>00185 }
-<a name="l00186"></a>00186 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00187"></a>00187 }
-<a name="l00188"></a>00188
-<a name="l00189"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#aeb282d877481f9b21e1a9d1d1e6a1044">00189</a> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#aeb282d877481f9b21e1a9d1d1e6a1044">nothrow_integer::operator&gt;&gt;=</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#aaed048f3dc3a442152ebffa3f721d014" title="Bit-shift an integer, in either direction.">shift</a>) {
-<a name="l00190"></a>00190 <span class="keywordflow">try</span> {
-<a name="l00191"></a>00191 *<span class="keyword">this</span>=<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#add8423c7b0d729fe93a8aabf49d333ae">nothrow_integer</a>(<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">xint::nothrow_integer</a>(*this).operator&gt;&gt;=(shift));
-<a name="l00192"></a>00192 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00193"></a>00193 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00194"></a>00194 *<span class="keyword">this</span>=<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00195"></a>00195 }
-<a name="l00196"></a>00196 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00197"></a>00197 }
-<a name="l00198"></a>00198
-<a name="l00199"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a2b3241400b0691fa5bd612358b48ccdd">00199</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>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a2b3241400b0691fa5bd612358b48ccdd">nothrow_integer::zero</a>() {
-<a name="l00200"></a>00200 <span class="keywordflow">if</span> (cZero.get()==0) cZero.reset(<span class="keyword">new</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>(<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a2b3241400b0691fa5bd612358b48ccdd">xint::nothrow_integer::zero</a>()));
-<a name="l00201"></a>00201 <span class="keywordflow">return</span> *cZero;
-<a name="l00202"></a>00202 }
-<a name="l00203"></a>00203
-<a name="l00204"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a1487576980f14a9011d76dab4d7bcb50">00204</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>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a1487576980f14a9011d76dab4d7bcb50">nothrow_integer::one</a>() {
-<a name="l00205"></a>00205 <span class="keywordflow">if</span> (cOne.get()==0) cOne.reset(<span class="keyword">new</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a>(<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a1487576980f14a9011d76dab4d7bcb50">xint::nothrow_integer::one</a>()));
-<a name="l00206"></a>00206 <span class="keywordflow">return</span> *cOne;
-<a name="l00207"></a>00207 }
-<a name="l00208"></a>00208
-<a name="l00209"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">00209</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>&amp; <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>() {
-<a name="l00210"></a>00210 <span class="keywordflow">if</span> (cNaN.get()==0) {
-<a name="l00211"></a>00211 <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html" title="The nothrow_integer class.">nothrow_integer</a> *n=<span class="keyword">new</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#add8423c7b0d729fe93a8aabf49d333ae">nothrow_integer</a>();
-<a name="l00212"></a>00212 n-&gt;<a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">_attach</a>(0);
-<a name="l00213"></a>00213 cNaN.reset(n);
-<a name="l00214"></a>00214 }
-<a name="l00215"></a>00215 <span class="keywordflow">return</span> *cNaN;
-<a name="l00216"></a>00216 }
-<a name="l00217"></a>00217
-<a name="l00218"></a><a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a3351e2aacd5477008fd96bdf0c72d0b8">00218</a> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a3351e2aacd5477008fd96bdf0c72d0b8">nothrow_integer::_make_unique</a>() {
-<a name="l00219"></a>00219 <span class="keywordflow">try</span> {
-<a name="l00220"></a>00220 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#abdfe224ab8dae4dbd4cfdd16e6c0612f">_base_make_unique</a>();
-<a name="l00221"></a>00221 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00222"></a>00222 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00223"></a>00223 <a class="code" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">_attach</a>(0); <span class="comment">// Turns it into a Not-a-Number.</span>
-<a name="l00224"></a>00224 }
-<a name="l00225"></a>00225 }
-<a name="l00226"></a>00226
-<a name="l00227"></a>00227 } <span class="comment">// namespace xint</span>
-<a name="l00228"></a>00228 } <span class="comment">// namespace boost</span>
-</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__misc_8cpp.html
==============================================================================
--- sandbox/xint/doc/blockable__misc_8cpp.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,57 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_misc.cpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>blockable_misc.cpp File Reference</h1>
-<p>Functions for nothrow_integers that don't fall into any other category.
-More...</p>
-
-<p>Go to the source code of this file.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
-
-<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
-<br/></td></tr>
-</p>
-<tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Miscellaneous functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp458f92801f3edfaf2e30b1f530c324e2"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a206fbae1c02ec96cb274aae1ad611da7">boost::xint::log2</a> (const nothrow_integer &amp;n)</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Functions for nothrow_integers that don't fall into any other category. </p>
-
-<p>Definition in file <a class="el" href="blockable__misc_8cpp_source.html">blockable_misc.cpp</a>.</p>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__misc_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/blockable__misc_8cpp_source.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,61 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_misc.cpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-<h1>blockable_misc.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
-<a name="l00002"></a>00002 <span class="comment">/*</span>
-<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
-<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
-<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
-<a name="l00006"></a>00006 <span class="comment"></span>
-<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
-<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
-<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
-<a name="l00010"></a>00010 <span class="comment"></span>
-<a name="l00011"></a>00011 <span class="comment"> See
http://www.boost.org/libs/xint for library home page.</span>
-<a name="l00012"></a>00012 <span class="comment">*/</span>
-<a name="l00013"></a>00013
-<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
-<a name="l00020"></a>00020
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>boost {
-<a name="l00022"></a>00022 <span class="keyword">namespace </span>xint {
-<a name="l00023"></a>00023
-<a name="l00028"></a>00028 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#a206fbae1c02ec96cb274aae1ad611da7">log2</a>(<span class="keyword">const</span> nothrow_integer&amp; n) {
-<a name="l00029"></a>00029 <span class="keywordflow">try</span> {
-<a name="l00030"></a>00030 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a206fbae1c02ec96cb274aae1ad611da7">log2</a>(xint::integer(n));
-<a name="l00031"></a>00031 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00032"></a>00032 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00033"></a>00033 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l00034"></a>00034 }
-<a name="l00035"></a>00035 }
-<a name="l00036"></a>00036
-<a name="l00037"></a>00037 } <span class="comment">// namespace xint</span>
-<a name="l00038"></a>00038 } <span class="comment">// namespace boost</span>
-</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__modular_8cpp.html
==============================================================================
--- sandbox/xint/doc/blockable__modular_8cpp.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,61 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_modular.cpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>blockable_modular.cpp File Reference</h1>
-<p>Contains the definitions for the basic modular math functions for nothrow_integers.
-More...</p>
-
-<p>Go to the source code of this file.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
-
-<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
-<br/></td></tr>
-</p>
-<tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Modular math functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpbf63e6a6a1029bb25b7aa51052b38655"></a>A common reason to use a large-integer library is to implement public-key encryption, and the algorithms for such encryption often use modular math. </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#af91fe435810928b98d6e2b36ea4c3b53">boost::xint::mod</a> (const nothrow_integer &amp;n, const nothrow_integer &amp;m)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a3deaa6f8a44d454129bb06691a6035c7">boost::xint::mulmod</a> (const nothrow_integer &amp;n, const nothrow_integer &amp;by, const nothrow_integer &amp;m)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ae64aa02c6217ea9f53f25d4f44ddddd1">boost::xint::sqrmod</a> (const nothrow_integer &amp;n, const nothrow_integer &amp;m)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aa0d4bbcf5391accad798da207180894e">boost::xint::powmod</a> (const nothrow_integer &amp;n, const nothrow_integer &amp;e, const nothrow_integer &amp;m, bool noMontgomery)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a02c28345b397cb1508bad8d2bd36ca53">boost::xint::invmod</a> (const nothrow_integer &amp;n, const nothrow_integer &amp;m)</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Contains the definitions for the basic modular math functions for nothrow_integers. </p>
-
-<p>Definition in file <a class="el" href="blockable__modular_8cpp_source.html">blockable_modular.cpp</a>.</p>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__modular_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/blockable__modular_8cpp_source.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,101 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_modular.cpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-<h1>blockable_modular.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
-<a name="l00002"></a>00002 <span class="comment">/*</span>
-<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
-<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
-<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
-<a name="l00006"></a>00006 <span class="comment"></span>
-<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
-<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
-<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
-<a name="l00010"></a>00010 <span class="comment"></span>
-<a name="l00011"></a>00011 <span class="comment"> See
http://www.boost.org/libs/xint for library home page.</span>
-<a name="l00012"></a>00012 <span class="comment">*/</span>
-<a name="l00013"></a>00013
-<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
-<a name="l00020"></a>00020
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>boost {
-<a name="l00022"></a>00022 <span class="keyword">namespace </span>xint {
-<a name="l00023"></a>00023
-<a name="l00025"></a>00025 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#af91fe435810928b98d6e2b36ea4c3b53">mod</a>(<span class="keyword">const</span> nothrow_integer&amp; n, <span class="keyword">const</span> nothrow_integer&amp; m) {
-<a name="l00026"></a>00026 <span class="keywordflow">try</span> {
-<a name="l00027"></a>00027 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#af91fe435810928b98d6e2b36ea4c3b53">mod</a>(xint::integer(n), xint::integer(m)));
-<a name="l00028"></a>00028 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00029"></a>00029 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00030"></a>00030 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00031"></a>00031 }
-<a name="l00032"></a>00032 }
-<a name="l00033"></a>00033
-<a name="l00035"></a>00035 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a3deaa6f8a44d454129bb06691a6035c7">mulmod</a>(<span class="keyword">const</span> nothrow_integer&amp; n, <span class="keyword">const</span> nothrow_integer&amp; by, <span class="keyword">const</span> nothrow_integer&amp; m) {
-<a name="l00036"></a>00036 <span class="keywordflow">try</span> {
-<a name="l00037"></a>00037 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#af91fe435810928b98d6e2b36ea4c3b53">mod</a>(xint::integer(n) * xint::integer(by),
-<a name="l00038"></a>00038 xint::integer(m)));
-<a name="l00039"></a>00039 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00040"></a>00040 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00041"></a>00041 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00042"></a>00042 }
-<a name="l00043"></a>00043 }
-<a name="l00044"></a>00044
-<a name="l00046"></a>00046 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#ae64aa02c6217ea9f53f25d4f44ddddd1">sqrmod</a>(<span class="keyword">const</span> nothrow_integer&amp; n, <span class="keyword">const</span> nothrow_integer&amp; m) {
-<a name="l00047"></a>00047 <span class="keywordflow">try</span> {
-<a name="l00048"></a>00048 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#af91fe435810928b98d6e2b36ea4c3b53">mod</a>(<a class="code" href="namespaceboost_1_1xint.html#a83ce32006b45117f9b3dc6c673fc9f01">sqr</a>(xint::integer(n)), xint::integer(m)));
-<a name="l00049"></a>00049 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00050"></a>00050 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00051"></a>00051 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00052"></a>00052 }
-<a name="l00053"></a>00053 }
-<a name="l00054"></a>00054
-<a name="l00056"></a>00056 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#aa0d4bbcf5391accad798da207180894e">powmod</a>(<span class="keyword">const</span> nothrow_integer&amp; n, <span class="keyword">const</span> nothrow_integer&amp; e, <span class="keyword">const</span> nothrow_integer&amp; m, <span class="keywordtype">bool</span>
-<a name="l00057"></a>00057 noMontgomery)
-<a name="l00058"></a>00058 {
-<a name="l00059"></a>00059 <span class="keywordflow">try</span> {
-<a name="l00060"></a>00060 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#aa0d4bbcf5391accad798da207180894e">powmod</a>(xint::integer(n), xint::integer(e),
-<a name="l00061"></a>00061 xint::integer(m), noMontgomery));
-<a name="l00062"></a>00062 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00063"></a>00063 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00064"></a>00064 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00065"></a>00065 }
-<a name="l00066"></a>00066 }
-<a name="l00067"></a>00067
-<a name="l00073"></a>00073 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a02c28345b397cb1508bad8d2bd36ca53">invmod</a>(<span class="keyword">const</span> nothrow_integer&amp; n, <span class="keyword">const</span> nothrow_integer&amp; m) {
-<a name="l00074"></a>00074 <span class="keywordflow">try</span> {
-<a name="l00075"></a>00075 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#a02c28345b397cb1508bad8d2bd36ca53">invmod</a>(xint::integer(n), xint::integer(m)));
-<a name="l00076"></a>00076 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00077"></a>00077 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00078"></a>00078 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00079"></a>00079 }
-<a name="l00080"></a>00080 }
-<a name="l00081"></a>00081
-<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 Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__operators_8cpp.html
==============================================================================
--- sandbox/xint/doc/blockable__operators_8cpp.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,66 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_operators.cpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>blockable_operators.cpp File Reference</h1>
-<p>Contains the definitions for the basic math operators for nothrow_integers.
-More...</p>
-
-<p>Go to the source code of this file.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
-
-<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
-<br/></td></tr>
-</p>
-<tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Operators</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpb3c5827f54218753bb2c3338236446c2"></a> These act exactly the same as for the built-in integer types. </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const nothrow_integer &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7445ea22d360a39fd330f9c53ca550f3">boost::xint::operator+</a> (const nothrow_integer &amp;a)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#afbf48bed2400e2eec3fd9544420357f3">boost::xint::operator-</a> (const nothrow_integer &amp;a)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a69d186688f404f1608663142da86158c">boost::xint::operator+</a> (const nothrow_integer &amp;num1, const nothrow_integer &amp;num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ad51e8e59ad1ff61dcdd462bf9d8acf08">boost::xint::operator-</a> (const nothrow_integer &amp;num1, const nothrow_integer &amp;num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aadeb3206628bdfd3112db2d80fff7c92">boost::xint::operator*</a> (const nothrow_integer &amp;num1, const nothrow_integer &amp;num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a83d07bf51fce0b4644b2190278c30413">boost::xint::operator/</a> (const nothrow_integer &amp;num1, const nothrow_integer &amp;num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a2261cdd3b6c689b76cc379ac515e5d45">boost::xint::operator%</a> (const nothrow_integer &amp;num1, const nothrow_integer &amp;num2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a97db617d1b8d73ca35c8ef41ec7e9a31">boost::xint::operator&amp;</a> (const nothrow_integer &amp;n1, const nothrow_integer &amp;n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ae1b86fdde7f84fbcbe39cec5ecc0bc8c">boost::xint::operator|</a> (const nothrow_integer &amp;n1, const nothrow_integer &amp;n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a2b27999f391ede4a2ec60ee83e6e5060">boost::xint::operator^</a> (const nothrow_integer &amp;n1, const nothrow_integer &amp;n2)</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Contains the definitions for the basic math operators for nothrow_integers. </p>
-
-<p>Definition in file <a class="el" href="blockable__operators_8cpp_source.html">blockable_operators.cpp</a>.</p>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__operators_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/blockable__operators_8cpp_source.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_operators.cpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-<h1>blockable_operators.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
-<a name="l00002"></a>00002 <span class="comment">/*</span>
-<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
-<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
-<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
-<a name="l00006"></a>00006 <span class="comment"></span>
-<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
-<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
-<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
-<a name="l00010"></a>00010 <span class="comment"></span>
-<a name="l00011"></a>00011 <span class="comment"> See
http://www.boost.org/libs/xint for library home page.</span>
-<a name="l00012"></a>00012 <span class="comment">*/</span>
-<a name="l00013"></a>00013
-<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
-<a name="l00020"></a>00020
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>boost {
-<a name="l00022"></a>00022 <span class="keyword">namespace </span>xint {
-<a name="l00023"></a>00023
-<a name="l00024"></a>00024 <span class="keyword">const</span> nothrow_integer&amp; <a class="code" href="namespaceboost_1_1xint.html#a7445ea22d360a39fd330f9c53ca550f3">operator+</a>(<span class="keyword">const</span> nothrow_integer&amp; a) { <span class="keywordflow">return</span> a; }
-<a name="l00025"></a>00025 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#afbf48bed2400e2eec3fd9544420357f3">operator-</a>(<span class="keyword">const</span> nothrow_integer&amp; a) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aedc1654de47ce6d6635e5339b236f94d">negate</a>(a); }
-<a name="l00026"></a>00026 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a7445ea22d360a39fd330f9c53ca550f3">operator+</a>(<span class="keyword">const</span> nothrow_integer&amp; num1, <span class="keyword">const</span> nothrow_integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a7b7903cb879b60d0d5e3403b3c6a1cdd">add</a>(num1, num2); }
-<a name="l00027"></a>00027 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#afbf48bed2400e2eec3fd9544420357f3">operator-</a>(<span class="keyword">const</span> nothrow_integer&amp; num1, <span class="keyword">const</span> nothrow_integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a385b3869d8dcceab2ffb68ff33c95062">subtract</a>(num1, num2); }
-<a name="l00028"></a>00028 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#aadeb3206628bdfd3112db2d80fff7c92">operator*</a>(<span class="keyword">const</span> nothrow_integer&amp; num1, <span class="keyword">const</span> nothrow_integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(num1, num2); }
-<a name="l00029"></a>00029 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a83d07bf51fce0b4644b2190278c30413">operator/</a>(<span class="keyword">const</span> nothrow_integer&amp; num1, <span class="keyword">const</span> nothrow_integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(num1, num2); }
-<a name="l00030"></a>00030 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a2261cdd3b6c689b76cc379ac515e5d45">operator%</a>(<span class="keyword">const</span> nothrow_integer&amp; num1, <span class="keyword">const</span> nothrow_integer&amp; num2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#af91fe435810928b98d6e2b36ea4c3b53">mod</a>(num1, num2); }
-<a name="l00031"></a>00031 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a97db617d1b8d73ca35c8ef41ec7e9a31">operator&amp;</a>(<span class="keyword">const</span> nothrow_integer&amp; n1, <span class="keyword">const</span> nothrow_integer&amp; n2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab828c0be1559b60537b959ef75092fb2" title="Combine two integers using a bitwise AND operation.">bitwise_and</a>(n1, n2); }
-<a name="l00032"></a>00032 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#ae1b86fdde7f84fbcbe39cec5ecc0bc8c">operator|</a>(<span class="keyword">const</span> nothrow_integer&amp; n1, <span class="keyword">const</span> nothrow_integer&amp; n2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab38ce0764a4b6433e11e30efa2175fec" title="Combine two integers using a bitwise OR operation.">bitwise_or</a>(n1, n2); }
-<a name="l00033"></a>00033 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a2b27999f391ede4a2ec60ee83e6e5060">operator^</a>(<span class="keyword">const</span> nothrow_integer&amp; n1, <span class="keyword">const</span> nothrow_integer&amp; n2) { <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a6afd5af4550b698f6a7065f457fcb0a1" title="Combine two integers using a bitwise XOR operation.">bitwise_xor</a>(n1, n2); }
-<a name="l00034"></a>00034
-<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 Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__powers_8cpp.html
==============================================================================
--- sandbox/xint/doc/blockable__powers_8cpp.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,60 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_powers.cpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>blockable_powers.cpp File Reference</h1>
-<p>Contains the definitions for nothrow_integer functions related to powers of a number.
-More...</p>
-
-<p>Go to the source code of this file.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
-
-<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
-<br/></td></tr>
-</p>
-<tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Powers and roots</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp928a8cb047602f789d7433e262ed4560"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7dd5b57bcf282d01f39cddf425418287">boost::xint::nothrow_pow2</a> (size_t e)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a83ce32006b45117f9b3dc6c673fc9f01">boost::xint::sqr</a> (const nothrow_integer &amp;n)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7f73207284ff1f32b20fb8a6a7a82649">boost::xint::pow</a> (const nothrow_integer &amp;n, const nothrow_integer &amp;e)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0098148e09b3c1fb2aed15dc9badc7c6">boost::xint::nothrow_factorial</a> (size_t n)</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Contains the definitions for nothrow_integer functions related to powers of a number. </p>
-
-<p>Definition in file <a class="el" href="blockable__powers_8cpp_source.html">blockable_powers.cpp</a>.</p>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__powers_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/blockable__powers_8cpp_source.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,85 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_powers.cpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-<h1>blockable_powers.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
-<a name="l00002"></a>00002 <span class="comment">/*</span>
-<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
-<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
-<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
-<a name="l00006"></a>00006 <span class="comment"></span>
-<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
-<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
-<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
-<a name="l00010"></a>00010 <span class="comment"></span>
-<a name="l00011"></a>00011 <span class="comment"> See
http://www.boost.org/libs/xint for library home page.</span>
-<a name="l00012"></a>00012 <span class="comment">*/</span>
-<a name="l00013"></a>00013
-<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
-<a name="l00020"></a>00020
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>boost {
-<a name="l00022"></a>00022 <span class="keyword">namespace </span>xint {
-<a name="l00023"></a>00023
-<a name="l00025"></a>00025 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a7dd5b57bcf282d01f39cddf425418287">nothrow_pow2</a>(<span class="keywordtype">size_t</span> e) {
-<a name="l00026"></a>00026 nothrow_integer r;
-<a name="l00027"></a>00027 <a class="code" href="namespaceboost_1_1xint.html#a6278915cf51b0d448a9db40031226182" title="Sets a specific bit in an integer to one.">setbit</a>(r, e);
-<a name="l00028"></a>00028 <span class="keywordflow">return</span> r;
-<a name="l00029"></a>00029 }
-<a name="l00030"></a>00030
-<a name="l00032"></a>00032 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a83ce32006b45117f9b3dc6c673fc9f01">sqr</a>(<span class="keyword">const</span> nothrow_integer&amp; n) {
-<a name="l00033"></a>00033 <span class="keywordflow">try</span> {
-<a name="l00034"></a>00034 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#a83ce32006b45117f9b3dc6c673fc9f01">sqr</a>(xint::integer(n)));
-<a name="l00035"></a>00035 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00036"></a>00036 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00037"></a>00037 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00038"></a>00038 }
-<a name="l00039"></a>00039 }
-<a name="l00040"></a>00040
-<a name="l00042"></a>00042 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a7f73207284ff1f32b20fb8a6a7a82649">pow</a>(<span class="keyword">const</span> nothrow_integer&amp; n, <span class="keyword">const</span> nothrow_integer&amp; e) {
-<a name="l00043"></a>00043 <span class="keywordflow">try</span> {
-<a name="l00044"></a>00044 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#a7f73207284ff1f32b20fb8a6a7a82649">pow</a>(xint::integer(n), xint::integer(e)));
-<a name="l00045"></a>00045 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00046"></a>00046 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00047"></a>00047 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00048"></a>00048 }
-<a name="l00049"></a>00049 }
-<a name="l00050"></a>00050
-<a name="l00052"></a>00052 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a0098148e09b3c1fb2aed15dc9badc7c6">nothrow_factorial</a>(<span class="keywordtype">size_t</span> n) {
-<a name="l00053"></a>00053 <span class="keywordflow">try</span> {
-<a name="l00054"></a>00054 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#a942e346f6e6d069dc19c28e7e56634ab" title="Calculate the value of n! ">xint::factorial</a>(n));
-<a name="l00055"></a>00055 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00056"></a>00056 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00057"></a>00057 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00058"></a>00058 }
-<a name="l00059"></a>00059 }
-<a name="l00060"></a>00060
-<a name="l00061"></a>00061 } <span class="comment">// namespace xint</span>
-<a name="l00062"></a>00062 } <span class="comment">// namespace boost</span>
-</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__primes_8cpp.html
==============================================================================
--- sandbox/xint/doc/blockable__primes_8cpp.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_primes.cpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>blockable_primes.cpp File Reference</h1>
-<p>Contains the definitions for functions related to prime numbers for <code>nothrow_integers</code>.
-More...</p>
-
-<p>Go to the source code of this file.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
-
-<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
-<br/></td></tr>
-</p>
-<tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Prime number functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp540e8e12721acbe497d2b9b53ecc76ec"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ad581832932a4816cbc9f24740732c3a0">boost::xint::is_prime</a> (const nothrow_integer &amp;n, callback_t callback)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aed98791058e6a589b06f8015ae0acaef">boost::xint::nothrow_random_prime</a> (size_t size_in_bits, callback_t callback)</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Contains the definitions for functions related to prime numbers for <code>nothrow_integers</code>. </p>
-
-<p>Definition in file <a class="el" href="blockable__primes_8cpp_source.html">blockable_primes.cpp</a>.</p>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__primes_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/blockable__primes_8cpp_source.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,70 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_primes.cpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-<h1>blockable_primes.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
-<a name="l00002"></a>00002 <span class="comment">/*</span>
-<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
-<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
-<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
-<a name="l00006"></a>00006 <span class="comment"></span>
-<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
-<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
-<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
-<a name="l00010"></a>00010 <span class="comment"></span>
-<a name="l00011"></a>00011 <span class="comment"> See
http://www.boost.org/libs/xint for library home page.</span>
-<a name="l00012"></a>00012 <span class="comment">*/</span>
-<a name="l00013"></a>00013
-<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
-<a name="l00020"></a>00020
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>boost {
-<a name="l00022"></a>00022 <span class="keyword">namespace </span>xint {
-<a name="l00023"></a>00023
-<a name="l00028"></a>00028 <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#ad581832932a4816cbc9f24740732c3a0">is_prime</a>(<span class="keyword">const</span> nothrow_integer&amp; n, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a> callback) {
-<a name="l00029"></a>00029 <span class="keywordflow">try</span> {
-<a name="l00030"></a>00030 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad581832932a4816cbc9f24740732c3a0">is_prime</a>(xint::integer(n), callback);
-<a name="l00031"></a>00031 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00032"></a>00032 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00033"></a>00033 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1;
-<a name="l00034"></a>00034 }
-<a name="l00035"></a>00035 }
-<a name="l00036"></a>00036
-<a name="l00038"></a>00038 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#aed98791058e6a589b06f8015ae0acaef">nothrow_random_prime</a>(<span class="keywordtype">size_t</span> size_in_bits, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a> callback) {
-<a name="l00039"></a>00039 <span class="keywordflow">try</span> {
-<a name="l00040"></a>00040 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#aaf58d56e1a47ac55e0aa97a55e6fb2c9" title="Generate a randomly-generated prime number of a particular bit-size.">xint::random_prime</a>(size_in_bits, callback));
-<a name="l00041"></a>00041 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00042"></a>00042 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00043"></a>00043 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00044"></a>00044 }
-<a name="l00045"></a>00045 }
-<a name="l00046"></a>00046
-<a name="l00047"></a>00047 } <span class="comment">// namespace xint</span>
-<a name="l00048"></a>00048 } <span class="comment">// namespace boost</span>
-</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__primitives_8cpp.html
==============================================================================
--- sandbox/xint/doc/blockable__primitives_8cpp.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,64 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_primitives.cpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>blockable_primitives.cpp File Reference</h1>
-<p>Contains the definitions for math primitives for <code>nothrow_integers</code>.
-More...</p>
-
-<p>Go to the source code of this file.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
-
-<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
-<br/></td></tr>
-</p>
-<tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Mathematical primitives</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp196dd2a5f50860e057df961a96d84ea3"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0e114c276fc9affcc068dd5f0fbd9ff9">boost::xint::abs</a> (const nothrow_integer &amp;n)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aedc1654de47ce6d6635e5339b236f94d">boost::xint::negate</a> (const nothrow_integer &amp;n)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7b7903cb879b60d0d5e3403b3c6a1cdd">boost::xint::add</a> (const nothrow_integer &amp;n1, const nothrow_integer &amp;n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a385b3869d8dcceab2ffb68ff33c95062">boost::xint::subtract</a> (const nothrow_integer &amp;n1, const nothrow_integer &amp;n2)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">boost::xint::multiply</a> (const nothrow_integer &amp;n, const nothrow_integer &amp;by)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">boost::xint::divide</a> (const nothrow_integer &amp;dividend, const nothrow_integer &amp;divisor)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">std::pair&lt; nothrow_integer, <br class="typebreak"/>
-nothrow_integer &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aa7ba6c482e1526b25e6e946daf3a97ba">boost::xint::divide_r</a> (const nothrow_integer &amp;d1, const nothrow_integer &amp;d2)</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Contains the definitions for math primitives for <code>nothrow_integers</code>. </p>
-
-<p>Definition in file <a class="el" href="blockable__primitives_8cpp_source.html">blockable_primitives.cpp</a>.</p>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__primitives_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/blockable__primitives_8cpp_source.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,110 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_primitives.cpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-<h1>blockable_primitives.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
-<a name="l00002"></a>00002 <span class="comment">/*</span>
-<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
-<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
-<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
-<a name="l00006"></a>00006 <span class="comment"></span>
-<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
-<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
-<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
-<a name="l00010"></a>00010 <span class="comment"></span>
-<a name="l00011"></a>00011 <span class="comment"> See
http://www.boost.org/libs/xint for library home page.</span>
-<a name="l00012"></a>00012 <span class="comment">*/</span>
-<a name="l00013"></a>00013
-<a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
-<a name="l00019"></a>00019
-<a name="l00020"></a>00020 <span class="keyword">namespace </span>boost {
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>xint {
-<a name="l00022"></a>00022
-<a name="l00024"></a>00024 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a0e114c276fc9affcc068dd5f0fbd9ff9">abs</a>(<span class="keyword">const</span> nothrow_integer&amp; n) {
-<a name="l00025"></a>00025 <span class="keywordflow">try</span> {
-<a name="l00026"></a>00026 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#a0e114c276fc9affcc068dd5f0fbd9ff9">abs</a>(xint::integer(n)));
-<a name="l00027"></a>00027 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00028"></a>00028 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00029"></a>00029 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00030"></a>00030 }
-<a name="l00031"></a>00031 }
-<a name="l00032"></a>00032
-<a name="l00034"></a>00034 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#aedc1654de47ce6d6635e5339b236f94d">negate</a>(<span class="keyword">const</span> nothrow_integer&amp; n) {
-<a name="l00035"></a>00035 <span class="keywordflow">try</span> {
-<a name="l00036"></a>00036 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#aedc1654de47ce6d6635e5339b236f94d">negate</a>(xint::integer(n)));
-<a name="l00037"></a>00037 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00038"></a>00038 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00039"></a>00039 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00040"></a>00040 }
-<a name="l00041"></a>00041 }
-<a name="l00042"></a>00042
-<a name="l00044"></a>00044 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a7b7903cb879b60d0d5e3403b3c6a1cdd">add</a>(<span class="keyword">const</span> nothrow_integer&amp; n1, <span class="keyword">const</span> nothrow_integer&amp; n2) {
-<a name="l00045"></a>00045 <span class="keywordflow">try</span> {
-<a name="l00046"></a>00046 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#a7b7903cb879b60d0d5e3403b3c6a1cdd">add</a>(xint::integer(n1), xint::integer(n2)));
-<a name="l00047"></a>00047 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00048"></a>00048 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00049"></a>00049 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00050"></a>00050 }
-<a name="l00051"></a>00051 }
-<a name="l00052"></a>00052
-<a name="l00054"></a>00054 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a385b3869d8dcceab2ffb68ff33c95062">subtract</a>(<span class="keyword">const</span> nothrow_integer&amp; n1, <span class="keyword">const</span> nothrow_integer&amp; n2) {
-<a name="l00055"></a>00055 <span class="keywordflow">try</span> {
-<a name="l00056"></a>00056 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#a385b3869d8dcceab2ffb68ff33c95062">subtract</a>(xint::integer(n1), xint::integer(n2)));
-<a name="l00057"></a>00057 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00058"></a>00058 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00059"></a>00059 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00060"></a>00060 }
-<a name="l00061"></a>00061 }
-<a name="l00062"></a>00062
-<a name="l00064"></a>00064 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(<span class="keyword">const</span> nothrow_integer&amp; n, <span class="keyword">const</span> nothrow_integer&amp; by) {
-<a name="l00065"></a>00065 <span class="keywordflow">try</span> {
-<a name="l00066"></a>00066 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#af844548a421cfc751133081b334dbe4b">multiply</a>(xint::integer(n), xint::integer(by)));
-<a name="l00067"></a>00067 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00068"></a>00068 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00069"></a>00069 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00070"></a>00070 }
-<a name="l00071"></a>00071 }
-<a name="l00072"></a>00072
-<a name="l00074"></a>00074 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a5b884361c54aa64a1974879cb3464c9a">divide</a>(<span class="keyword">const</span> nothrow_integer&amp; dividend, <span class="keyword">const</span> nothrow_integer&amp; divisor) {
-<a name="l00075"></a>00075 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aa7ba6c482e1526b25e6e946daf3a97ba">divide_r</a>(dividend, divisor).first;
-<a name="l00076"></a>00076 }
-<a name="l00077"></a>00077
-<a name="l00083"></a>00083 std::pair&lt;nothrow_integer, nothrow_integer&gt; <a class="code" href="namespaceboost_1_1xint.html#aa7ba6c482e1526b25e6e946daf3a97ba">divide_r</a>(<span class="keyword">const</span> nothrow_integer&amp; d1, <span class="keyword">const</span> nothrow_integer&amp; d2) {
-<a name="l00084"></a>00084 <span class="keywordflow">try</span> {
-<a name="l00085"></a>00085 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aa7ba6c482e1526b25e6e946daf3a97ba">divide_r</a>(xint::integer(d1), xint::integer(d2));
-<a name="l00086"></a>00086 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00087"></a>00087 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00088"></a>00088 <span class="keywordflow">return</span> std::make_pair(<a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>(), <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>());
-<a name="l00089"></a>00089 }
-<a name="l00090"></a>00090 }
-<a name="l00091"></a>00091
-<a name="l00092"></a>00092 } <span class="comment">// namespace xint</span>
-<a name="l00093"></a>00093 } <span class="comment">// namespace boost</span>
-</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__random_8cpp.html
==============================================================================
--- sandbox/xint/doc/blockable__random_8cpp.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,57 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_random.cpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>blockable_random.cpp File Reference</h1>
-<p>Contains the definitions for the random number functions for nothrow_integers.
-More...</p>
-
-<p>Go to the source code of this file.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
-
-<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
-<br/></td></tr>
-</p>
-<tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Random number functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpdd4713a71c208a173c1f2436d4e32ff7"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a1b55b4b192aa6abc491e3ed8c5ef2627">boost::xint::nothrow_random_by_size</a> (size_t bits, bool high_bit_on, bool low_bit_on, bool can_be_negative)</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Contains the definitions for the random number functions for nothrow_integers. </p>
-
-<p>Definition in file <a class="el" href="blockable__random_8cpp_source.html">blockable_random.cpp</a>.</p>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__random_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/blockable__random_8cpp_source.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,64 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_random.cpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-<h1>blockable_random.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
-<a name="l00002"></a>00002 <span class="comment">/*</span>
-<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
-<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
-<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
-<a name="l00006"></a>00006 <span class="comment"></span>
-<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
-<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
-<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
-<a name="l00010"></a>00010 <span class="comment"></span>
-<a name="l00011"></a>00011 <span class="comment"> See
http://www.boost.org/libs/xint for library home page.</span>
-<a name="l00012"></a>00012 <span class="comment">*/</span>
-<a name="l00013"></a>00013
-<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
-<a name="l00020"></a>00020
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>boost {
-<a name="l00022"></a>00022 <span class="keyword">namespace </span>xint {
-<a name="l00023"></a>00023
-<a name="l00025"></a>00025 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a1b55b4b192aa6abc491e3ed8c5ef2627">nothrow_random_by_size</a>(<span class="keywordtype">size_t</span> bits, <span class="keywordtype">bool</span> high_bit_on, <span class="keywordtype">bool</span>
-<a name="l00026"></a>00026 low_bit_on, <span class="keywordtype">bool</span> can_be_negative)
-<a name="l00027"></a>00027 {
-<a name="l00028"></a>00028 <span class="keywordflow">try</span> {
-<a name="l00029"></a>00029 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#ac8d879e19a6608b21184236e00806be5" title="Generates a random integer with specific attributes.">xint::random_by_size</a>(bits, high_bit_on,
-<a name="l00030"></a>00030 low_bit_on, can_be_negative));
-<a name="l00031"></a>00031 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00032"></a>00032 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00033"></a>00033 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00034"></a>00034 }
-<a name="l00035"></a>00035 }
-<a name="l00036"></a>00036
-<a name="l00037"></a>00037 } <span class="comment">// namespace xint</span>
-<a name="l00038"></a>00038 } <span class="comment">// namespace boost</span>
-</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__roots_8cpp.html
==============================================================================
--- sandbox/xint/doc/blockable__roots_8cpp.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,57 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_roots.cpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>blockable_roots.cpp File Reference</h1>
-<p>Contains the definitions for nothrow_integer functions related to roots of a number.
-More...</p>
-
-<p>Go to the source code of this file.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
-
-<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
-<br/></td></tr>
-</p>
-<tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Powers and roots</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp928a8cb047602f789d7433e262ed4560"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">nothrow_integer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0825d8d9d4644df8d9b6922f5b0d7064">boost::xint::sqrt</a> (const nothrow_integer &amp;n)</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Contains the definitions for nothrow_integer functions related to roots of a number. </p>
-
-<p>Definition in file <a class="el" href="blockable__roots_8cpp_source.html">blockable_roots.cpp</a>.</p>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/blockable__roots_8cpp_source.html
==============================================================================
--- sandbox/xint/doc/blockable__roots_8cpp_source.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,61 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: blockable_roots.cpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li>Classes</li>
- <li class="current">Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>File List</li>
- <li>File Members</li>
- </ul>
- </div>
-<h1>blockable_roots.cpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
-<a name="l00002"></a>00002 <span class="comment">/*</span>
-<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
-<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
-<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
-<a name="l00006"></a>00006 <span class="comment"></span>
-<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
-<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
-<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
-<a name="l00010"></a>00010 <span class="comment"></span>
-<a name="l00011"></a>00011 <span class="comment"> See
http://www.boost.org/libs/xint for library home page.</span>
-<a name="l00012"></a>00012 <span class="comment">*/</span>
-<a name="l00013"></a>00013
-<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../boost/xint/xint.hpp&quot;</span>
-<a name="l00020"></a>00020
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>boost {
-<a name="l00022"></a>00022 <span class="keyword">namespace </span>xint {
-<a name="l00023"></a>00023
-<a name="l00025"></a>00025 nothrow_integer <a class="code" href="namespaceboost_1_1xint.html#a0825d8d9d4644df8d9b6922f5b0d7064">sqrt</a>(<span class="keyword">const</span> nothrow_integer&amp; n) {
-<a name="l00026"></a>00026 <span class="keywordflow">try</span> {
-<a name="l00027"></a>00027 <span class="keywordflow">return</span> nothrow_integer(<a class="code" href="namespaceboost_1_1xint.html#a0825d8d9d4644df8d9b6922f5b0d7064">sqrt</a>(xint::integer(n)));
-<a name="l00028"></a>00028 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00029"></a>00029 <span class="keywordflow">if</span> (<a class="code" href="namespaceboost_1_1xint.html#a389e96a85ba1c76ef5bfcf836b7e4e8a" title="Query whether exceptions are currently allowed or blocked.">exceptions_allowed</a>()) <span class="keywordflow">throw</span>;
-<a name="l00030"></a>00030 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1nothrow__integer.html#a9a8d654139e4fb916f933d09c7238e10">nothrow_integer::nan</a>();
-<a name="l00031"></a>00031 }
-<a name="l00032"></a>00032 }
-<a name="l00033"></a>00033
-<a name="l00034"></a>00034 } <span class="comment">// namespace xint</span>
-<a name="l00035"></a>00035 } <span class="comment">// namespace boost</span>
-</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 01:53:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Added: sandbox/xint/doc/classboost_1_1xint_1_1base__divide__t-members.html
==============================================================================
--- (empty file)
+++ sandbox/xint/doc/classboost_1_1xint_1_1base__divide__t-members.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>The Extended Integer (XInt) Library: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>boost::xint::base_divide_t&lt; T &gt; Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t&lt; T &gt;</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">base_divide_t</a>()</td><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">base_divide_t</a>(const T &amp;q, const T &amp;r)</td><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#aa9f43e464f328b0cc618f67e6e4d1d6f">base_divide_t</a>(const base_divide_t&lt; T &gt; &amp;copy)</td><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#aaa2df86aa70e8ac849cd6289a1f459b1">base_divide_t</a>(BOOST_XINT_RV_REF(base_divide_t) move)</td><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">operator=</a>(BOOST_XINT_COPY_ASSIGN_REF(base_divide_t) copy)</td><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">operator=</a>(BOOST_XINT_RV_REF(base_divide_t) move)</td><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <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&lt; T &gt;</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&lt; T &gt;</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Apr 30 00:24:26 2010 for The Extended Integer (XInt) Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
+</body>
+</html>

Added: sandbox/xint/doc/classboost_1_1xint_1_1base__divide__t.html
==============================================================================
--- (empty file)
+++ sandbox/xint/doc/classboost_1_1xint_1_1base__divide__t.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -0,0 +1,241 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>The Extended Integer (XInt) Library: boost::xint::base_divide_t&lt; T &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a>
+ </div>
+</div>
+<div class="contents">
+<h1>boost::xint::base_divide_t&lt; T &gt; Class Template Reference</h1><!-- doxytag: class="boost::xint::base_divide_t" -->
+<p>Holds the results from a division-with-remainder call.
+More...</p>
+
+<p>List of all members.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#aaa2df86aa70e8ac849cd6289a1f459b1">base_divide_t</a> (BOOST_XINT_RV_REF(<a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a>) move)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#aa9f43e464f328b0cc618f67e6e4d1d6f">base_divide_t</a> (const <a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a>&lt; T &gt; &amp;copy)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">base_divide_t</a> (const T &amp;q, const T &amp;r)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">base_divide_t</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">operator=</a> (BOOST_XINT_RV_REF(<a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a>) move)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">operator=</a> (BOOST_XINT_COPY_ASSIGN_REF(<a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a>) copy)</td></tr>
+<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">T&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">T&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;class T&gt;<br/>
+ class boost::xint::base_divide_t&lt; T &gt;</h3>
+
+<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#l00356">356</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<hr/><h2>Constructor &amp; 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">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t</a>&lt; T &gt;::<a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a> </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00358">358</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1b7962768058ad19d8d3e848b1fc019e"></a><!-- doxytag: member="boost::xint::base_divide_t::base_divide_t" ref="a1b7962768058ad19d8d3e848b1fc019e" args="(const T &amp;q, const T &amp;r)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t</a>&lt; T &gt;::<a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a> </td>
+ <td>(</td>
+ <td class="paramtype">const T &amp;&nbsp;</td>
+ <td class="paramname"> <em>q</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const T &amp;&nbsp;</td>
+ <td class="paramname"> <em>r</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00359">359</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa9f43e464f328b0cc618f67e6e4d1d6f"></a><!-- doxytag: member="boost::xint::base_divide_t::base_divide_t" ref="aa9f43e464f328b0cc618f67e6e4d1d6f" args="(const base_divide_t&lt; T &gt; &amp;copy)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t</a>&lt; T &gt;::<a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a> </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a>&lt; T &gt; &amp;&nbsp;</td>
+ <td class="paramname"> <em>copy</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00360">360</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaa2df86aa70e8ac849cd6289a1f459b1"></a><!-- doxytag: member="boost::xint::base_divide_t::base_divide_t" ref="aaa2df86aa70e8ac849cd6289a1f459b1" args="(BOOST_XINT_RV_REF(base_divide_t) move)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t</a>&lt; T &gt;::<a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a> </td>
+ <td>(</td>
+ <td class="paramtype">BOOST_XINT_RV_REF(<a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a>&lt; T &gt;)&nbsp;</td>
+ <td class="paramname"> <em>move</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00362">362</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a5f66ee628dc58d181b8c2886354909fb"></a><!-- doxytag: member="boost::xint::base_divide_t::operator=" ref="a5f66ee628dc58d181b8c2886354909fb" args="(BOOST_XINT_RV_REF(base_divide_t) move)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a>&amp; <a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t</a>&lt; T &gt;::operator= </td>
+ <td>(</td>
+ <td class="paramtype">BOOST_XINT_RV_REF(<a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a>&lt; T &gt;)&nbsp;</td>
+ <td class="paramname"> <em>move</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00368">368</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac74a636871dd2988a4f654fc745426c7"></a><!-- doxytag: member="boost::xint::base_divide_t::operator=" ref="ac74a636871dd2988a4f654fc745426c7" args="(BOOST_XINT_COPY_ASSIGN_REF(base_divide_t) copy)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a>&amp; <a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t</a>&lt; T &gt;::operator= </td>
+ <td>(</td>
+ <td class="paramtype">BOOST_XINT_COPY_ASSIGN_REF(<a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a>&lt; T &gt;)&nbsp;</td>
+ <td class="paramname"> <em>copy</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00365">365</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a7b3f254223974ed79663f9a0e4d1649c"></a><!-- doxytag: member="boost::xint::base_divide_t::quotient" ref="a7b3f254223974ed79663f9a0e4d1649c" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">T <a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t</a>&lt; T &gt;::<a class="el" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00372">372</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa79bd57f1bc85ceb86913fd0f81c9e2d"></a><!-- doxytag: member="boost::xint::base_divide_t::remainder" ref="aa79bd57f1bc85ceb86913fd0f81c9e2d" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">T <a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t</a>&lt; T &gt;::<a class="el" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00372">372</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<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 Fri Apr 30 00:24:26 2010 for The Extended Integer (XInt) Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
+</body>
+</html>

Deleted: sandbox/xint/doc/classboost_1_1xint_1_1blockable_1_1integer-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1blockable_1_1integer-members.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,93 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li class="current">Classes</li>
- <li>Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>Class List</li>
- <li>Class Hierarchy</li>
- <li>Class Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>boost::xint::blockable::integer Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a3e0e821a38c37d4b94b61a62a9448b42">_add</a>(const base_integer &amp;n)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#acb7343f98a534a07da2dc86d6e8bee0a">_attach</a>(detail::data_t *new_data, bool neg=false)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee6c6d706a8dc8cdd1a16b1e65a47e2">_attach</a>(const base_integer &amp;copy)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4f2678c34cdf09e8df0c38ea91347fd7">_attach_0</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab94f96758a658c1523291c6d10ca7dc0">_attach_1</a>(digit_t n)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a00be0a0a2d19316259c54a8ced4e8451">_attach_n</a>(boost::uintmax_t n)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#abdfe224ab8dae4dbd4cfdd16e6c0612f">_base_make_unique</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ad75a8d9bef5eb2d57cbac37cafd925eb">_duplicate</a>(const base_integer &amp;copy, size_t extra)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a359e782a4a4c3e386957bc9cc03f8bea">_get_digit</a>(size_t index) const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0c199a74bd0fee53de75f6ea80b4056c">_get_digit</a>(size_t index, bool) const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#afd35edbad147f88c369bc4d0bda0b9ca">_get_digits</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a38654bb63b923be7f992e7812812b608">_get_digits</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a7462afdf5589caa01bb1ed732f633469">_get_length</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2a6ba9a67a9167e9535d735dacbaace7">_get_negative</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#afdaa612dd6669a12d349d6268f1ea3ff">_is_nan</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [inline, protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aee70939aaa336233f62341cf7d595010">_is_unique</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a576bd802f9b2cb8450250839bc52b98c">_is_zero</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a93aebe2dfcc921ae4959811399b1643e">_make_unique</a>()</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a36175e45a3f8660f59a9de593328fefd">_realloc</a>(size_t new_digit_count)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91cb2f84f30425e9158c2ac9bfcd9cb6">_set_negative</a>(bool neg)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aea0cff03f7886f2c44747538e27ad7f1">_shift_left</a>(size_t byBits)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a8236c349f72d154823d592123d94f218">_shift_right</a>(size_t byBits)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4f7e982aa22a1910dd5daf0e260c43c5">_subtract</a>(const base_integer &amp;n)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0e91eb0fd9e83d3cfc284d5b7e20207e">base_integer</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [inline, protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#aa4a34e862279bdcabcb10aa3f7015751">even</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#ab59ab2bab8ee2620f82328e43d8f8493">hex_digits</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a9f1ddc3bb2f495ebad9dc666c51ed046">integer</a>()</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#acade75e4974489026f1eeb6945c9779a">integer</a>(const integer &amp;b)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a0ff286ad0a69d6f885cf51905331b065">integer</a>(const core::integer &amp;b)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a2c02cafe2e7f1262a8b45356b32a21ab">integer</a>(const std::string &amp;str, size_t base=10)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td><code> [explicit]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a466b727de74ca896778f7bde6ae3fbf1">integer</a>(const T &amp;n, typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *=0, typename boost::enable_if&lt; boost::is_signed&lt; T &gt; &gt;::type *=0)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a97fd03d9176e7f308518248e738987c7">integer</a>(const T &amp;n, typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *=0, typename boost::enable_if&lt; boost::is_unsigned&lt; T &gt; &gt;::type *=0)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#aa03f255fa20c9340c110a56a9b4e5123">is_nan</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#ae52c1f42c887d0fffa40e38c97caedf1">nan</a>()</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#aeeb0effdaf500fabdabde386c6d71ecf">odd</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#ad1c34452538608bee270c1971f8a0bd5">one</a>()</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a3c95f3fe54f21728cce0363283e63582">operator%=</a>(const integer &amp;b)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#acc4f122a18cb417de1e04dbc011cd2ab">operator&amp;=</a>(const integer &amp;n)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#aedc9d1a4591b66b96f2074a944990d8d">operator*=</a>(const integer &amp;b)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#aaf8089c12fbf456ba44414031975904e">operator++</a>()</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a50d2872735d7b1dfcba66d4940cdc658">operator++</a>(int)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#af6ee01d09f0dcb51fa6c45437e18de7e">operator+=</a>(const integer &amp;b)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#aac66433b51dba8fa64e555fbe753195c">operator--</a>()</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a0e35cc2d6c37f4e14c4d21d998179121">operator--</a>(int)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a9e89bbb863f344227e72585634f4c695">operator-=</a>(const integer &amp;b)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#ac25f98f5fbf12160ea9bfd6acb867f16">operator/=</a>(const integer &amp;b)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#ae21b3b4e8189fd051efa649f00a3dce3">operator&lt;&lt;</a>(size_t shift) const </td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#afd3d92f33f89c51575062f4d87238380">operator&lt;&lt;=</a>(size_t shift)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a90efe3e62f20a587d2304d7df6e91c63">operator=</a>(const integer &amp;c)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a479d19cff13ff3d592f9e543f14c1254">operator&gt;&gt;</a>(size_t shift) const </td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a31216f4689f95bf82677faa3b43ad458">operator&gt;&gt;=</a>(size_t shift)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a2e63df76366b1ad1bd0246eebe24e3ef">operator^=</a>(const integer &amp;n)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#af8a5624f5fe99930cf27b13628190717">operator|=</a>(const integer &amp;n)</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#aa5be24d1eeb5b0b58f966e174cda1928">sign</a>(bool signed_zero=false) const </td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a6f7309f1c9710a8167796c6954e690fd">zero</a>()</td><td><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">boost::xint::blockable::integer</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a33dd417aa6d0a7892efe3d497b8f3f80">~base_integer</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
-</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Wed Apr 14 22:09:19 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/classboost_1_1xint_1_1blockable_1_1integer.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1blockable_1_1integer.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,885 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: boost::xint::blockable::integer Class Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li class="current">Classes</li>
- <li>Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>Class List</li>
- <li>Class Hierarchy</li>
- <li>Class Members</li>
- </ul>
- </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1blockable.html">blockable</a>::<a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a>
- </div>
-</div>
-<div class="contents">
-<h1>boost::xint::blockable::integer Class Reference</h1><!-- doxytag: class="boost::xint::blockable::integer" --><!-- doxytag: inherits="boost::xint::detail::base_integer" -->
-<p>The blockable integer class.
-More...</p>
-<div class="dynheader">
-Inheritance diagram for boost::xint::blockable::integer:</div>
-<div class="dynsection">
- <div class="center">
- <img src="classboost_1_1xint_1_1blockable_1_1integer.png" usemap="#boost::xint::blockable::integer_map" alt=""/>
- <map id="boost::xint::blockable::integer_map" name="boost::xint::blockable::integer_map">
-<area href="classboost_1_1xint_1_1detail_1_1base__integer.html" alt="boost::xint::detail::base_integer" shape="rect" coords="0,0,182,24"/>
-</map>
- </div>
-</div>
-
-<p>List of all members.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Constructors &amp; Destructors</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpab1e74c734dea693114ec1f1cb9434ad"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a9f1ddc3bb2f495ebad9dc666c51ed046">integer</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#acade75e4974489026f1eeb6945c9779a">integer</a> (const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a0ff286ad0a69d6f885cf51905331b065">integer</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">core::integer</a> &amp;b)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an integer from a <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html" title="The core integer class.">core::integer</a>. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a2c02cafe2e7f1262a8b45356b32a21ab">integer</a> (const std::string &amp;str, size_t base=10)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a466b727de74ca896778f7bde6ae3fbf1">integer</a> (const T &amp;n, typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *=0, typename boost::enable_if&lt; boost::is_signed&lt; T &gt; &gt;::type *=0)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a97fd03d9176e7f308518248e738987c7">integer</a> (const T &amp;n, typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *=0, typename boost::enable_if&lt; boost::is_unsigned&lt; T &gt; &gt;::type *=0)</td></tr>
-<tr><td colspan="2"><div class="groupHeader">Mathematical and Bitwise Operators</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp8eb1e0f0af70edd858d54ba68b80ce7e"></a>These operate exactly like their counterparts for the built-in integer types.</p>
-<p>Note that there is no <code>operator~</code>. Since the integer type doesn't have a fixed maximum size, there is no logical way to implement it. </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a90efe3e62f20a587d2304d7df6e91c63">operator=</a> (const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;c)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#af6ee01d09f0dcb51fa6c45437e18de7e">operator+=</a> (const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a9e89bbb863f344227e72585634f4c695">operator-=</a> (const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#aedc9d1a4591b66b96f2074a944990d8d">operator*=</a> (const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#ac25f98f5fbf12160ea9bfd6acb867f16">operator/=</a> (const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a3c95f3fe54f21728cce0363283e63582">operator%=</a> (const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#aaf8089c12fbf456ba44414031975904e">operator++</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#aac66433b51dba8fa64e555fbe753195c">operator--</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a50d2872735d7b1dfcba66d4940cdc658">operator++</a> (int)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a0e35cc2d6c37f4e14c4d21d998179121">operator--</a> (int)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#acc4f122a18cb417de1e04dbc011cd2ab">operator&amp;=</a> (const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;n)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#af8a5624f5fe99930cf27b13628190717">operator|=</a> (const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;n)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a2e63df76366b1ad1bd0246eebe24e3ef">operator^=</a> (const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;n)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#ae21b3b4e8189fd051efa649f00a3dce3">operator&lt;&lt;</a> (size_t shift) const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a479d19cff13ff3d592f9e543f14c1254">operator&gt;&gt;</a> (size_t shift) const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#afd3d92f33f89c51575062f4d87238380">operator&lt;&lt;=</a> (size_t shift)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a31216f4689f95bf82677faa3b43ad458">operator&gt;&gt;=</a> (size_t shift)</td></tr>
-<tr><td colspan="2"><div class="groupHeader">Miscellaneous Functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpf5be5219a55995e13d6b8d7bf99ed653"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#aeeb0effdaf500fabdabde386c6d71ecf">odd</a> () const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#aa4a34e862279bdcabcb10aa3f7015751">even</a> () const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#aa5be24d1eeb5b0b58f966e174cda1928">sign</a> (bool signed_zero=false) const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#aa03f255fa20c9340c110a56a9b4e5123">is_nan</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests <code>*this</code> for Not-a-Number. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#ab59ab2bab8ee2620f82328e43d8f8493">hex_digits</a> () const </td></tr>
-<tr><td colspan="2"><div class="groupHeader">Internal Functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpae260ff3a3a80dad696f01482c30bb91"></a>These functions allow access to the internals of the integer. They are intended for internal use only. </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a93aebe2dfcc921ae4959811399b1643e">_make_unique</a> ()</td></tr>
-<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Preconstructed integers</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpbc92fcddffc2f3092779f92fe2501e4a"></a> These return preconstructed integers with the values named by the functions. They are used internally, so that the most common values don't have to be constructed each time they're needed. </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#a6f7309f1c9710a8167796c6954e690fd">zero</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#ad1c34452538608bee270c1971f8a0bd5">one</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html#ae52c1f42c887d0fffa40e38c97caedf1">nan</a> ()</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>The blockable integer class. </p>
-<p>Functions using this class can be exception-blocked. See <a class="el" href="exceptions.html">this page</a> for details.</p>
-<p>There are only a few member functions; most of the functionality is implemented using standalone functions.</p>
-<p>Functions that start with an underscore (such as <code>_make_unique</code>) are intended for internal use only. They may change arbitrarily in future versions. </p>
-
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00400">400</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
-<hr/><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a9f1ddc3bb2f495ebad9dc666c51ed046"></a><!-- doxytag: member="boost::xint::blockable::integer::integer" ref="a9f1ddc3bb2f495ebad9dc666c51ed046" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::blockable::integer::integer </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Creates a new integer with an initial value of zero. </p>
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00037">37</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="acade75e4974489026f1eeb6945c9779a"></a><!-- doxytag: member="boost::xint::blockable::integer::integer" ref="acade75e4974489026f1eeb6945c9779a" args="(const integer &amp;b)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::blockable::integer::integer </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>b</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Creates a copy of an existing integer. <dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>b</em>&nbsp;</td><td>An existing integer. If passed a Not-a-Number, it will create another Not-a-Number.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="note"><dt><b>Note:</b></dt><dd>This library can use a <a class="el" href="cow.html">copy-on-write technique</a>, making copying (even of large numbers) a very inexpensive operation.</dd></dl>
-<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00042">42</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0ff286ad0a69d6f885cf51905331b065"></a><!-- doxytag: member="boost::xint::blockable::integer::integer" ref="a0ff286ad0a69d6f885cf51905331b065" args="(const core::integer &amp;b)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::blockable::integer::integer </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">core::integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>b</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Creates an integer from a <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html" title="The core integer class.">core::integer</a>. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>b</em>&nbsp;</td><td>An existing <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html" title="The core integer class.">core::integer</a>.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="note"><dt><b>Note:</b></dt><dd>This library can use a <a class="el" href="cow.html">copy-on-write technique</a>, making copying (even of large numbers) a very inexpensive operation.</dd></dl>
-<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00060">60</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2c02cafe2e7f1262a8b45356b32a21ab"></a><!-- doxytag: member="boost::xint::blockable::integer::integer" ref="a2c02cafe2e7f1262a8b45356b32a21ab" args="(const std::string &amp;str, size_t base=10)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::blockable::integer::integer </td>
- <td>(</td>
- <td class="paramtype">const std::string &amp;&nbsp;</td>
- <td class="paramname"> <em>str</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>base</em> = <code>10</code></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td><code> [explicit]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Create an integer from a string representation. <dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>str</em>&nbsp;</td><td>A string representation of a number. </td></tr>
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>base</em>&nbsp;</td><td>The base of the number, or <a class="el" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">xint::autobase</a>.</td></tr>
- </table>
- </dd>
-</dl>
-<dl><dt><b>Exceptions:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classboost_1_1xint_1_1exception_1_1invalid__base.html">exception::invalid_base</a></em>&nbsp;</td><td>if the base parameter is not between 2 and 36 (inclusive) or the constant <a class="el" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">xint::autobase</a>. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classboost_1_1xint_1_1exception_1_1invalid__digit.html">exception::invalid_digit</a></em>&nbsp;</td><td>if the string contains any digit that cannot be part of a number in the specified base, or if there are no valid digits.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="remark"><dt><b>Remarks:</b></dt><dd>This will convert a string representation of a number into an integer. See the description of the <a class="el" href="namespaceboost_1_1xint_1_1core.html#adaa2e5c8f2ff92faee861a68bc7e4cca">from_string</a> function for details on its behavior.</dd></dl>
-<dl class="user"><dt><b></b></dt><dd>This is the most common way to initialize values that are too large to fit into a native integral type.</dd></dl>
-<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00069">69</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a466b727de74ca896778f7bde6ae3fbf1"></a><!-- doxytag: member="boost::xint::blockable::integer::integer" ref="a466b727de74ca896778f7bde6ae3fbf1" args="(const T &amp;n, typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *=0, typename boost::enable_if&lt; boost::is_signed&lt; T &gt; &gt;::type *=0)" -->
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;typename T &gt; </div>
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::blockable::integer::integer </td>
- <td>(</td>
- <td class="paramtype">const T &amp;&nbsp;</td>
- <td class="paramname"> <em>n</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *&nbsp;</td>
- <td class="paramname"> = <code>0</code>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename boost::enable_if&lt; boost::is_signed&lt; T &gt; &gt;::type *&nbsp;</td>
- <td class="paramname"> = <code>0</code></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td><code> [inline]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Constructs a new integer object with the value of the built-in signed integer passed to it.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>n</em>&nbsp;</td><td>A number of type <code>T</code>. </td></tr>
- </table>
- </dd>
-</dl>
-<dl><dt><b>Template Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>T</em>&nbsp;</td><td>The type of <code>n</code>.</td></tr>
- </table>
- </dd>
-</dl>
-<p>You can ignore the <code>enable_if</code> parameters, they are there only to tell the compiler what types it applies to.</p>
-<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00973">973</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a97fd03d9176e7f308518248e738987c7"></a><!-- doxytag: member="boost::xint::blockable::integer::integer" ref="a97fd03d9176e7f308518248e738987c7" args="(const T &amp;n, typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *=0, typename boost::enable_if&lt; boost::is_unsigned&lt; T &gt; &gt;::type *=0)" -->
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;typename T &gt; </div>
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::blockable::integer::integer </td>
- <td>(</td>
- <td class="paramtype">const T &amp;&nbsp;</td>
- <td class="paramname"> <em>n</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *&nbsp;</td>
- <td class="paramname"> = <code>0</code>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename boost::enable_if&lt; boost::is_unsigned&lt; T &gt; &gt;::type *&nbsp;</td>
- <td class="paramname"> = <code>0</code></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td><code> [inline]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Constructs a new integer object with the value of the built-in unsigned integer passed to it.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>n</em>&nbsp;</td><td>A number of type <code>T</code>. </td></tr>
- </table>
- </dd>
-</dl>
-<dl><dt><b>Template Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>T</em>&nbsp;</td><td>The type of <code>n</code>.</td></tr>
- </table>
- </dd>
-</dl>
-<p>You can ignore the <code>enable_if</code> parameters, they are there only to tell the compiler what types it applies to.</p>
-<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00997">997</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
-
-</div>
-</div>
-<hr/><h2>Member Function Documentation</h2>
-<a class="anchor" id="a93aebe2dfcc921ae4959811399b1643e"></a><!-- doxytag: member="boost::xint::blockable::integer::_make_unique" ref="a93aebe2dfcc921ae4959811399b1643e" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void boost::xint::blockable::integer::_make_unique </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00221">221</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa4a34e862279bdcabcb10aa3f7015751"></a><!-- doxytag: member="boost::xint::blockable::integer::even" ref="aa4a34e862279bdcabcb10aa3f7015751" args="() const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">bool boost::xint::blockable::integer::even </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Tests the lowest bit of <code>*this</code> to determine evenness. <dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if <code>*this</code> is even, otherwise <code>false</code>. </dd></dl>
-</p>
-<dl class="note"><dt><b>Note:</b></dt><dd>If exceptions are blocked, returns false instead of throwing. </dd></dl>
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00093">93</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab59ab2bab8ee2620f82328e43d8f8493"></a><!-- doxytag: member="boost::xint::blockable::integer::hex_digits" ref="ab59ab2bab8ee2620f82328e43d8f8493" args="() const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">size_t boost::xint::blockable::integer::hex_digits </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Tells you roughly how large an integer is. <dl class="return"><dt><b>Returns:</b></dt><dd>The number of hexadecimal digits that would be required to encode <code>this</code>. </dd></dl>
-</p>
-<dl class="note"><dt><b>Note:</b></dt><dd>If exceptions are blocked, returns zero instead of throwing. </dd></dl>
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00118">118</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa03f255fa20c9340c110a56a9b4e5123"></a><!-- doxytag: member="boost::xint::blockable::integer::is_nan" ref="aa03f255fa20c9340c110a56a9b4e5123" args="() const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">bool boost::xint::blockable::integer::is_nan </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Tests <code>*this</code> for Not-a-Number. </p>
-<dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if <code>*this</code> is Not-a-Number, otherwise <code>false</code>.</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="nan.html">The Not-a-Number Value</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00133">133</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae52c1f42c887d0fffa40e38c97caedf1"></a><!-- doxytag: member="boost::xint::blockable::integer::nan" ref="ae52c1f42c887d0fffa40e38c97caedf1" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::nan </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00212">212</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aeeb0effdaf500fabdabde386c6d71ecf"></a><!-- doxytag: member="boost::xint::blockable::integer::odd" ref="aeeb0effdaf500fabdabde386c6d71ecf" args="() const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">bool boost::xint::blockable::integer::odd </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Tests the lowest bit of <code>*this</code> to determine oddness. <dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if <code>*this</code> is odd, otherwise <code>false</code>. </dd></dl>
-</p>
-<dl class="note"><dt><b>Note:</b></dt><dd>If exceptions are blocked, returns false instead of throwing. </dd></dl>
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00081">81</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad1c34452538608bee270c1971f8a0bd5"></a><!-- doxytag: member="boost::xint::blockable::integer::one" ref="ad1c34452538608bee270c1971f8a0bd5" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::one </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00207">207</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3c95f3fe54f21728cce0363283e63582"></a><!-- doxytag: member="boost::xint::blockable::integer::operator%=" ref="a3c95f3fe54f21728cce0363283e63582" args="(const integer &amp;b)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::operator%= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>b</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00169">169</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="acc4f122a18cb417de1e04dbc011cd2ab"></a><!-- doxytag: member="boost::xint::blockable::integer::operator&amp;=" ref="acc4f122a18cb417de1e04dbc011cd2ab" args="(const integer &amp;n)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::operator&amp;= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>n</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00178">178</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aedc9d1a4591b66b96f2074a944990d8d"></a><!-- doxytag: member="boost::xint::blockable::integer::operator*=" ref="aedc9d1a4591b66b96f2074a944990d8d" args="(const integer &amp;b)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::operator*= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>b</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00167">167</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a50d2872735d7b1dfcba66d4940cdc658"></a><!-- doxytag: member="boost::xint::blockable::integer::operator++" ref="a50d2872735d7b1dfcba66d4940cdc658" args="(int)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> boost::xint::blockable::integer::operator++ </td>
- <td>(</td>
- <td class="paramtype">int&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Postincrement operator -- not recommended, inefficient </p>
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00173">173</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aaf8089c12fbf456ba44414031975904e"></a><!-- doxytag: member="boost::xint::blockable::integer::operator++" ref="aaf8089c12fbf456ba44414031975904e" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::operator++ </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Preincrement operator </p>
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00171">171</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af6ee01d09f0dcb51fa6c45437e18de7e"></a><!-- doxytag: member="boost::xint::blockable::integer::operator+=" ref="af6ee01d09f0dcb51fa6c45437e18de7e" args="(const integer &amp;b)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::operator+= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>b</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00137">137</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0e35cc2d6c37f4e14c4d21d998179121"></a><!-- doxytag: member="boost::xint::blockable::integer::operator&#45;&#45;" ref="a0e35cc2d6c37f4e14c4d21d998179121" args="(int)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> boost::xint::blockable::integer::operator-- </td>
- <td>(</td>
- <td class="paramtype">int&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Postdecrement operator -- not recommended, inefficient </p>
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00174">174</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aac66433b51dba8fa64e555fbe753195c"></a><!-- doxytag: member="boost::xint::blockable::integer::operator&#45;&#45;" ref="aac66433b51dba8fa64e555fbe753195c" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::operator-- </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Predecrement operator </p>
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00172">172</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9e89bbb863f344227e72585634f4c695"></a><!-- doxytag: member="boost::xint::blockable::integer::operator&#45;=" ref="a9e89bbb863f344227e72585634f4c695" args="(const integer &amp;b)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::operator-= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>b</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00147">147</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ac25f98f5fbf12160ea9bfd6acb867f16"></a><!-- doxytag: member="boost::xint::blockable::integer::operator/=" ref="ac25f98f5fbf12160ea9bfd6acb867f16" args="(const integer &amp;b)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::operator/= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>b</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00168">168</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae21b3b4e8189fd051efa649f00a3dce3"></a><!-- doxytag: member="boost::xint::blockable::integer::operator&lt;&lt;" ref="ae21b3b4e8189fd051efa649f00a3dce3" args="(size_t shift) const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> boost::xint::blockable::integer::operator&lt;&lt; </td>
- <td>(</td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>shift</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00176">176</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afd3d92f33f89c51575062f4d87238380"></a><!-- doxytag: member="boost::xint::blockable::integer::operator&lt;&lt;=" ref="afd3d92f33f89c51575062f4d87238380" args="(size_t shift)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::operator&lt;&lt;= </td>
- <td>(</td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>shift</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00182">182</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a90efe3e62f20a587d2304d7df6e91c63"></a><!-- doxytag: member="boost::xint::blockable::integer::operator=" ref="a90efe3e62f20a587d2304d7df6e91c63" args="(const integer &amp;c)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::operator= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>c</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00157">157</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a479d19cff13ff3d592f9e543f14c1254"></a><!-- doxytag: member="boost::xint::blockable::integer::operator&gt;&gt;" ref="a479d19cff13ff3d592f9e543f14c1254" args="(size_t shift) const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> boost::xint::blockable::integer::operator&gt;&gt; </td>
- <td>(</td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>shift</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00177">177</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a31216f4689f95bf82677faa3b43ad458"></a><!-- doxytag: member="boost::xint::blockable::integer::operator&gt;&gt;=" ref="a31216f4689f95bf82677faa3b43ad458" args="(size_t shift)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::operator&gt;&gt;= </td>
- <td>(</td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>shift</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00192">192</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2e63df76366b1ad1bd0246eebe24e3ef"></a><!-- doxytag: member="boost::xint::blockable::integer::operator^=" ref="a2e63df76366b1ad1bd0246eebe24e3ef" args="(const integer &amp;n)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::operator^= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>n</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00180">180</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af8a5624f5fe99930cf27b13628190717"></a><!-- doxytag: member="boost::xint::blockable::integer::operator|=" ref="af8a5624f5fe99930cf27b13628190717" args="(const integer &amp;n)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::operator|= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>n</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00179">179</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa5be24d1eeb5b0b58f966e174cda1928"></a><!-- doxytag: member="boost::xint::blockable::integer::sign" ref="aa5be24d1eeb5b0b58f966e174cda1928" args="(bool signed_zero=false) const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int boost::xint::blockable::integer::sign </td>
- <td>(</td>
- <td class="paramtype">bool&nbsp;</td>
- <td class="paramname"> <em>signed_zero</em> = <code>false</code></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Tests the sign of <code>*this</code>. <dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>signed_zero</em>&nbsp;</td><td>If <code>false</code> (the default value), returns zero if <code>*this</code> is zero. If <code>true</code>, returns 1 or -1 on a zero <code>*this</code> as well. Primarily used to identify a <a class="el" href="zero.html">negative zero</a>.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>-1 if <code>*this</code> is negative, 0 if it's zero, or 1 if it's greater than zero. </dd></dl>
-</p>
-<dl class="note"><dt><b>Note:</b></dt><dd>If exceptions are blocked, returns zero instead of throwing. </dd></dl>
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00105">105</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6f7309f1c9710a8167796c6954e690fd"></a><!-- doxytag: member="boost::xint::blockable::integer::zero" ref="a6f7309f1c9710a8167796c6954e690fd" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">integer</a> &amp; boost::xint::blockable::integer::zero </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="blockable__integer_8cpp_source.html#l00202">202</a> of file <a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following files:<ul>
-<li><a class="el" href="xint_8hpp_source.html">xint.hpp</a></li>
-<li><a class="el" href="blockable__integer_8cpp_source.html">blockable_integer.cpp</a></li>
-</ul>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Wed Apr 14 22:09:19 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/classboost_1_1xint_1_1blockable_1_1integer.png
==============================================================================
Binary file. No diff available.

Deleted: sandbox/xint/doc/classboost_1_1xint_1_1cannot__represent-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1cannot__represent-members.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,37 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li class="current">Classes</li>
- <li>Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>Class List</li>
- <li>Class Hierarchy</li>
- <li>Class Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>boost::xint::cannot_represent Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1cannot__represent.html">boost::xint::cannot_represent</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1cannot__represent.html#a940b731d15c77c43abef5d6053fd5d75">cannot_represent</a>(const std::string &amp;what=&quot;cannot represent the requested value&quot;)</td><td><a class="el" href="classboost_1_1xint_1_1cannot__represent.html">boost::xint::cannot_represent</a></td><td><code> [inline]</code></td></tr>
-</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Apr 11 10:17:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/classboost_1_1xint_1_1cannot__represent.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1cannot__represent.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,75 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: boost::xint::cannot_represent Class Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li class="current">Classes</li>
- <li>Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>Class List</li>
- <li>Class Hierarchy</li>
- <li>Class Members</li>
- </ul>
- </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="classboost_1_1xint_1_1cannot__represent.html">cannot_represent</a>
- </div>
-</div>
-<div class="contents">
-<h1>boost::xint::cannot_represent Class Reference</h1><!-- doxytag: class="boost::xint::cannot_represent" -->
-<p>Exception class.
-More...</p>
-
-<p>List of all members.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1cannot__represent.html#a940b731d15c77c43abef5d6053fd5d75">cannot_represent</a> (const std::string &amp;what=&quot;cannot represent the requested value&quot;)</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Exception class. </p>
-<p>Derived from <code>std::invalid_argument</code>. </p>
-
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00695">695</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
-<hr/><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a940b731d15c77c43abef5d6053fd5d75"></a><!-- doxytag: member="boost::xint::cannot_represent::cannot_represent" ref="a940b731d15c77c43abef5d6053fd5d75" args="(const std::string &amp;what=&quot;cannot represent the requested value&quot;)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::cannot_represent::cannot_represent </td>
- <td>(</td>
- <td class="paramtype">const std::string &amp;&nbsp;</td>
- <td class="paramname"> <em>what</em> = <code>&quot;cannot&nbsp;represent&nbsp;the&nbsp;requested&nbsp;value&quot;</code></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [inline]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00697">697</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="xint_8hpp_source.html">xint.hpp</a></li>
-</ul>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Apr 11 10:17:01 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/classboost_1_1xint_1_1core_1_1base__integer-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1core_1_1base__integer-members.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li class="current">Classes</li>
- <li>Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>Class List</li>
- <li>Class Hierarchy</li>
- <li>Class Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>boost::xint::core::base_integer Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#aa39add70fb520dfe351ca25ac4a50279">_add</a>(const base_integer &amp;n)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a30d2be94a5d9bb9bb3d6171de546c05e">_attach</a>(detail::data_t *new_data, bool neg=false)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a80fd494f4fe59cb29f1f305b1f092e45">_attach</a>(const base_integer &amp;copy)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a8b9bce898acddcf8e3ec6b8625d57a0f">_base_make_unique</a>()</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a1a784d80cc34a4d4d3191f780b3cfff1">_cleanup</a>()</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a9151e31e4dbb0ca8b0ded670d7d71a5b">_copy</a>(const base_integer &amp;copy, size_t extra)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#ac932c6bae77d2bbc93bf3456909e30bb">_get_digit</a>(size_t index) const </td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a4cbda067a810993a4d253d9113ca44a8">_get_digit</a>(size_t index, bool) const </td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#ad16080c4ce4693ed49c051408a225f44">_get_digits</a>()</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a4a22086e857b186bbbe8a6e7b752ffa0">_get_digits</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a9ed6fed4d931d2eb9b481ca02cc96bd7">_get_length</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a2fd6385e9d6953acbc0763720aafaac4">_get_negative</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a4fc848087aa061549e9388495f14d4d4">_is_nan</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td><code> [inline, protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#aa3d3f1dafb98685d92dec931dd0e3671">_is_unique</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a4a68ca6093ef45331d4f13c03a4af555">_is_zero</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a074070a5f6ccd250493acb53adc2e5d3">_realloc</a>(size_t new_digit_count)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#aa54c0899c6219b8fbc027b1e3b4d58c6">_set_negative</a>(bool neg)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a2d3cc0c651416f681b0d9474e75e62ca">_shift_left</a>(size_t byBits)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#ae357701f90c4930ffa9035a4a9f1733b">_shift_right</a>(size_t byBits)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#ac1dfaadf6302901f765b449cb8f1805a">_subtract</a>(const base_integer &amp;n)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a41cf20da11883ce0547e2391b9a51a80">base_integer</a>()</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a25b1de1f91bd026add3b07043b0eefcd">~base_integer</a>()</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">boost::xint::core::base_integer</a></td><td></td></tr>
-</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Apr 13 00:48:56 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/classboost_1_1xint_1_1core_1_1base__integer.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1core_1_1base__integer.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,550 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: boost::xint::core::base_integer Class Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li class="current">Classes</li>
- <li>Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>Class List</li>
- <li>Class Hierarchy</li>
- <li>Class Members</li>
- </ul>
- </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1core.html">core</a>::<a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">base_integer</a>
- </div>
-</div>
-<div class="contents">
-<h1>boost::xint::core::base_integer Class Reference</h1><!-- doxytag: class="boost::xint::core::base_integer" -->
-<p>The base class for the integer classes.
-More...</p>
-<div class="dynheader">
-Inheritance diagram for boost::xint::core::base_integer:</div>
-<div class="dynsection">
- <div class="center">
- <img src="classboost_1_1xint_1_1core_1_1base__integer.png" usemap="#boost::xint::core::base_integer_map" alt=""/>
- <map id="boost::xint::core::base_integer_map" name="boost::xint::core::base_integer_map">
-<area href="classboost_1_1xint_1_1blockable_1_1integer.html" alt="boost::xint::blockable::integer" shape="rect" coords="0,56,178,80"/>
-<area href="classboost_1_1xint_1_1core_1_1integer.html" alt="boost::xint::core::integer" shape="rect" coords="188,56,366,80"/>
-</map>
- </div>
-</div>
-
-<p>List of all members.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a41cf20da11883ce0547e2391b9a51a80">base_integer</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a25b1de1f91bd026add3b07043b0eefcd">~base_integer</a> ()</td></tr>
-<tr><td colspan="2"><div class="groupHeader">Internal Functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpae260ff3a3a80dad696f01482c30bb91"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#ac932c6bae77d2bbc93bf3456909e30bb">_get_digit</a> (size_t index) const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a4cbda067a810993a4d253d9113ca44a8">_get_digit</a> (size_t index, bool) const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#ad16080c4ce4693ed49c051408a225f44">_get_digits</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a4a22086e857b186bbbe8a6e7b752ffa0">_get_digits</a> () const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a9ed6fed4d931d2eb9b481ca02cc96bd7">_get_length</a> () const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#aa3d3f1dafb98685d92dec931dd0e3671">_is_unique</a> () const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a4a68ca6093ef45331d4f13c03a4af555">_is_zero</a> () const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a2fd6385e9d6953acbc0763720aafaac4">_get_negative</a> () const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#aa54c0899c6219b8fbc027b1e3b4d58c6">_set_negative</a> (bool neg)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a1a784d80cc34a4d4d3191f780b3cfff1">_cleanup</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a074070a5f6ccd250493acb53adc2e5d3">_realloc</a> (size_t new_digit_count)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a9151e31e4dbb0ca8b0ded670d7d71a5b">_copy</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">base_integer</a> &amp;copy, size_t extra)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a2d3cc0c651416f681b0d9474e75e62ca">_shift_left</a> (size_t byBits)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#ae357701f90c4930ffa9035a4a9f1733b">_shift_right</a> (size_t byBits)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#aa39add70fb520dfe351ca25ac4a50279">_add</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">base_integer</a> &amp;n)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#ac1dfaadf6302901f765b449cb8f1805a">_subtract</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">base_integer</a> &amp;n)</td></tr>
-<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a4fc848087aa061549e9388495f14d4d4">_is_nan</a> () const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a8b9bce898acddcf8e3ec6b8625d57a0f">_base_make_unique</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a30d2be94a5d9bb9bb3d6171de546c05e">_attach</a> (<a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html">detail::data_t</a> *new_data, bool neg=false)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html#a80fd494f4fe59cb29f1f305b1f092e45">_attach</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">base_integer</a> &amp;copy)</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>The base class for the integer classes. </p>
-
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00139">139</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
-<hr/><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a41cf20da11883ce0547e2391b9a51a80"></a><!-- doxytag: member="boost::xint::core::base_integer::base_integer" ref="a41cf20da11883ce0547e2391b9a51a80" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::core::base_integer::base_integer </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [inline]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00141">141</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a25b1de1f91bd026add3b07043b0eefcd"></a><!-- doxytag: member="boost::xint::core::base_integer::~base_integer" ref="a25b1de1f91bd026add3b07043b0eefcd" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::core::base_integer::~base_integer </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00036">36</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<hr/><h2>Member Function Documentation</h2>
-<a class="anchor" id="aa39add70fb520dfe351ca25ac4a50279"></a><!-- doxytag: member="boost::xint::core::base_integer::_add" ref="aa39add70fb520dfe351ca25ac4a50279" args="(const base_integer &amp;n)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void boost::xint::core::base_integer::_add </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">base_integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>n</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00125">125</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a80fd494f4fe59cb29f1f305b1f092e45"></a><!-- doxytag: member="boost::xint::core::base_integer::_attach" ref="a80fd494f4fe59cb29f1f305b1f092e45" args="(const base_integer &amp;copy)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void boost::xint::core::base_integer::_attach </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">base_integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>copy</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [protected]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00085">85</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a30d2be94a5d9bb9bb3d6171de546c05e"></a><!-- doxytag: member="boost::xint::core::base_integer::_attach" ref="a30d2be94a5d9bb9bb3d6171de546c05e" args="(detail::data_t *new_data, bool neg=false)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void boost::xint::core::base_integer::_attach </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html">detail::data_t</a> *&nbsp;</td>
- <td class="paramname"> <em>new_data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">bool&nbsp;</td>
- <td class="paramname"> <em>neg</em> = <code>false</code></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td><code> [protected]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00066">66</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8b9bce898acddcf8e3ec6b8625d57a0f"></a><!-- doxytag: member="boost::xint::core::base_integer::_base_make_unique" ref="a8b9bce898acddcf8e3ec6b8625d57a0f" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void boost::xint::core::base_integer::_base_make_unique </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [protected]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00121">121</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1a784d80cc34a4d4d3191f780b3cfff1"></a><!-- doxytag: member="boost::xint::core::base_integer::_cleanup" ref="a1a784d80cc34a4d4d3191f780b3cfff1" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void boost::xint::core::base_integer::_cleanup </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00105">105</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9151e31e4dbb0ca8b0ded670d7d71a5b"></a><!-- doxytag: member="boost::xint::core::base_integer::_copy" ref="a9151e31e4dbb0ca8b0ded670d7d71a5b" args="(const base_integer &amp;copy, size_t extra)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void boost::xint::core::base_integer::_copy </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">base_integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>copy</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>extra</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00061">61</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4cbda067a810993a4d253d9113ca44a8"></a><!-- doxytag: member="boost::xint::core::base_integer::_get_digit" ref="a4cbda067a810993a4d253d9113ca44a8" args="(size_t index, bool) const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> boost::xint::core::base_integer::_get_digit </td>
- <td>(</td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>index</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">bool&nbsp;</td>
- <td class="paramname"></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00044">44</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ac932c6bae77d2bbc93bf3456909e30bb"></a><!-- doxytag: member="boost::xint::core::base_integer::_get_digit" ref="ac932c6bae77d2bbc93bf3456909e30bb" args="(size_t index) const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> boost::xint::core::base_integer::_get_digit </td>
- <td>(</td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>index</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00040">40</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4a22086e857b186bbbe8a6e7b752ffa0"></a><!-- doxytag: member="boost::xint::core::base_integer::_get_digits" ref="a4a22086e857b186bbbe8a6e7b752ffa0" args="() const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> * boost::xint::core::base_integer::_get_digits </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00053">53</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad16080c4ce4693ed49c051408a225f44"></a><!-- doxytag: member="boost::xint::core::base_integer::_get_digits" ref="ad16080c4ce4693ed49c051408a225f44" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> * boost::xint::core::base_integer::_get_digits </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00049">49</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9ed6fed4d931d2eb9b481ca02cc96bd7"></a><!-- doxytag: member="boost::xint::core::base_integer::_get_length" ref="a9ed6fed4d931d2eb9b481ca02cc96bd7" args="() const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">size_t boost::xint::core::base_integer::_get_length </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00057">57</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2fd6385e9d6953acbc0763720aafaac4"></a><!-- doxytag: member="boost::xint::core::base_integer::_get_negative" ref="a2fd6385e9d6953acbc0763720aafaac4" args="() const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">bool boost::xint::core::base_integer::_get_negative </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00097">97</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4fc848087aa061549e9388495f14d4d4"></a><!-- doxytag: member="boost::xint::core::base_integer::_is_nan" ref="a4fc848087aa061549e9388495f14d4d4" args="() const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">bool boost::xint::core::base_integer::_is_nan </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const<code> [inline, protected]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00165">165</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa3d3f1dafb98685d92dec931dd0e3671"></a><!-- doxytag: member="boost::xint::core::base_integer::_is_unique" ref="aa3d3f1dafb98685d92dec931dd0e3671" args="() const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">bool boost::xint::core::base_integer::_is_unique </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00089">89</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4a68ca6093ef45331d4f13c03a4af555"></a><!-- doxytag: member="boost::xint::core::base_integer::_is_zero" ref="a4a68ca6093ef45331d4f13c03a4af555" args="() const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">bool boost::xint::core::base_integer::_is_zero </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00093">93</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a074070a5f6ccd250493acb53adc2e5d3"></a><!-- doxytag: member="boost::xint::core::base_integer::_realloc" ref="a074070a5f6ccd250493acb53adc2e5d3" args="(size_t new_digit_count)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void boost::xint::core::base_integer::_realloc </td>
- <td>(</td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>new_digit_count</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00109">109</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa54c0899c6219b8fbc027b1e3b4d58c6"></a><!-- doxytag: member="boost::xint::core::base_integer::_set_negative" ref="aa54c0899c6219b8fbc027b1e3b4d58c6" args="(bool neg)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void boost::xint::core::base_integer::_set_negative </td>
- <td>(</td>
- <td class="paramtype">bool&nbsp;</td>
- <td class="paramname"> <em>neg</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00101">101</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2d3cc0c651416f681b0d9474e75e62ca"></a><!-- doxytag: member="boost::xint::core::base_integer::_shift_left" ref="a2d3cc0c651416f681b0d9474e75e62ca" args="(size_t byBits)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void boost::xint::core::base_integer::_shift_left </td>
- <td>(</td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>byBits</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00113">113</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae357701f90c4930ffa9035a4a9f1733b"></a><!-- doxytag: member="boost::xint::core::base_integer::_shift_right" ref="ae357701f90c4930ffa9035a4a9f1733b" args="(size_t byBits)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void boost::xint::core::base_integer::_shift_right </td>
- <td>(</td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>byBits</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00117">117</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ac1dfaadf6302901f765b449cb8f1805a"></a><!-- doxytag: member="boost::xint::core::base_integer::_subtract" ref="ac1dfaadf6302901f765b449cb8f1805a" args="(const base_integer &amp;n)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void boost::xint::core::base_integer::_subtract </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1base__integer.html">base_integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>n</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00129">129</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following files:<ul>
-<li><a class="el" href="xint_8hpp_source.html">xint.hpp</a></li>
-<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 Apr 13 00:48:56 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/classboost_1_1xint_1_1core_1_1base__integer.png
==============================================================================
Binary file. No diff available.

Deleted: sandbox/xint/doc/classboost_1_1xint_1_1core_1_1integer-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1core_1_1integer-members.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,91 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li class="current">Classes</li>
- <li>Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>Class List</li>
- <li>Class Hierarchy</li>
- <li>Class Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>boost::xint::core::integer Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a3e0e821a38c37d4b94b61a62a9448b42">_add</a>(const base_integer &amp;n)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#acb7343f98a534a07da2dc86d6e8bee0a">_attach</a>(detail::data_t *new_data, bool neg=false)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee6c6d706a8dc8cdd1a16b1e65a47e2">_attach</a>(const base_integer &amp;copy)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4f2678c34cdf09e8df0c38ea91347fd7">_attach_0</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab94f96758a658c1523291c6d10ca7dc0">_attach_1</a>(digit_t n)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a00be0a0a2d19316259c54a8ced4e8451">_attach_n</a>(boost::uintmax_t n)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#abdfe224ab8dae4dbd4cfdd16e6c0612f">_base_make_unique</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ad75a8d9bef5eb2d57cbac37cafd925eb">_duplicate</a>(const base_integer &amp;copy, size_t extra)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a359e782a4a4c3e386957bc9cc03f8bea">_get_digit</a>(size_t index) const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0c199a74bd0fee53de75f6ea80b4056c">_get_digit</a>(size_t index, bool) const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#afd35edbad147f88c369bc4d0bda0b9ca">_get_digits</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a38654bb63b923be7f992e7812812b608">_get_digits</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a7462afdf5589caa01bb1ed732f633469">_get_length</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2a6ba9a67a9167e9535d735dacbaace7">_get_negative</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#afdaa612dd6669a12d349d6268f1ea3ff">_is_nan</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [inline, protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aee70939aaa336233f62341cf7d595010">_is_unique</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a576bd802f9b2cb8450250839bc52b98c">_is_zero</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a1f1b1c19c7c3ec22972124abdbd08cc1">_make_unique</a>()</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a36175e45a3f8660f59a9de593328fefd">_realloc</a>(size_t new_digit_count)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91cb2f84f30425e9158c2ac9bfcd9cb6">_set_negative</a>(bool neg)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aea0cff03f7886f2c44747538e27ad7f1">_shift_left</a>(size_t byBits)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a8236c349f72d154823d592123d94f218">_shift_right</a>(size_t byBits)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4f7e982aa22a1910dd5daf0e260c43c5">_subtract</a>(const base_integer &amp;n)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0e91eb0fd9e83d3cfc284d5b7e20207e">base_integer</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [inline, protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a61bef2a0575b9f331ca32686e489c9d3">even</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a615f128085bba5e711c24be546449f43">hex_digits</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a4e99025a3cdbf0777f90effe05e97625">integer</a>()</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#aa8a21b616c6c6f78f3c49686f897b067">integer</a>(const integer &amp;b)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#ad0f5b3fdf28a3e2892198dd1c39afe82">integer</a>(const blockable::integer &amp;b)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td><code> [explicit]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#aa5b9d9f104ce714700b4a3a40eefb80f">integer</a>(const std::string &amp;str, size_t base=10)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td><code> [explicit]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#afb6b73128973a835a261546f0a7fa0e7">integer</a>(const T &amp;n, typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *=0, typename boost::enable_if&lt; boost::is_signed&lt; T &gt; &gt;::type *=0)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a570690c9233ceb8d73dccb9af052f12b">integer</a>(const T &amp;n, typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *=0, typename boost::enable_if&lt; boost::is_unsigned&lt; T &gt; &gt;::type *=0)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a9eacfa2b1eea176019597ea25023e40e">odd</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#afcf74b546cda2690025c75325365a0fe">one</a>()</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a182855c5d54a78bad4fde3e807d2cce1">operator%=</a>(const integer &amp;b)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a00b096912c273f06aa0c0ea1284573d3">operator&amp;=</a>(const integer &amp;n)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a6eb52f1f84758e968ae7ae684436a9bb">operator*=</a>(const integer &amp;b)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#aa7e03bb3c9fe87c3205759d4ade6f714">operator++</a>()</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#ab04d9f5bfe1d4b9d10acf4cf3f8a6115">operator++</a>(int)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#afa137efa8b9fde22a3758ba020b819b7">operator+=</a>(const integer &amp;b)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#af66a56ff7fcc62ed0d82a7f3205951fe">operator--</a>()</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#ab30e34305c00e55f9ea0012085c49c9d">operator--</a>(int)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#aab4918c70e19e08e650e827b2c89e83f">operator-=</a>(const integer &amp;b)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a62d24cd0e4f033f7e44d0eadcaffec21">operator/=</a>(const integer &amp;b)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a659279c9657ce38ef02c7290025cff5c">operator&lt;&lt;</a>(size_t shift) const </td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#afde4e3672f01fd2fd4bf6091ca4e0547">operator&lt;&lt;=</a>(size_t shift)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a25202c72bffb37f2f7342633f0435fed">operator=</a>(const integer &amp;c)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a792aecee632de9b1a8822bc414bd2c64">operator&gt;&gt;</a>(size_t shift) const </td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#aac72a9392108a0f684e7f502bef3d8fe">operator&gt;&gt;=</a>(size_t shift)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a6c572b5a2976a88f0b214b0732a6d689">operator^=</a>(const integer &amp;n)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a6778bfda930127b6f203cbb7967373b5">operator|=</a>(const integer &amp;n)</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a4d0691f762a659cfebdfadca63d0a7d6">sign</a>(bool signed_zero=false) const </td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a5c4fdf4a0fd9cefd3f72b38413e32e9a">zero</a>()</td><td><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">boost::xint::core::integer</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a33dd417aa6d0a7892efe3d497b8f3f80">~base_integer</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
-</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Wed Apr 14 22:09:19 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/classboost_1_1xint_1_1core_1_1integer.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1core_1_1integer.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
+++ (empty file)
@@ -1,852 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: boost::xint::core::integer Class Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.6.3 -->
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li>Main Page</li>
- <li>Related Pages</li>
- <li>Namespaces</li>
- <li class="current">Classes</li>
- <li>Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>Class List</li>
- <li>Class Hierarchy</li>
- <li>Class Members</li>
- </ul>
- </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1core.html">core</a>::<a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a>
- </div>
-</div>
-<div class="contents">
-<h1>boost::xint::core::integer Class Reference</h1><!-- doxytag: class="boost::xint::core::integer" --><!-- doxytag: inherits="boost::xint::detail::base_integer" -->
-<p>The core integer class.
-More...</p>
-<div class="dynheader">
-Inheritance diagram for boost::xint::core::integer:</div>
-<div class="dynsection">
- <div class="center">
- <img src="classboost_1_1xint_1_1core_1_1integer.png" usemap="#boost::xint::core::integer_map" alt=""/>
- <map id="boost::xint::core::integer_map" name="boost::xint::core::integer_map">
-<area href="classboost_1_1xint_1_1detail_1_1base__integer.html" alt="boost::xint::detail::base_integer" shape="rect" coords="0,0,182,24"/>
-</map>
- </div>
-</div>
-
-<p>List of all members.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Constructors &amp; Destructors</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpab1e74c734dea693114ec1f1cb9434ad"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a4e99025a3cdbf0777f90effe05e97625">integer</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new integer with an initial value of zero. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#aa8a21b616c6c6f78f3c49686f897b067">integer</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;b)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a copy of an existing integer. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#ad0f5b3fdf28a3e2892198dd1c39afe82">integer</a> (const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">blockable::integer</a> &amp;b)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an integer from a <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html" title="The blockable integer class.">blockable::integer</a>. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#aa5b9d9f104ce714700b4a3a40eefb80f">integer</a> (const std::string &amp;str, size_t base=10)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an integer from a string representation. <br/></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#afb6b73128973a835a261546f0a7fa0e7">integer</a> (const T &amp;n, typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *=0, typename boost::enable_if&lt; boost::is_signed&lt; T &gt; &gt;::type *=0)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a570690c9233ceb8d73dccb9af052f12b">integer</a> (const T &amp;n, typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *=0, typename boost::enable_if&lt; boost::is_unsigned&lt; T &gt; &gt;::type *=0)</td></tr>
-<tr><td colspan="2"><div class="groupHeader">Mathematical and Bitwise Operators</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp8eb1e0f0af70edd858d54ba68b80ce7e"></a>These operate exactly like their counterparts for the built-in integer types.</p>
-<p>Note that there is no <code>operator~</code>. Since the integer type doesn't have a fixed maximum size, there is no logical way to implement it. </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a25202c72bffb37f2f7342633f0435fed">operator=</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;c)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#afa137efa8b9fde22a3758ba020b819b7">operator+=</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#aab4918c70e19e08e650e827b2c89e83f">operator-=</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a6eb52f1f84758e968ae7ae684436a9bb">operator*=</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a62d24cd0e4f033f7e44d0eadcaffec21">operator/=</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a182855c5d54a78bad4fde3e807d2cce1">operator%=</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#aa7e03bb3c9fe87c3205759d4ade6f714">operator++</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#af66a56ff7fcc62ed0d82a7f3205951fe">operator--</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#ab04d9f5bfe1d4b9d10acf4cf3f8a6115">operator++</a> (int)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#ab30e34305c00e55f9ea0012085c49c9d">operator--</a> (int)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a00b096912c273f06aa0c0ea1284573d3">operator&amp;=</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;n)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a6778bfda930127b6f203cbb7967373b5">operator|=</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;n)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a6c572b5a2976a88f0b214b0732a6d689">operator^=</a> (const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;n)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a659279c9657ce38ef02c7290025cff5c">operator&lt;&lt;</a> (size_t shift) const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a792aecee632de9b1a8822bc414bd2c64">operator&gt;&gt;</a> (size_t shift) const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#afde4e3672f01fd2fd4bf6091ca4e0547">operator&lt;&lt;=</a> (size_t shift)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#aac72a9392108a0f684e7f502bef3d8fe">operator&gt;&gt;=</a> (size_t shift)</td></tr>
-<tr><td colspan="2"><div class="groupHeader">Miscellaneous Functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpf5be5219a55995e13d6b8d7bf99ed653"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a9eacfa2b1eea176019597ea25023e40e">odd</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests the lowest bit of <code>*this</code> to determine oddness. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a61bef2a0575b9f331ca32686e489c9d3">even</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests the lowest bit of <code>*this</code> to determine evenness. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a4d0691f762a659cfebdfadca63d0a7d6">sign</a> (bool signed_zero=false) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests the sign of <code>*this</code>. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a615f128085bba5e711c24be546449f43">hex_digits</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tells you roughly how large an integer is. <br/></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Internal Functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpae260ff3a3a80dad696f01482c30bb91"></a>These functions allow access to the internals of the integer. They are intended for internal use only. </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a1f1b1c19c7c3ec22972124abdbd08cc1">_make_unique</a> ()</td></tr>
-<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Preconstructed integers</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpbc92fcddffc2f3092779f92fe2501e4a"></a> These return preconstructed integers with the values named by the functions. They are used internally, so that the most common values don't have to be constructed each time they're needed. </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#a5c4fdf4a0fd9cefd3f72b38413e32e9a">zero</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html#afcf74b546cda2690025c75325365a0fe">one</a> ()</td></tr>
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>The core integer class. </p>
-<p>This class implements the "pure" <code>integer</code> type, uncontaminated by things like the Not-a-Number value.</p>
-<p>There are only a few member functions; most of the functionality is implemented using standalone functions.</p>
-<p>Functions that start with an underscore (such as <code>_make_unique</code>) are intended for internal use only. They may change arbitrarily in future versions. </p>
-
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00192">192</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
-<hr/><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a4e99025a3cdbf0777f90effe05e97625"></a><!-- doxytag: member="boost::xint::core::integer::integer" ref="a4e99025a3cdbf0777f90effe05e97625" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::core::integer::integer </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Creates a new integer with an initial value of zero. </p>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00030">30</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa8a21b616c6c6f78f3c49686f897b067"></a><!-- doxytag: member="boost::xint::core::integer::integer" ref="aa8a21b616c6c6f78f3c49686f897b067" args="(const integer &amp;b)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::core::integer::integer </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>b</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Creates a copy of an existing integer. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>b</em>&nbsp;</td><td>An existing integer. If passed a Not-a-Number, it will create another Not-a-Number.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="note"><dt><b>Note:</b></dt><dd>This library can use a <a class="el" href="cow.html">copy-on-write technique</a>, making copying (even of large numbers) a very inexpensive operation.</dd></dl>
-<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00045">45</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad0f5b3fdf28a3e2892198dd1c39afe82"></a><!-- doxytag: member="boost::xint::core::integer::integer" ref="ad0f5b3fdf28a3e2892198dd1c39afe82" args="(const blockable::integer &amp;b)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::core::integer::integer </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html">blockable::integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>b</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [explicit]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Creates an integer from a <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html" title="The blockable integer class.">blockable::integer</a>. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>b</em>&nbsp;</td><td>An existing <a class="el" href="classboost_1_1xint_1_1blockable_1_1integer.html" title="The blockable integer class.">blockable::integer</a>.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="note"><dt><b>Note:</b></dt><dd>This library can use a <a class="el" href="cow.html">copy-on-write technique</a>, making copying (even of large numbers) a very inexpensive operation.</dd></dl>
-<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00059">59</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa5b9d9f104ce714700b4a3a40eefb80f"></a><!-- doxytag: member="boost::xint::core::integer::integer" ref="aa5b9d9f104ce714700b4a3a40eefb80f" args="(const std::string &amp;str, size_t base=10)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::core::integer::integer </td>
- <td>(</td>
- <td class="paramtype">const std::string &amp;&nbsp;</td>
- <td class="paramname"> <em>str</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>base</em> = <code>10</code></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td><code> [explicit]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Create an integer from a string representation. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>str</em>&nbsp;</td><td>A string representation of a number. </td></tr>
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>base</em>&nbsp;</td><td>The base of the number, or <a class="el" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">xint::autobase</a>.</td></tr>
- </table>
- </dd>
-</dl>
-<dl><dt><b>Exceptions:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classboost_1_1xint_1_1exception_1_1invalid__base.html">exception::invalid_base</a></em>&nbsp;</td><td>if the base parameter is not between 2 and 36 (inclusive) or the constant <a class="el" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">xint::autobase</a>. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classboost_1_1xint_1_1exception_1_1invalid__digit.html">exception::invalid_digit</a></em>&nbsp;</td><td>if the string contains any digit that cannot be part of a number in the specified base, or if there are no valid digits.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="remark"><dt><b>Remarks:</b></dt><dd>This will convert a string representation of a number into an integer. See the description of the <a class="el" href="namespaceboost_1_1xint_1_1core.html#adaa2e5c8f2ff92faee861a68bc7e4cca">from_string</a> function for details on its behavior.</dd></dl>
-<dl class="user"><dt><b></b></dt><dd>This is the most common way to initialize values that are too large to fit into a native integral type.</dd></dl>
-<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00085">85</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afb6b73128973a835a261546f0a7fa0e7"></a><!-- doxytag: member="boost::xint::core::integer::integer" ref="afb6b73128973a835a261546f0a7fa0e7" args="(const T &amp;n, typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *=0, typename boost::enable_if&lt; boost::is_signed&lt; T &gt; &gt;::type *=0)" -->
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;typename T &gt; </div>
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::core::integer::integer </td>
- <td>(</td>
- <td class="paramtype">const T &amp;&nbsp;</td>
- <td class="paramname"> <em>n</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *&nbsp;</td>
- <td class="paramname"> = <code>0</code>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename boost::enable_if&lt; boost::is_signed&lt; T &gt; &gt;::type *&nbsp;</td>
- <td class="paramname"> = <code>0</code></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td><code> [inline]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Constructs a new integer object with the value of the built-in signed integer passed to it.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>n</em>&nbsp;</td><td>A number of type <code>T</code>. </td></tr>
- </table>
- </dd>
-</dl>
-<dl><dt><b>Template Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>T</em>&nbsp;</td><td>The type of <code>n</code>.</td></tr>
- </table>
- </dd>
-</dl>
-<p>You can ignore the <code>enable_if</code> parameters, they are there only to tell the compiler what types it applies to.</p>
-<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00801">801</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a570690c9233ceb8d73dccb9af052f12b"></a><!-- doxytag: member="boost::xint::core::integer::integer" ref="a570690c9233ceb8d73dccb9af052f12b" args="(const T &amp;n, typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *=0, typename boost::enable_if&lt; boost::is_unsigned&lt; T &gt; &gt;::type *=0)" -->
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;typename T &gt; </div>
- <table class="memname">
- <tr>
- <td class="memname">boost::xint::core::integer::integer </td>
- <td>(</td>
- <td class="paramtype">const T &amp;&nbsp;</td>
- <td class="paramname"> <em>n</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename boost::enable_if&lt; boost::is_integral&lt; T &gt; &gt;::type *&nbsp;</td>
- <td class="paramname"> = <code>0</code>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename boost::enable_if&lt; boost::is_unsigned&lt; T &gt; &gt;::type *&nbsp;</td>
- <td class="paramname"> = <code>0</code></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td><code> [inline]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Constructs a new integer object with the value of the built-in unsigned integer passed to it.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>n</em>&nbsp;</td><td>A number of type <code>T</code>. </td></tr>
- </table>
- </dd>
-</dl>
-<dl><dt><b>Template Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>T</em>&nbsp;</td><td>The type of <code>n</code>.</td></tr>
- </table>
- </dd>
-</dl>
-<p>You can ignore the <code>enable_if</code> parameters, they are there only to tell the compiler what types it applies to.</p>
-<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-
-<p>Definition at line <a class="el" href="xint_8hpp_source.html#l00833">833</a> of file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
-
-</div>
-</div>
-<hr/><h2>Member Function Documentation</h2>
-<a class="anchor" id="a1f1b1c19c7c3ec22972124abdbd08cc1"></a><!-- doxytag: member="boost::xint::core::integer::_make_unique" ref="a1f1b1c19c7c3ec22972124abdbd08cc1" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void boost::xint::core::integer::_make_unique </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00089">89</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a61bef2a0575b9f331ca32686e489c9d3"></a><!-- doxytag: member="boost::xint::core::integer::even" ref="a61bef2a0575b9f331ca32686e489c9d3" args="() const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">bool boost::xint::core::integer::even </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Tests the lowest bit of <code>*this</code> to determine evenness. </p>
-<dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if <code>*this</code> is even, otherwise <code>false</code>. </dd></dl>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00105">105</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a615f128085bba5e711c24be546449f43"></a><!-- doxytag: member="boost::xint::core::integer::hex_digits" ref="a615f128085bba5e711c24be546449f43" args="() const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">size_t boost::xint::core::integer::hex_digits </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Tells you roughly how large an integer is. </p>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The number of hexadecimal digits that would be required to encode <code>this</code>. </dd></dl>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00128">128</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9eacfa2b1eea176019597ea25023e40e"></a><!-- doxytag: member="boost::xint::core::integer::odd" ref="a9eacfa2b1eea176019597ea25023e40e" args="() const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">bool boost::xint::core::integer::odd </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Tests the lowest bit of <code>*this</code> to determine oddness. </p>
-<dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if <code>*this</code> is odd, otherwise <code>false</code>. </dd></dl>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00097">97</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afcf74b546cda2690025c75325365a0fe"></a><!-- doxytag: member="boost::xint::core::integer::one" ref="afcf74b546cda2690025c75325365a0fe" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::one </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00200">200</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a182855c5d54a78bad4fde3e807d2cce1"></a><!-- doxytag: member="boost::xint::core::integer::operator%=" ref="a182855c5d54a78bad4fde3e807d2cce1" args="(const integer &amp;b)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::operator%= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>b</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00166">166</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a00b096912c273f06aa0c0ea1284573d3"></a><!-- doxytag: member="boost::xint::core::integer::operator&amp;=" ref="a00b096912c273f06aa0c0ea1284573d3" args="(const integer &amp;n)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::operator&amp;= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>n</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00175">175</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6eb52f1f84758e968ae7ae684436a9bb"></a><!-- doxytag: member="boost::xint::core::integer::operator*=" ref="a6eb52f1f84758e968ae7ae684436a9bb" args="(const integer &amp;b)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::operator*= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>b</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00164">164</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab04d9f5bfe1d4b9d10acf4cf3f8a6115"></a><!-- doxytag: member="boost::xint::core::integer::operator++" ref="ab04d9f5bfe1d4b9d10acf4cf3f8a6115" args="(int)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> boost::xint::core::integer::operator++ </td>
- <td>(</td>
- <td class="paramtype">int&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Postincrement operator -- not recommended, inefficient </p>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00170">170</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa7e03bb3c9fe87c3205759d4ade6f714"></a><!-- doxytag: member="boost::xint::core::integer::operator++" ref="aa7e03bb3c9fe87c3205759d4ade6f714" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::operator++ </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Preincrement operator </p>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00168">168</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afa137efa8b9fde22a3758ba020b819b7"></a><!-- doxytag: member="boost::xint::core::integer::operator+=" ref="afa137efa8b9fde22a3758ba020b819b7" args="(const integer &amp;b)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::operator+= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>b</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00133">133</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab30e34305c00e55f9ea0012085c49c9d"></a><!-- doxytag: member="boost::xint::core::integer::operator&#45;&#45;" ref="ab30e34305c00e55f9ea0012085c49c9d" args="(int)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> boost::xint::core::integer::operator-- </td>
- <td>(</td>
- <td class="paramtype">int&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Postdecrement operator -- not recommended, inefficient </p>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00171">171</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af66a56ff7fcc62ed0d82a7f3205951fe"></a><!-- doxytag: member="boost::xint::core::integer::operator&#45;&#45;" ref="af66a56ff7fcc62ed0d82a7f3205951fe" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::operator-- </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-<p>Predecrement operator </p>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00169">169</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aab4918c70e19e08e650e827b2c89e83f"></a><!-- doxytag: member="boost::xint::core::integer::operator&#45;=" ref="aab4918c70e19e08e650e827b2c89e83f" args="(const integer &amp;b)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::operator-= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>b</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00147">147</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a62d24cd0e4f033f7e44d0eadcaffec21"></a><!-- doxytag: member="boost::xint::core::integer::operator/=" ref="a62d24cd0e4f033f7e44d0eadcaffec21" args="(const integer &amp;b)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::operator/= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>b</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00165">165</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a659279c9657ce38ef02c7290025cff5c"></a><!-- doxytag: member="boost::xint::core::integer::operator&lt;&lt;" ref="a659279c9657ce38ef02c7290025cff5c" args="(size_t shift) const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> boost::xint::core::integer::operator&lt;&lt; </td>
- <td>(</td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>shift</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00173">173</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afde4e3672f01fd2fd4bf6091ca4e0547"></a><!-- doxytag: member="boost::xint::core::integer::operator&lt;&lt;=" ref="afde4e3672f01fd2fd4bf6091ca4e0547" args="(size_t shift)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::operator&lt;&lt;= </td>
- <td>(</td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>shift</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00179">179</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a25202c72bffb37f2f7342633f0435fed"></a><!-- doxytag: member="boost::xint::core::integer::operator=" ref="a25202c72bffb37f2f7342633f0435fed" args="(const integer &amp;c)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::operator= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>c</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00159">159</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a792aecee632de9b1a8822bc414bd2c64"></a><!-- doxytag: member="boost::xint::core::integer::operator&gt;&gt;" ref="a792aecee632de9b1a8822bc414bd2c64" args="(size_t shift) const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> boost::xint::core::integer::operator&gt;&gt; </td>
- <td>(</td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>shift</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00174">174</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aac72a9392108a0f684e7f502bef3d8fe"></a><!-- doxytag: member="boost::xint::core::integer::operator&gt;&gt;=" ref="aac72a9392108a0f684e7f502bef3d8fe" args="(size_t shift)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::operator&gt;&gt;= </td>
- <td>(</td>
- <td class="paramtype">size_t&nbsp;</td>
- <td class="paramname"> <em>shift</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00187">187</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6c572b5a2976a88f0b214b0732a6d689"></a><!-- doxytag: member="boost::xint::core::integer::operator^=" ref="a6c572b5a2976a88f0b214b0732a6d689" args="(const integer &amp;n)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::operator^= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>n</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00177">177</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6778bfda930127b6f203cbb7967373b5"></a><!-- doxytag: member="boost::xint::core::integer::operator|=" ref="a6778bfda930127b6f203cbb7967373b5" args="(const integer &amp;n)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::operator|= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>n</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00176">176</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4d0691f762a659cfebdfadca63d0a7d6"></a><!-- doxytag: member="boost::xint::core::integer::sign" ref="a4d0691f762a659cfebdfadca63d0a7d6" args="(bool signed_zero=false) const " -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int boost::xint::core::integer::sign </td>
- <td>(</td>
- <td class="paramtype">bool&nbsp;</td>
- <td class="paramname"> <em>signed_zero</em> = <code>false</code></td>
- <td>&nbsp;)&nbsp;</td>
- <td> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Tests the sign of <code>*this</code>. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>signed_zero</em>&nbsp;</td><td>If <code>false</code> (the default value), returns zero if <code>*this</code> is zero. If <code>true</code>, returns 1 or -1 on a zero <code>*this</code> as well. Primarily used to identify a <a class="el" href="zero.html">negative zero</a>.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>-1 if <code>*this</code> is negative, 0 if it's zero, or 1 if it's greater than zero. </dd></dl>
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00118">118</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5c4fdf4a0fd9cefd3f72b38413e32e9a"></a><!-- doxytag: member="boost::xint::core::integer::zero" ref="a5c4fdf4a0fd9cefd3f72b38413e32e9a" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const <a class="el" href="classboost_1_1xint_1_1core_1_1integer.html">integer</a> &amp; boost::xint::core::integer::zero </td>
- <td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8cpp_source.html#l00195">195</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following files:<ul>
-<li><a class="el" href="xint_8hpp_source.html">xint.hpp</a></li>
-<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 Wed Apr 14 22:09:19 2010 for The Extended Integer (XInt) Library by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
-</body>
-</html>

Deleted: sandbox/xint/doc/classboost_1_1xint_1_1core_1_1integer.png
==============================================================================
Binary file. No diff available.

Modified: sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1base__integer-members.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1base__integer-members.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1base__integer-members.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -12,7 +12,6 @@
   <div class="tabs">
     <ul>
       <li>Main Page</li>
- <li>Related Pages</li>
       <li>Namespaces</li>
       <li class="current">Classes</li>
       <li>Files</li>
@@ -29,34 +28,50 @@
 <div class="contents">
 <h1>boost::xint::detail::base_integer Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a3e0e821a38c37d4b94b61a62a9448b42">_add</a>(const base_integer &amp;n)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0ff9a2dc0d72f2c16caf68c6277cdab9">_attach</a>(data_t&lt;&gt; *new_data, bool neg=false)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee6c6d706a8dc8cdd1a16b1e65a47e2">_attach</a>(const base_integer &amp;copy)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4f2678c34cdf09e8df0c38ea91347fd7">_attach_0</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab94f96758a658c1523291c6d10ca7dc0">_attach_1</a>(digit_t n)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a00be0a0a2d19316259c54a8ced4e8451">_attach_n</a>(boost::uintmax_t n)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#abdfe224ab8dae4dbd4cfdd16e6c0612f">_base_make_unique</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee6c6d706a8dc8cdd1a16b1e65a47e2">_attach</a>(const base_integer &amp;copy)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9e58a5897a80b8017ff7da7f0abacb6b">_base_attach</a>(data_t *new_data, flag_t flags=0, size_t extra_allocation=0)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ad75a8d9bef5eb2d57cbac37cafd925eb">_duplicate</a>(const base_integer &amp;copy, size_t extra)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91e4b721c42445501b136a13d7ce9d32">_decrement</a>(bool absolute_value=false)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a89015b1e803dbd5162f6b6e5f3ff374c">_fixed_bits</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a546d2270418066857ddf948b20de4810">_fixed_digits</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aad96a1fe27c2b1da6fe933acc444d98f">_get_digit</a>(size_t index) const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a04f1087ed90152d3cc1b803b359951ab">_get_digit</a>(size_t index, bool) const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee8727d51762352bba8ea8e3b8489f2">_get_digits</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4dbd638f790c50cfb2f68af5d3852372">_get_digits</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a7462afdf5589caa01bb1ed732f633469">_get_length</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ac9fbd48df9971107d98ff5840ee3557e">_get_max_length</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2a6ba9a67a9167e9535d735dacbaace7">_get_negative</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#afdaa612dd6669a12d349d6268f1ea3ff">_is_nan</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [inline, protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ac4692f68ae9b4c949680421c877dc400">_get_readonly</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a355b981cef93f9c674fe4202b4d02d64">_get_writable_digits</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab47afee36e91b35b199b0ac3b6542ad2">_increment</a>(bool absolute_value=false)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a70e40ee3b40acbc6a7dd55a7f8d5c13c">_is_fixed</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#afdaa612dd6669a12d349d6268f1ea3ff">_is_nan</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aee70939aaa336233f62341cf7d595010">_is_unique</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a576bd802f9b2cb8450250839bc52b98c">_is_zero</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a29f37fcd3e14cd2b271d990edc3dbb56">_log2</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a685da8a208baf4f77502062d4cc0f062">_make_unique</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a36175e45a3f8660f59a9de593328fefd">_realloc</a>(size_t new_digit_count)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0980c3f09050640e8f33a9f10bcd2c38">_set_n</a>(boost::uintmax_t n)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a44cf0d0743513fe84addcaf2e66bb343">_set_length</a>(size_t digits)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91cb2f84f30425e9158c2ac9bfcd9cb6">_set_negative</a>(bool neg)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aea0cff03f7886f2c44747538e27ad7f1">_shift_left</a>(size_t byBits)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a8236c349f72d154823d592123d94f218">_shift_right</a>(size_t byBits)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a8e11790b0ec09eb4b74d2df00e63bf95">_set_readonly</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#af81476d55eaf931ff396c82894c7f72d">_set_signed</a>(boost::intmax_t n)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ad87a527e2b5379b358484893a1cd8ebb">_set_unsigned</a>(boost::uintmax_t n, bool negative=false)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4f7e982aa22a1910dd5daf0e260c43c5">_subtract</a>(const base_integer &amp;n)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0e91eb0fd9e83d3cfc284d5b7e20207e">base_integer</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [inline, protected]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a94ba0c5d0b11588062116ebf6263f2cc">base_integer</a>(size_t count, digit_t mask, void *d)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a6c2015c98805bf96d68aae1c13287a36">_swap</a>(base_integer &amp;other)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a1ee8597806a71bb2846b9b8eb8d05dce">_to_integer</a>() const </td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2397061bb963562fd145ed5b4a6799ca">_toggle_negative</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a0e91eb0fd9e83d3cfc284d5b7e20207e">base_integer</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab5e59c173051f19be31b5af9c2077de0">base_integer</a>(const base_integer &amp;c, bool fixed)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a94fcb8494e0a8787c34ea6dcb9d5c4cf">base_integer</a>(data_t *adopt, bool neg=false)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [explicit, protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a160a243a54984431613c88fb7fbacb0c">base_integer</a>(size_t count, digit_t mask)</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#abd3bad49963ec70a929110fbb435832a">base_variable_length_integer</a> class</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [friend]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a988572f30ed3d8fc3b936eeec09724ef">flag_fixedlength</a></td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a406617f773cbc0901a60290c5bc4dbac">flag_negative</a></td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a993c7f7bfba3eec3cc5d1ed0fe7aa36c">flag_readonly</a></td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#af85f2e55215d2ec3f15164fff64cddd9">flag_t</a> typedef</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ac1e1911bc92a092158db403a5412c561">temp_t</a> class</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td><code> [friend]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a33dd417aa6d0a7892efe3d497b8f3f80">~base_integer</a>()</td><td><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">boost::xint::detail::base_integer</a></td><td></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 17 20:02:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Apr 30 00:24:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
 </body>

Modified: sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1base__integer.html
==============================================================================
--- sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1base__integer.html (original)
+++ sandbox/xint/doc/classboost_1_1xint_1_1detail_1_1base__integer.html 2010-04-30 00:35:51 EDT (Fri, 30 Apr 2010)
@@ -12,7 +12,6 @@
   <div class="tabs">
     <ul>
       <li>Main Page</li>
- <li>Related Pages</li>
       <li>Namespaces</li>
       <li class="current">Classes</li>
       <li>Files</li>
@@ -30,7 +29,7 @@
 </div>
 <div class="contents">
 <h1>boost::xint::detail::base_integer Class Reference</h1><!-- doxytag: class="boost::xint::detail::base_integer" -->
-<p>The base class for the integer classes.
+<p>The base class for all integer classes.
 <a href="#_details">More...</a></p>
 <div class="dynheader">
 Inheritance diagram for boost::xint::detail::base_integer:</div>
@@ -38,8 +37,13 @@
  <div class="center">
   <img src="classboost_1_1xint_1_1detail_1_1base__integer.png" usemap="#boost::xint::detail::base_integer_map" alt=""/>
   <map id="boost::xint::detail::base_integer_map" name="boost::xint::detail::base_integer_map">
-<area href="classboost_1_1xint_1_1integer.html" alt="boost::xint::integer" shape="rect" coords="0,56,182,80"/>
-<area href="classboost_1_1xint_1_1nothrow__integer.html" alt="boost::xint::nothrow_integer" shape="rect" coords="192,56,374,80"/>
+<area href="classboost_1_1xint_1_1detail_1_1base__variable__length__integer.html" alt="boost::xint::detail::base_variable_length_integer" shape="rect" coords="143,56,419,80"/>
+<area href="classboost_1_1xint_1_1detail_1_1temp__t.html" alt="boost::xint::detail::temp_t" shape="rect" coords="572,56,848,80"/>
+<area href="classboost_1_1xint_1_1fixed__integer__any.html" alt="boost::xint::fixed_integer_any" shape="rect" coords="858,56,1134,80"/>
+<area href="classboost_1_1xint_1_1integer.html" alt="boost::xint::integer" shape="rect" coords="0,112,276,136"/>
+<area href="classboost_1_1xint_1_1nothrow__integer.html" alt="boost::xint::nothrow_integer" shape="rect" coords="286,112,562,136"/>
+<area href="classboost_1_1xint_1_1detail_1_1neg__t.html" alt="boost::xint::detail::neg_t" shape="rect" coords="572,112,848,136"/>
+<area href="classboost_1_1xint_1_1fixed__integer.html" alt="boost::xint::fixed_integer&lt; Bits &gt;" shape="rect" coords="858,112,1134,136"/>
 </map>
  </div>
 </div>
@@ -51,38 +55,73 @@
 <tr><td colspan="2"><div class="groupHeader">Internal Functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpae260ff3a3a80dad696f01482c30bb91"></a> </p>
 </div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aad96a1fe27c2b1da6fe933acc444d98f">_get_digit</a> (size_t index) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a3e0e821a38c37d4b94b61a62a9448b42">_add</a> (const <a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">base_integer</a> &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee6c6d706a8dc8cdd1a16b1e65a47e2">_attach</a> (const <a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">base_integer</a> &amp;copy)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91e4b721c42445501b136a13d7ce9d32">_decrement</a> (bool absolute_value=false)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a89015b1e803dbd5162f6b6e5f3ff374c">_fixed_bits</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a546d2270418066857ddf948b20de4810">_fixed_digits</a> () const </td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a04f1087ed90152d3cc1b803b359951ab">_get_digit</a> (size_t index, bool) const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9ee8727d51762352bba8ea8e3b8489f2">_get_digits</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aad96a1fe27c2b1da6fe933acc444d98f">_get_digit</a> (size_t index) const </td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4dbd638f790c50cfb2f68af5d3852372">_get_digits</a> () const </td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a7462afdf5589caa01bb1ed732f633469">_get_length</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ac9fbd48df9971107d98ff5840ee3557e">_get_max_length</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2a6ba9a67a9167e9535d735dacbaace7">_get_negative</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ac4692f68ae9b4c949680421c877dc400">_get_readonly</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1xint_1_1detail.html#a46b5dc5524403d8a09d1bb419abcc347">detail::digit_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a355b981cef93f9c674fe4202b4d02d64">_get_writable_digits</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab47afee36e91b35b199b0ac3b6542ad2">_increment</a> (bool absolute_value=false)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a70e40ee3b40acbc6a7dd55a7f8d5c13c">_is_fixed</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#afdaa612dd6669a12d349d6268f1ea3ff">_is_nan</a> () const </td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aee70939aaa336233f62341cf7d595010">_is_unique</a> () const </td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a576bd802f9b2cb8450250839bc52b98c">_is_zero</a> () const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2a6ba9a67a9167e9535d735dacbaace7">_get_negative</a> () const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91cb2f84f30425e9158c2ac9bfcd9cb6">_set_negative</a> (bool neg)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ab74b3c73fe6560f1f760b1a94612b189">_cleanup</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a29f37fcd3e14cd2b271d990edc3dbb56">_log2</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a685da8a208baf4f77502062d4cc0f062">_make_unique</a> ()</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a36175e45a3f8660f59a9de593328fefd">_realloc</a> (size_t new_digit_count)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ad75a8d9bef5eb2d57cbac37cafd925eb">_duplicate</a> (const <a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">base_integer</a> &amp;copy, size_t extra)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#aea0cff03f7886f2c44747538e27ad7f1">_shift_left</a> (size_t byBits)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a8236c349f72d154823d592123d94f218">_shift_right</a> (size_t byBits)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a3e0e821a38c37d4b94b61a62a9448b42">_add</a> (const <a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">base_integer</a> &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a44cf0d0743513fe84addcaf2e66bb343">_set_length</a> (size_t digits)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a91cb2f84f30425e9158c2ac9bfcd9cb6">_set_negative</a> (bool neg)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#af81476d55eaf931ff396c82894c7f72d">_set_signed</a> (boost::intmax_t n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#ad87a527e2b5379b358484893a1cd8ebb">_set_unsigned</a> (boost::uintmax_t n, bool negative=false)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a4f7e982aa22a1910dd5daf0e260c43c5">_subtract</a> (const <a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">base_integer</a> &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a6c2015c98805bf96d68aae1c13287a36">_swap</a> (<a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html">base_integer</a> &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer.html">integer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a1ee8597806a71bb2846b9b8eb8d05dce">_to_integer</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a2397061bb963562fd145ed5b4a6799ca">_toggle_negative</a> ()</td></tr>
+<tr><td colspan="2"><h2>Protected Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#af85f2e55215d2ec3f15164fff64cddd9">flag_t</a></td></tr>
 <tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#a9e58a5897a80b8017ff7da7f0abacb6b">_base_attach</a> (<a class="el" href="structboost_1_1xint_1_1detail_1_1data__t.html">data_t</a> *new_data, <a class="el" href="classboost_1_1xint_1_1detail_1_1base__integer.html#af85f2e55215d2ec3f15164fff64cddd9">flag_t</a> flags=0, size_t extra_allocation=0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bott