Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r83516 - in branches/release: boost/multiprecision boost/multiprecision/concepts boost/multiprecision/cpp_int boost/multiprecision/detail boost/multiprecision/traits libs/multiprecision libs/multiprecision/config libs/multiprecision/doc libs/multiprecision/doc/html libs/multiprecision/doc/html/boost_multiprecision libs/multiprecision/doc/html/boost_multiprecision/indexes libs/multiprecision/doc/html/boost_multiprecision/map libs/multiprecision/doc/html/boost_multiprecision/perf libs/multiprecision/doc/html/boost_multiprecision/ref libs/multiprecision/doc/html/boost_multiprecision/tut libs/multiprecision/doc/html/boost_multiprecision/tut/floats libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg libs/multiprecision/doc/html/boost_multiprecision/tut/interval libs/multiprecision/doc/html/boost_multiprecision/tut/ints libs/multiprecision/doc/html/boost_multiprecision/tut/ints/egs libs/multiprecision/doc/html/boost_multiprecision/tut/misc libs/multiprecision/doc/html/boost_multiprecision/tut/rational libs/multiprecision/example libs/multiprecision/performance libs/multiprecision/test libs/multiprecision/test/compile_fail libs/multiprecision/test/concepts libs/multiprecision/test/coverage libs/multiprecision/test/math libs/multiprecision/test/ublas_interop
From: john_at_[hidden]
Date: 2013-03-22 09:03:06


Author: johnmaddock
Date: 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
New Revision: 83516
URL: http://svn.boost.org/trac/boost/changeset/83516

Log:
Merge changes from Trunk.
Added:
   branches/release/boost/multiprecision/debug_adaptor.hpp
      - copied unchanged from r83515, /trunk/boost/multiprecision/debug_adaptor.hpp
   branches/release/boost/multiprecision/detail/dynamic_array.hpp
      - copied unchanged from r83515, /trunk/boost/multiprecision/detail/dynamic_array.hpp
   branches/release/boost/multiprecision/detail/rebind.hpp
      - copied unchanged from r83515, /trunk/boost/multiprecision/detail/rebind.hpp
   branches/release/boost/multiprecision/detail/ublas_interop.hpp
      - copied unchanged from r83515, /trunk/boost/multiprecision/detail/ublas_interop.hpp
   branches/release/boost/multiprecision/detail/utype_helper.hpp
      - copied unchanged from r83515, /trunk/boost/multiprecision/detail/utype_helper.hpp
   branches/release/boost/multiprecision/logged_adaptor.hpp
      - copied unchanged from r83515, /trunk/boost/multiprecision/logged_adaptor.hpp
   branches/release/boost/multiprecision/mpfi.hpp
      - copied unchanged from r83515, /trunk/boost/multiprecision/mpfi.hpp
   branches/release/boost/multiprecision/rational_adaptor.hpp
      - copied unchanged from r83515, /trunk/boost/multiprecision/rational_adaptor.hpp
   branches/release/boost/multiprecision/traits/extract_exponent_type.hpp
      - copied unchanged from r83515, /trunk/boost/multiprecision/traits/extract_exponent_type.hpp
   branches/release/libs/multiprecision/config/has_mpfi.cpp
      - copied unchanged from r83515, /trunk/libs/multiprecision/config/has_mpfi.cpp
   branches/release/libs/multiprecision/doc/debugger1.png
      - copied unchanged from r83515, /trunk/libs/multiprecision/doc/debugger1.png
   branches/release/libs/multiprecision/doc/debugger2.png
      - copied unchanged from r83515, /trunk/libs/multiprecision/doc/debugger2.png
   branches/release/libs/multiprecision/doc/debugger3.png
      - copied unchanged from r83515, /trunk/libs/multiprecision/doc/debugger3.png
   branches/release/libs/multiprecision/doc/debugger4.png
      - copied unchanged from r83515, /trunk/libs/multiprecision/doc/debugger4.png
   branches/release/libs/multiprecision/doc/debugger5.png
      - copied unchanged from r83515, /trunk/libs/multiprecision/doc/debugger5.png
   branches/release/libs/multiprecision/doc/debugger6.png
      - copied unchanged from r83515, /trunk/libs/multiprecision/doc/debugger6.png
   branches/release/libs/multiprecision/doc/debugger7.png
      - copied unchanged from r83515, /trunk/libs/multiprecision/doc/debugger7.png
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/interval/
      - copied from r83515, /trunk/libs/multiprecision/doc/html/boost_multiprecision/tut/interval/
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/interval.html
      - copied unchanged from r83515, /trunk/libs/multiprecision/doc/html/boost_multiprecision/tut/interval.html
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/misc/
      - copied from r83515, /trunk/libs/multiprecision/doc/html/boost_multiprecision/tut/misc/
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/misc.html
      - copied unchanged from r83515, /trunk/libs/multiprecision/doc/html/boost_multiprecision/tut/misc.html
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/rational_adaptor.html
      - copied unchanged from r83515, /trunk/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/rational_adaptor.html
   branches/release/libs/multiprecision/example/debug_adaptor_snips.cpp
      - copied unchanged from r83515, /trunk/libs/multiprecision/example/debug_adaptor_snips.cpp
   branches/release/libs/multiprecision/example/logged_adaptor.cpp
      - copied unchanged from r83515, /trunk/libs/multiprecision/example/logged_adaptor.cpp
   branches/release/libs/multiprecision/example/mpfi_snips.cpp
      - copied unchanged from r83515, /trunk/libs/multiprecision/example/mpfi_snips.cpp
   branches/release/libs/multiprecision/test/compile_fail/conv_fail_59.cpp
      - copied unchanged from r83515, /trunk/libs/multiprecision/test/compile_fail/conv_fail_59.cpp
   branches/release/libs/multiprecision/test/test_arithmetic_dbg_adptr1.cpp
      - copied unchanged from r83515, /trunk/libs/multiprecision/test/test_arithmetic_dbg_adptr1.cpp
   branches/release/libs/multiprecision/test/test_arithmetic_dbg_adptr2.cpp
      - copied unchanged from r83515, /trunk/libs/multiprecision/test/test_arithmetic_dbg_adptr2.cpp
   branches/release/libs/multiprecision/test/test_arithmetic_logged_1.cpp
      - copied unchanged from r83515, /trunk/libs/multiprecision/test/test_arithmetic_logged_1.cpp
   branches/release/libs/multiprecision/test/test_arithmetic_logged_2.cpp
      - copied unchanged from r83515, /trunk/libs/multiprecision/test/test_arithmetic_logged_2.cpp
   branches/release/libs/multiprecision/test/test_arithmetic_mpfi_50.cpp
      - copied unchanged from r83515, /trunk/libs/multiprecision/test/test_arithmetic_mpfi_50.cpp
   branches/release/libs/multiprecision/test/test_arithmetic_mpfr_50_static.cpp
      - copied unchanged from r83515, /trunk/libs/multiprecision/test/test_arithmetic_mpfr_50_static.cpp
   branches/release/libs/multiprecision/test/test_cpp_dec_float_round.cpp
      - copied unchanged from r83515, /trunk/libs/multiprecision/test/test_cpp_dec_float_round.cpp
   branches/release/libs/multiprecision/test/test_mpfi.cpp
      - copied unchanged from r83515, /trunk/libs/multiprecision/test/test_mpfi.cpp
Removed:
   branches/release/boost/multiprecision/rational_adapter.hpp
Properties modified:
   branches/release/boost/multiprecision/ (props changed)
   branches/release/libs/multiprecision/ (props changed)
Text files modified:
   branches/release/boost/multiprecision/concepts/mp_number_archetypes.hpp | 2
   branches/release/boost/multiprecision/cpp_dec_float.hpp | 97 ++++----
   branches/release/boost/multiprecision/cpp_int.hpp | 60 +++++
   branches/release/boost/multiprecision/cpp_int/add.hpp | 22 +
   branches/release/boost/multiprecision/cpp_int/comparison.hpp | 13 +
   branches/release/boost/multiprecision/cpp_int/divide.hpp | 25 +
   branches/release/boost/multiprecision/cpp_int/misc.hpp | 14 +
   branches/release/boost/multiprecision/detail/default_ops.hpp | 28 +-
   branches/release/boost/multiprecision/detail/et_ops.hpp | 42 +-
   branches/release/boost/multiprecision/detail/integer_ops.hpp | 24 +-
   branches/release/boost/multiprecision/detail/number_base.hpp | 63 ++++-
   branches/release/boost/multiprecision/mpfr.hpp | 80 ++++++-
   branches/release/boost/multiprecision/number.hpp | 138 +++++-------
   branches/release/boost/multiprecision/tommath.hpp | 4
   branches/release/libs/multiprecision/config/Jamfile.v2 | 9
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s01.html | 69 +++++-
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s02.html | 38 ++-
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s03.html | 29 +
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s04.html | 141 ++++++++++--
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/intro.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/map.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/ack.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/faq.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/hist.html | 36 +++
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/todo.html | 4
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/float_performance.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/int_real_world.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/integer_performance.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/overhead.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/rational_performance.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/realworld.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/backendconc.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/cpp_dec_ref.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/cpp_int_ref.html | 6
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/gmp_int_ref.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/headers.html | 6
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/internals.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/mpf_ref.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/mpfr_ref.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/number.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/tom_int_ref.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut.html | 13 +
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/conversions.html | 8
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/cpp_dec_float.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/aos.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/gi.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/jel.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/nd.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/poly_eg.html | 8
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/gmp_float.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/mpfr_float.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/cpp_int.html | 6
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/egs.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/egs/bitops.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/egs/factorials.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/gmp_int.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/tom_int.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/lits.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/mixed.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/primetest.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/random.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational.html | 16
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/br.html | 8
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/cpp_rational.html | 4
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/gmp_rational.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/rational_adapter.html | 16
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/tommath_rational.html | 2
   branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rounding.html | 2
   branches/release/libs/multiprecision/doc/html/index.html | 13 +
   branches/release/libs/multiprecision/doc/multiprecision.qbk | 309 +++++++++++++++++++++++++++-
   branches/release/libs/multiprecision/performance/performance_test.cpp | 4
   branches/release/libs/multiprecision/test/Jamfile.v2 | 431 ++++++++-------------------------------
   branches/release/libs/multiprecision/test/concepts/number_concept_check.cpp | 13 +
   branches/release/libs/multiprecision/test/concepts/sf_concept_check_basic.cpp | 13 +
   branches/release/libs/multiprecision/test/concepts/sf_concept_check_bessel.cpp | 13 +
   branches/release/libs/multiprecision/test/concepts/sf_concept_check_elliptic.cpp | 13 +
   branches/release/libs/multiprecision/test/concepts/sf_concept_check_gamma.cpp | 13 +
   branches/release/libs/multiprecision/test/concepts/sf_concept_check_poly.cpp | 13 +
   branches/release/libs/multiprecision/test/coverage/Makefile | 2
   branches/release/libs/multiprecision/test/math/log1p_expm1_test.cpp | 10
   branches/release/libs/multiprecision/test/math/powm1_sqrtp1m1_test.cpp | 10
   branches/release/libs/multiprecision/test/math/test_bessel_i.cpp | 5
   branches/release/libs/multiprecision/test/math/test_bessel_j.cpp | 5
   branches/release/libs/multiprecision/test/math/test_bessel_k.cpp | 5
   branches/release/libs/multiprecision/test/math/test_bessel_y.cpp | 5
   branches/release/libs/multiprecision/test/math/test_beta.cpp | 5
   branches/release/libs/multiprecision/test/math/test_binomial_coeff.cpp | 5
   branches/release/libs/multiprecision/test/math/test_carlson.cpp | 5
   branches/release/libs/multiprecision/test/math/test_cbrt.cpp | 5
   branches/release/libs/multiprecision/test/math/test_digamma.cpp | 5
   branches/release/libs/multiprecision/test/math/test_ellint_1.cpp | 5
   branches/release/libs/multiprecision/test/math/test_ellint_2.cpp | 5
   branches/release/libs/multiprecision/test/math/test_ellint_3.cpp | 5
   branches/release/libs/multiprecision/test/math/test_erf.cpp | 5
   branches/release/libs/multiprecision/test/math/test_expint.cpp | 5
   branches/release/libs/multiprecision/test/math/test_gamma.cpp | 5
   branches/release/libs/multiprecision/test/math/test_hermite.cpp | 5
   branches/release/libs/multiprecision/test/math/test_ibeta.cpp | 5
   branches/release/libs/multiprecision/test/math/test_ibeta_2.cpp | 5
   branches/release/libs/multiprecision/test/math/test_ibeta_3.cpp | 5
   branches/release/libs/multiprecision/test/math/test_ibeta_4.cpp | 5
   branches/release/libs/multiprecision/test/math/test_ibeta_inv_1.cpp | 5
   branches/release/libs/multiprecision/test/math/test_ibeta_inv_ab_4.cpp | 5
   branches/release/libs/multiprecision/test/math/test_igamma.cpp | 5
   branches/release/libs/multiprecision/test/math/test_igamma_inv.cpp | 5
   branches/release/libs/multiprecision/test/math/test_igamma_inva.cpp | 5
   branches/release/libs/multiprecision/test/math/test_laguerre.cpp | 5
   branches/release/libs/multiprecision/test/math/test_legendre.cpp | 5
   branches/release/libs/multiprecision/test/math/test_tgamma_ratio.cpp | 5
   branches/release/libs/multiprecision/test/math/test_zeta.cpp | 5
   branches/release/libs/multiprecision/test/test.hpp | 12 +
   branches/release/libs/multiprecision/test/test_acos.cpp | 10
   branches/release/libs/multiprecision/test/test_arithmetic_mpfr_50.cpp | 1
   branches/release/libs/multiprecision/test/test_arithmetic_mpz.cpp | 4
   branches/release/libs/multiprecision/test/test_arithmetic_tommath.cpp | 2
   branches/release/libs/multiprecision/test/test_asin.cpp | 10
   branches/release/libs/multiprecision/test/test_atan.cpp | 20 +
   branches/release/libs/multiprecision/test/test_cos.cpp | 10
   branches/release/libs/multiprecision/test/test_cosh.cpp | 10
   branches/release/libs/multiprecision/test/test_cpp_int.cpp | 78 +++++++
   branches/release/libs/multiprecision/test/test_exp.cpp | 10
   branches/release/libs/multiprecision/test/test_float_io.cpp | 13 +
   branches/release/libs/multiprecision/test/test_fpclassify.cpp | 10
   branches/release/libs/multiprecision/test/test_log.cpp | 11
   branches/release/libs/multiprecision/test/test_mixed_cpp_int.cpp | 29 ++
   branches/release/libs/multiprecision/test/test_numeric_limits.cpp | 10
   branches/release/libs/multiprecision/test/test_pow.cpp | 10
   branches/release/libs/multiprecision/test/test_rational_io.cpp | 4
   branches/release/libs/multiprecision/test/test_round.cpp | 29 ++
   branches/release/libs/multiprecision/test/test_sin.cpp | 12
   branches/release/libs/multiprecision/test/test_sinh.cpp | 12
   branches/release/libs/multiprecision/test/test_sqrt.cpp | 12
   branches/release/libs/multiprecision/test/test_tan.cpp | 11
   branches/release/libs/multiprecision/test/test_tanh.cpp | 12
   branches/release/libs/multiprecision/test/ublas_interop/test1.hpp | 6
   branches/release/libs/multiprecision/test/ublas_interop/test2.hpp | 6
   branches/release/libs/multiprecision/test/ublas_interop/test3.hpp | 6
   branches/release/libs/multiprecision/test/ublas_interop/test4.hpp | 6
   branches/release/libs/multiprecision/test/ublas_interop/test5.hpp | 6
   branches/release/libs/multiprecision/test/ublas_interop/test6.hpp | 30 ++
   branches/release/libs/multiprecision/test/ublas_interop/test7.hpp | 7
   branches/release/libs/multiprecision/test/ublas_interop/test71.cpp | 4
   148 files changed, 1647 insertions(+), 883 deletions(-)

Modified: branches/release/boost/multiprecision/concepts/mp_number_archetypes.hpp
==============================================================================
--- branches/release/boost/multiprecision/concepts/mp_number_archetypes.hpp (original)
+++ branches/release/boost/multiprecision/concepts/mp_number_archetypes.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////
-// Copyright 2011 John Maddock. Distributed under the Boost
+// Copyright 2012 John Maddock. 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_
 

Modified: branches/release/boost/multiprecision/cpp_dec_float.hpp
==============================================================================
--- branches/release/boost/multiprecision/cpp_dec_float.hpp (original)
+++ branches/release/boost/multiprecision/cpp_dec_float.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -16,11 +16,18 @@
 #ifndef BOOST_MP_CPP_DEC_FLOAT_BACKEND_HPP
 #define BOOST_MP_CPP_DEC_FLOAT_BACKEND_HPP
 
+#include <boost/config.hpp>
 #include <boost/cstdint.hpp>
+#include <limits>
+#ifndef BOOST_NO_CXX11_HDR_ARRAY
+#include <array>
+#else
 #include <boost/array.hpp>
+#endif
+#include <boost/cstdint.hpp>
 #include <boost/multiprecision/number.hpp>
 #include <boost/multiprecision/detail/big_lanczos.hpp>
-#include <vector>
+#include <boost/multiprecision/detail/dynamic_array.hpp>
 
 //
 // Headers required for Boost.Math integration:
@@ -41,32 +48,6 @@
 
 namespace backends{
 
-namespace detail{
-
-template <class T, class Allocator>
-struct rebind
-{
- typedef typename Allocator::template rebind<T>::other type;
-};
-
-template <class T, unsigned S, class Allocator>
-struct dynamic_array : public std::vector<T, typename rebind<T, Allocator>::type>
-{
- dynamic_array()
- : std::vector<T, typename rebind<T, Allocator>::type>(static_cast<typename std::vector<T, typename rebind<T, Allocator>::type>::size_type>(S), static_cast<T>(0)) {}
-
- T* data()
- {
- return &*this->begin();
- }
- const T* data()const
- {
- return &*this->begin();
- }
-};
-
-}
-
 template <unsigned Digits10, class ExponentType, class Allocator>
 class cpp_dec_float
 {
@@ -74,8 +55,8 @@
    static const boost::int32_t cpp_dec_float_digits10_setting = Digits10;
 
    // We need at least 16-bits in the exponent type to do anything sensible:
- BOOST_STATIC_ASSERT_MSG(sizeof(ExponentType) > 1, "ExponentType is too small.");
    BOOST_STATIC_ASSERT_MSG(boost::is_signed<ExponentType>::value, "ExponentType must be a signed built in integer type.");
+ BOOST_STATIC_ASSERT_MSG(sizeof(ExponentType) > 1, "ExponentType is too small.");
 
 public:
    typedef mpl::list<long long> signed_types;
@@ -124,10 +105,17 @@
    }
    fpclass_type;
 
+#ifndef BOOST_NO_CXX11_HDR_ARRAY
+ typedef typename mpl::if_<is_void<Allocator>,
+ std::array<boost::uint32_t, cpp_dec_float_elem_number>,
+ detail::dynamic_array<boost::uint32_t, cpp_dec_float_elem_number, Allocator>
+ >::type array_type;
+#else
    typedef typename mpl::if_<is_void<Allocator>,
       boost::array<boost::uint32_t, cpp_dec_float_elem_number>,
       detail::dynamic_array<boost::uint32_t, cpp_dec_float_elem_number, Allocator>
>::type array_type;
+#endif
 
    array_type data;
    ExponentType exp;
@@ -1709,12 +1697,9 @@
       // Thus the integer part is zero.
       return zero();
    }
- else if(exp >= static_cast<ExponentType>(Digits10 - 1))
- {
- // The number is too large to resolve the integer part.
- // Thus it is already a pure integer part.
- return *this;
- }
+
+ // Truncate the digits from the decimal part, including guard digits
+ // that do not belong to the integer part.
 
    // Make a local copy.
    cpp_dec_float<Digits10, ExponentType, Allocator> x = *this;
@@ -2206,7 +2191,7 @@
 }
 
 template <unsigned Digits10, class ExponentType, class Allocator>
-cpp_dec_float<Digits10, ExponentType, Allocator>& cpp_dec_float<Digits10, ExponentType, Allocator>::operator = (long double a)
+cpp_dec_float<Digits10, ExponentType, Allocator>& cpp_dec_float<Digits10, ExponentType, Allocator>::operator= (long double a)
 {
    // Christopher Kormanyos's original code used a cast to long long here, but that fails
    // when long double has more digits than a long long.
@@ -2613,26 +2598,23 @@
        cpp_dec_float("1.701411834604692317316873037158841057280000000000000000000000000000000000000000000000000000000000000e38")
    }};
 
- if((p > static_cast<ExponentType>(-128)) && (p < static_cast<ExponentType>(+128)))
+ if((p > static_cast<long long>(-128)) && (p < static_cast<long long>(+128)))
    {
       return p2_data[static_cast<std::size_t>(p + ((p2_data.size() - 1u) / 2u))];
    }
-
- // Compute and return 2^p.
- if(p < static_cast<ExponentType>(0))
- {
- return pow2(static_cast<ExponentType>(-p)).calculate_inv();
- }
- else if(p < static_cast<ExponentType>(std::numeric_limits<boost::uint64_t>::digits))
- {
- const boost::uint64_t p2 = static_cast<boost::uint64_t>(static_cast<boost::uint64_t>(1uLL) << p);
- return cpp_dec_float(p2);
- }
    else
    {
- cpp_dec_float<Digits10, ExponentType, Allocator> t;
- default_ops::detail::pow_imp(t, two(), p, mpl::true_());
- return t;
+ // Compute and return 2^p.
+ if(p < static_cast<long long>(0))
+ {
+ return pow2(static_cast<long long>(-p)).calculate_inv();
+ }
+ else
+ {
+ cpp_dec_float<Digits10, ExponentType, Allocator> t;
+ default_ops::detail::pow_imp(t, two(), p, mpl::true_());
+ return t;
+ }
    }
 }
 
@@ -2805,7 +2787,7 @@
 {
    if(!x.isfinite())
    {
- result = boost::math::policies::raise_rounding_error("boost::multiprecision::trunc<%1%>(%1%)", 0, number<cpp_dec_float<Digits10, ExponentType, Allocator> >(x), 0, boost::math::policies::policy<>()).backend();
+ result = boost::math::policies::raise_rounding_error("boost::multiprecision::trunc<%1%>(%1%)", 0, number<cpp_dec_float<Digits10, ExponentType, Allocator> >(x), number<cpp_dec_float<Digits10, ExponentType, Allocator> >(x), boost::math::policies::policy<>()).backend();
       return;
    }
    else if(x.isint())
@@ -2819,10 +2801,19 @@
 template <unsigned Digits10, class ExponentType, class Allocator, class ArgType>
 inline void eval_ldexp(cpp_dec_float<Digits10, ExponentType, Allocator>& result, const cpp_dec_float<Digits10, ExponentType, Allocator>& x, ArgType e)
 {
- if((static_cast<long long>(e) > (std::numeric_limits<ExponentType>::max)()) || (static_cast<long long>(e) < (std::numeric_limits<ExponentType>::min)()))
+ const long long the_exp = static_cast<long long>(e);
+
+ if((the_exp > (std::numeric_limits<ExponentType>::max)()) || (the_exp < (std::numeric_limits<ExponentType>::min)()))
       BOOST_THROW_EXCEPTION(std::runtime_error(std::string("Exponent value is out of range.")));
+
    result = x;
- result *= cpp_dec_float<Digits10, ExponentType, Allocator>::pow2(e);
+
+ if ((the_exp > static_cast<long long>(-std::numeric_limits<long long>::digits)) && (the_exp < static_cast<long long>(0)))
+ result.div_unsigned_long_long(1ULL << static_cast<long long>(-the_exp));
+ else if((the_exp < static_cast<long long>( std::numeric_limits<long long>::digits)) && (the_exp > static_cast<long long>(0)))
+ result.mul_unsigned_long_long(1ULL << the_exp);
+ else if(the_exp != static_cast<long long>(0))
+ result *= cpp_dec_float<Digits10, ExponentType, Allocator>::pow2(e);
 }
 
 template <unsigned Digits10, class ExponentType, class Allocator>

Modified: branches/release/boost/multiprecision/cpp_int.hpp
==============================================================================
--- branches/release/boost/multiprecision/cpp_int.hpp (original)
+++ branches/release/boost/multiprecision/cpp_int.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -15,7 +15,7 @@
 #include <boost/type_traits/is_integral.hpp>
 #include <boost/type_traits/is_floating_point.hpp>
 #include <boost/multiprecision/cpp_int/cpp_int_config.hpp>
-#include <boost/multiprecision/rational_adapter.hpp>
+#include <boost/multiprecision/rational_adaptor.hpp>
 #include <boost/detail/endian.hpp>
 #include <boost/integer/static_min_max.hpp>
 #include <boost/type_traits/common_type.hpp>
@@ -249,7 +249,11 @@
          // Allocate a new buffer and copy everything over:
          cap = (std::min)((std::max)(cap * 4, new_size), max_limbs);
          limb_pointer pl = allocator().allocate(cap);
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(limbs(), limbs() + size(), stdext::checked_array_iterator<limb_pointer>(pl, cap));
+#else
          std::copy(limbs(), limbs() + size(), pl);
+#endif
          if(!m_internal)
             allocator().deallocate(limbs(), capacity());
          else
@@ -272,7 +276,11 @@
    BOOST_MP_FORCEINLINE cpp_int_base(const cpp_int_base& o) : allocator_type(o), m_limbs(0), m_internal(true)
    {
       resize(o.size(), o.size());
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(o.limbs(), o.limbs() + o.size(), stdext::checked_array_iterator<limb_pointer>(limbs(), size()));
+#else
       std::copy(o.limbs(), o.limbs() + o.size(), limbs());
+#endif
       m_sign = o.m_sign;
    }
 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
@@ -281,7 +289,11 @@
    {
       if(m_internal)
       {
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(o.limbs(), o.limbs() + o.size(), stdext::checked_array_iterator<limb_pointer>(limbs(), size()));
+#else
          std::copy(o.limbs(), o.limbs() + o.size(), limbs());
+#endif
       }
       else
       {
@@ -300,7 +312,11 @@
       m_internal = o.m_internal;
       if(m_internal)
       {
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(o.limbs(), o.limbs() + o.size(), stdext::checked_array_iterator<limb_pointer>(limbs(), size()));
+#else
          std::copy(o.limbs(), o.limbs() + o.size(), limbs());
+#endif
       }
       else
       {
@@ -323,7 +339,11 @@
          static_cast<allocator_type&>(*this) = static_cast<const allocator_type&>(o);
          m_limbs = 0;
          resize(o.size(), o.size());
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(o.limbs(), o.limbs() + o.size(), stdext::checked_array_iterator<limb_pointer>(limbs(), size()));
+#else
          std::copy(o.limbs(), o.limbs() + o.size(), limbs());
+#endif
          m_sign = o.m_sign;
       }
    }
@@ -461,7 +481,11 @@
    BOOST_MP_FORCEINLINE BOOST_CONSTEXPR cpp_int_base() : m_wrapper(limb_type(0u)), m_limbs(1), m_sign(false) {}
    BOOST_MP_FORCEINLINE cpp_int_base(const cpp_int_base& o) BOOST_NOEXCEPT : m_limbs(o.m_limbs), m_sign(o.m_sign)
    {
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(o.limbs(), o.limbs() + o.size(), stdext::checked_array_iterator<limb_pointer>(limbs(), size()));
+#else
       std::copy(o.limbs(), o.limbs() + o.size(), limbs());
+#endif
    }
    //~cpp_int_base() BOOST_NOEXCEPT {}
    void assign(const cpp_int_base& o) BOOST_NOEXCEPT
@@ -469,7 +493,11 @@
       if(this != &o)
       {
          resize(o.size(), o.size());
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(o.limbs(), o.limbs() + o.size(), stdext::checked_array_iterator<limb_pointer>(limbs(), size()));
+#else
          std::copy(o.limbs(), o.limbs() + o.size(), limbs());
+#endif
          m_sign = o.m_sign;
       }
    }
@@ -585,7 +613,11 @@
    BOOST_MP_FORCEINLINE cpp_int_base(const cpp_int_base& o) BOOST_NOEXCEPT
       : m_limbs(o.m_limbs)
    {
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(o.limbs(), o.limbs() + o.size(), stdext::checked_array_iterator<limb_pointer>(limbs(), size()));
+#else
       std::copy(o.limbs(), o.limbs() + o.size(), limbs());
+#endif
    }
    //~cpp_int_base() BOOST_NOEXCEPT {}
    BOOST_MP_FORCEINLINE void assign(const cpp_int_base& o) BOOST_NOEXCEPT
@@ -593,7 +625,11 @@
       if(this != &o)
       {
          resize(o.size(), o.size());
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(o.limbs(), o.limbs() + o.size(), stdext::checked_array_iterator<limb_pointer>(limbs(), size()));
+#else
          std::copy(o.limbs(), o.limbs() + o.size(), limbs());
+#endif
       }
    }
 private:
@@ -1018,7 +1054,11 @@
    {
       // regular non-trivial to non-trivial assign:
       this->resize(other.size(), other.size());
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(other.limbs(), other.limbs() + (std::min)(other.size(), this->size()), stdext::checked_array_iterator<limb_pointer>(this->limbs(), this->size()));
+#else
       std::copy(other.limbs(), other.limbs() + (std::min)(other.size(), this->size()), this->limbs());
+#endif
       this->sign(other.sign());
       this->normalize();
    }
@@ -1093,7 +1133,11 @@
       : base_type()
    {
       this->resize(other.size(), other_size());
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(other.limbs(), other.limbs() + (std::min)(other.size(), this->size()), stdext::checked_array_iterator<limb_pointer>(this->limbs(), this->size()));
+#else
       std::copy(other.limbs(), other.limbs() + (std::min)(other.size(), this->size()), this->limbs());
+#endif
       this->sign(other.sign());
    }
 
@@ -1125,7 +1169,11 @@
       : base_type()
    {
       this->resize(other.size(), other.size());
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(other.limbs(), other.limbs() + (std::min)(other.size(), this->size()), stdext::checked_array_iterator<limb_pointer>(this->limbs(), this->size()));
+#else
       std::copy(other.limbs(), other.limbs() + (std::min)(other.size(), this->size()), this->limbs());
+#endif
       this->sign(other.sign());
    }
 
@@ -1152,7 +1200,11 @@
       operator=(const cpp_int_backend<MinBits2, MaxBits2, SignType2, Allocator2>& other)
    {
       this->resize(other.size(), other.size());
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(other.limbs(), other.limbs() + (std::min)(other.size(), this->size()), stdext::checked_array_iterator<limb_pointer>(this->limbs(), this->size()));
+#else
       std::copy(other.limbs(), other.limbs() + (std::min)(other.size(), this->size()), this->limbs());
+#endif
       this->sign(other.sign());
       return *this;
    }
@@ -1731,7 +1783,7 @@
 
 } // namespace backends
 
-namespace detail{
+namespace default_ops{
 
 template <class Backend>
 struct double_precision_type;
@@ -1768,7 +1820,7 @@
 struct number_category<cpp_int_backend<MinBits, MaxBits, SignType, Checked, Allocator> > : public mpl::int_<number_kind_integer>{};
 
 typedef number<cpp_int_backend<> > cpp_int;
-typedef rational_adapter<cpp_int_backend<> > cpp_rational_backend;
+typedef rational_adaptor<cpp_int_backend<> > cpp_rational_backend;
 typedef number<cpp_rational_backend> cpp_rational;
 
 // Fixed precision unsigned types:
@@ -1785,7 +1837,7 @@
 
 // Over again, but with checking enabled this time:
 typedef number<cpp_int_backend<0, 0, signed_magnitude, checked> > checked_cpp_int;
-typedef rational_adapter<cpp_int_backend<0, 0, signed_magnitude, checked> > checked_cpp_rational_backend;
+typedef rational_adaptor<cpp_int_backend<0, 0, signed_magnitude, checked> > checked_cpp_rational_backend;
 typedef number<cpp_rational_backend> checked_cpp_rational;
 // Fixed precision unsigned types:
 typedef number<cpp_int_backend<128, 128, unsigned_magnitude, checked, void> > checked_uint128_t;

Modified: branches/release/boost/multiprecision/cpp_int/add.hpp
==============================================================================
--- branches/release/boost/multiprecision/cpp_int/add.hpp (original)
+++ branches/release/boost/multiprecision/cpp_int/add.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -55,7 +55,11 @@
       if(!carry)
       {
          if(pa != pr)
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(pa, pa + (pr_end - pr), stdext::checked_array_iterator<limb_type*>(pr, result.size()));
+#else
             std::copy(pa, pa + (pr_end - pr), pr);
+#endif
          break;
       }
       carry += static_cast<double_limb_type>(*pa);
@@ -180,7 +184,11 @@
    }
    // Any remaining digits are the same as those in pa:
    if((x != i) && (pa != pr))
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(pa + i, pa + x, stdext::checked_array_iterator<limb_type*>(pr + i, result.size() - i));
+#else
       std::copy(pa + i, pa + x, pr + i);
+#endif
    BOOST_ASSERT(0 == borrow);
 
    //
@@ -203,14 +211,22 @@
    result.resize(a.size(), a.size());
    typename CppInt1::limb_pointer pr = result.limbs();
    typename CppInt2::const_limb_pointer pa = a.limbs();
- if(*pa > b)
+ if(*pa >= b)
    {
       *pr = *pa - b;
       if(&result != &a)
       {
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(pa + 1, pa + a.size(), stdext::checked_array_iterator<limb_type*>(pr + 1, result.size() - 1));
+#else
          std::copy(pa + 1, pa + a.size(), pr + 1);
+#endif
          result.sign(a.sign());
       }
+ else if((result.size() == 1) && (*pr == 0))
+ {
+ result.sign(false); // zero is unsigned.
+ }
    }
    else if(result.size() == 1)
    {
@@ -230,7 +246,11 @@
       if(&result != &a)
       {
          ++i;
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ std::copy(pa + i, pa + a.size(), stdext::checked_array_iterator<limb_type*>(pr + i, result.size() - i));
+#else
          std::copy(pa + i, pa + a.size(), pr + i);
+#endif
       }
       result.normalize();
       result.sign(a.sign());

Modified: branches/release/boost/multiprecision/cpp_int/comparison.hpp
==============================================================================
--- branches/release/boost/multiprecision/cpp_int/comparison.hpp (original)
+++ branches/release/boost/multiprecision/cpp_int/comparison.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -27,9 +27,16 @@
>::type
    eval_eq(const cpp_int_backend<MinBits, MaxBits, SignType, Checked, Allocator>& a, const cpp_int_backend<MinBits, MaxBits, SignType, Checked, Allocator>& b) BOOST_NOEXCEPT
 {
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ return (a.sign() == b.sign())
+ && (a.size() == b.size())
+ && std::equal(a.limbs(), a.limbs() + a.size(),
+ stdext::checked_array_iterator<cpp_int_backend<MinBits, MaxBits, SignType, Checked, Allocator>::const_limb_pointer>(b.limbs(), b.size()));
+#else
    return (a.sign() == b.sign())
       && (a.size() == b.size())
       && std::equal(a.limbs(), a.limbs() + a.size(), b.limbs());
+#endif
 }
 template <unsigned MinBits1, unsigned MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1, unsigned MinBits2, unsigned MaxBits2, cpp_integer_type SignType2, cpp_int_check_type Checked2, class Allocator2>
 BOOST_MP_FORCEINLINE typename enable_if_c<
@@ -39,9 +46,15 @@
>::type
    eval_eq(const cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1>& a, const cpp_int_backend<MinBits2, MaxBits2, SignType2, Checked2, Allocator2>& b) BOOST_NOEXCEPT
 {
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+ return (a.sign() == b.sign())
+ && (a.size() == b.size())
+ && std::equal(a.limbs(), a.limbs() + a.size(), stdext::checked_array_iterator<cpp_int_backend<MinBits2, MaxBits2, SignType2, Checked2, Allocator2>::const_limb_pointer>(b.limbs(), b.size()));
+#else
    return (a.sign() == b.sign())
       && (a.size() == b.size())
       && std::equal(a.limbs(), a.limbs() + a.size(), b.limbs());
+#endif
 }
 template <unsigned MinBits, unsigned MaxBits, cpp_int_check_type Checked, class Allocator>
 BOOST_MP_FORCEINLINE typename enable_if_c<

Modified: branches/release/boost/multiprecision/cpp_int/divide.hpp
==============================================================================
--- branches/release/boost/multiprecision/cpp_int/divide.hpp (original)
+++ branches/release/boost/multiprecision/cpp_int/divide.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -114,7 +114,9 @@
    if(r_order == 0)
    {
       if(result)
+ {
          *result = px[0] / py[0];
+ }
       r = px[0] % py[0];
       return;
    }
@@ -126,7 +128,9 @@
          (static_cast<double_limb_type>(py[1]) << CppInt1::limb_bits) | py[0]
          : py[0];
       if(result)
+ {
          *result = a / b;
+ }
       r = a % b;
       return;
    }
@@ -332,11 +336,6 @@
    r.sign(false);
    typename CppInt1::limb_pointer pr = r.limbs();
 
- if((r_order == 0) && (*pr == 0))
- {
- // All the limbs in x are zero, so is the result:
- return;
- }
    //
    // check for x < y, try to do this without actually having to
    // do a full comparison:
@@ -446,8 +445,9 @@
       const cpp_int_backend<MinBits3, MaxBits3, SignType3, Checked3, Allocator3>& b)
 {
    cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1> r;
+ bool s = a.sign() != b.sign();
    divide_unsigned_helper(&result, a, b, r);
- result.sign(a.sign() != b.sign());
+ result.sign(s);
 }
 
 template <unsigned MinBits1, unsigned MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1, unsigned MinBits2, unsigned MaxBits2, cpp_integer_type SignType2, cpp_int_check_type Checked2, class Allocator2>
@@ -458,7 +458,9 @@
       limb_type& b)
 {
    cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1> r;
+ bool s = a.sign();
    divide_unsigned_helper(&result, a, b, r);
+ result.sign(s);
 }
 
 template <unsigned MinBits1, unsigned MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1, unsigned MinBits2, unsigned MaxBits2, cpp_integer_type SignType2, cpp_int_check_type Checked2, class Allocator2>
@@ -469,9 +471,9 @@
       signed_limb_type& b)
 {
    cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1> r;
+ bool s = a.sign() != (b < 0);
    divide_unsigned_helper(&result, a, static_cast<limb_type>(std::abs(b)), r);
- if(b < 0)
- result.negate();
+ result.sign(s);
 }
 
 template <unsigned MinBits1, unsigned MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1, unsigned MinBits2, unsigned MaxBits2, cpp_integer_type SignType2, cpp_int_check_type Checked2, class Allocator2>
@@ -514,8 +516,9 @@
       const cpp_int_backend<MinBits2, MaxBits2, SignType2, Checked2, Allocator2>& a,
       const cpp_int_backend<MinBits3, MaxBits3, SignType3, Checked3, Allocator3>& b)
 {
+ bool s = a.sign();
    divide_unsigned_helper(static_cast<cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1>* >(0), a, b, result);
- result.sign(a.sign());
+ result.sign(s);
 }
 
 template <unsigned MinBits1, unsigned MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1, unsigned MinBits2, unsigned MaxBits2, cpp_integer_type SignType2, cpp_int_check_type Checked2, class Allocator2>
@@ -524,7 +527,9 @@
       cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1>& result,
       const cpp_int_backend<MinBits2, MaxBits2, SignType2, Checked2, Allocator2>& a, limb_type b)
 {
+ bool s = a.sign();
    divide_unsigned_helper(static_cast<cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1>* >(0), a, b, result);
+ result.sign(s);
 }
 
 template <unsigned MinBits1, unsigned MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1, unsigned MinBits2, unsigned MaxBits2, cpp_integer_type SignType2, cpp_int_check_type Checked2, class Allocator2>
@@ -534,7 +539,9 @@
       const cpp_int_backend<MinBits2, MaxBits2, SignType2, Checked2, Allocator2>& a,
       signed_limb_type b)
 {
+ bool s = a.sign();
    divide_unsigned_helper(static_cast<cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1>* >(0), a, static_cast<limb_type>(std::abs(b)), result);
+ result.sign(s);
 }
 
 template <unsigned MinBits1, unsigned MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1, unsigned MinBits2, unsigned MaxBits2, cpp_integer_type SignType2, cpp_int_check_type Checked2, class Allocator2>

Modified: branches/release/boost/multiprecision/cpp_int/misc.hpp
==============================================================================
--- branches/release/boost/multiprecision/cpp_int/misc.hpp (original)
+++ branches/release/boost/multiprecision/cpp_int/misc.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -379,9 +379,16 @@
    {
       /* Now u and v are both odd, so diff(u, v) is even.
       Let u = min(u, v), v = diff(u, v)/2. */
- if(u.size() == 1)
+ if(u.size() <= 2)
       {
- v = integer_gcd_reduce(*u.limbs(), v);
+ if(u.size() == 1)
+ v = integer_gcd_reduce(*u.limbs(), v);
+ else
+ {
+ double_limb_type i;
+ i = u.limbs()[0] | (static_cast<double_limb_type>(u.limbs()[1]) << sizeof(limb_type) * CHAR_BIT);
+ v = static_cast<limb_type>(integer_gcd_reduce(i, static_cast<double_limb_type>(v)));
+ }
          break;
       }
       eval_subtract(u, v);
@@ -431,6 +438,7 @@
    if(b.size() == 1)
    {
       eval_gcd(result, a, *b.limbs());
+ return;
    }
 
    int shift;
@@ -579,7 +587,7 @@
    //
    // Find the index of the least significant bit within that limb:
    //
- return find_lsb(*a.limbs(), mpl::int_<CHAR_BIT * sizeof(cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1>::local_limb_type)>());
+ return find_lsb(*a.limbs(), mpl::int_<CHAR_BIT * sizeof(typename cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1>::local_limb_type)>());
 }
 
 #ifdef BOOST_MSVC

Modified: branches/release/boost/multiprecision/detail/default_ops.hpp
==============================================================================
--- branches/release/boost/multiprecision/detail/default_ops.hpp (original)
+++ branches/release/boost/multiprecision/detail/default_ops.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -950,7 +950,7 @@
    int c = eval_fpclassify(a);
    if(c == FP_NAN || c == FP_INFINITE)
    {
- result = boost::math::policies::raise_rounding_error("boost::multiprecision::trunc<%1%>(%1%)", 0, number<T>(a), 0, boost::math::policies::policy<>()).backend();
+ result = boost::math::policies::raise_rounding_error("boost::multiprecision::trunc<%1%>(%1%)", 0, number<T>(a), number<T>(a), boost::math::policies::policy<>()).backend();
       return;
    }
    if(eval_get_sign(a) < 0)
@@ -967,7 +967,7 @@
    int c = eval_fpclassify(a);
    if(c == FP_NAN || c == FP_INFINITE)
    {
- result = boost::math::policies::raise_rounding_error("boost::multiprecision::round<%1%>(%1%)", 0, number<T>(a), 0, boost::math::policies::policy<>()).backend();
+ result = boost::math::policies::raise_rounding_error("boost::multiprecision::round<%1%>(%1%)", 0, number<T>(a), number<T>(a), boost::math::policies::policy<>()).backend();
       return;
    }
    if(eval_get_sign(a) < 0)
@@ -1250,7 +1250,7 @@
    typedef typename detail::expression<tag, A1, A2, A3, A4>::result_type number_type;
    number_type r = trunc(v, pol);
    if((r > (std::numeric_limits<int>::max)()) || r < (std::numeric_limits<int>::min)() || !boost::math::isfinite(v))
- return boost::math::policies::raise_rounding_error("boost::multiprecision::itrunc<%1%>(%1%)", 0, number_type(v), 0, pol).template convert_to<int>();
+ return boost::math::policies::raise_rounding_error("boost::multiprecision::itrunc<%1%>(%1%)", 0, number_type(v), 0, pol);
    return r.template convert_to<int>();
 }
 template <class tag, class A1, class A2, class A3, class A4>
@@ -1263,7 +1263,7 @@
 {
    number<Backend, ExpressionTemplates> r = trunc(v, pol);
    if((r > (std::numeric_limits<int>::max)()) || r < (std::numeric_limits<int>::min)() || !boost::math::isfinite(v))
- return boost::math::policies::raise_rounding_error("boost::multiprecision::itrunc<%1%>(%1%)", 0, v, 0, pol).template convert_to<int>();
+ return boost::math::policies::raise_rounding_error("boost::multiprecision::itrunc<%1%>(%1%)", 0, v, 0, pol);
    return r.template convert_to<int>();
 }
 template <class Backend, expression_template_option ExpressionTemplates>
@@ -1277,7 +1277,7 @@
    typedef typename detail::expression<tag, A1, A2, A3, A4>::result_type number_type;
    number_type r = trunc(v, pol);
    if((r > (std::numeric_limits<long>::max)()) || r < (std::numeric_limits<long>::min)() || !boost::math::isfinite(v))
- return boost::math::policies::raise_rounding_error("boost::multiprecision::ltrunc<%1%>(%1%)", 0, number_type(v), 0L, pol).template convert_to<long>();
+ return boost::math::policies::raise_rounding_error("boost::multiprecision::ltrunc<%1%>(%1%)", 0, number_type(v), 0L, pol);
    return r.template convert_to<long>();
 }
 template <class tag, class A1, class A2, class A3, class A4>
@@ -1290,7 +1290,7 @@
 {
    number<T, ExpressionTemplates> r = trunc(v, pol);
    if((r > (std::numeric_limits<long>::max)()) || r < (std::numeric_limits<long>::min)() || !boost::math::isfinite(v))
- return boost::math::policies::raise_rounding_error("boost::multiprecision::ltrunc<%1%>(%1%)", 0, v, 0L, pol).template convert_to<long>();
+ return boost::math::policies::raise_rounding_error("boost::multiprecision::ltrunc<%1%>(%1%)", 0, v, 0L, pol);
    return r.template convert_to<long>();
 }
 template <class T, expression_template_option ExpressionTemplates>
@@ -1305,7 +1305,7 @@
    typedef typename detail::expression<tag, A1, A2, A3, A4>::result_type number_type;
    number_type r = trunc(v, pol);
    if((r > (std::numeric_limits<long long>::max)()) || r < (std::numeric_limits<long long>::min)() || !boost::math::isfinite(v))
- return boost::math::policies::raise_rounding_error("boost::multiprecision::lltrunc<%1%>(%1%)", 0, number_type(v), 0LL, pol).template convert_to<long long>();
+ return boost::math::policies::raise_rounding_error("boost::multiprecision::lltrunc<%1%>(%1%)", 0, number_type(v), 0LL, pol);
    return r.template convert_to<long long>();
 }
 template <class tag, class A1, class A2, class A3, class A4>
@@ -1318,7 +1318,7 @@
 {
    number<T, ExpressionTemplates> r = trunc(v, pol);
    if((r > (std::numeric_limits<long long>::max)()) || r < (std::numeric_limits<long long>::min)() || !boost::math::isfinite(v))
- return boost::math::policies::raise_rounding_error("boost::multiprecision::lltrunc<%1%>(%1%)", 0, v, 0LL, pol).template convert_to<long long>();
+ return boost::math::policies::raise_rounding_error("boost::multiprecision::lltrunc<%1%>(%1%)", 0, v, 0LL, pol);
    return r.template convert_to<long long>();
 }
 template <class T, expression_template_option ExpressionTemplates>
@@ -1348,7 +1348,7 @@
    typedef typename detail::expression<tag, A1, A2, A3, A4>::result_type number_type;
    number_type r = round(v, pol);
    if((r > (std::numeric_limits<int>::max)()) || r < (std::numeric_limits<int>::min)() || !boost::math::isfinite(v))
- return boost::math::policies::raise_rounding_error("boost::multiprecision::iround<%1%>(%1%)", 0, number_type(v), 0, pol).template convert_to<int>();
+ return boost::math::policies::raise_rounding_error("boost::multiprecision::iround<%1%>(%1%)", 0, number_type(v), 0, pol);
    return r.template convert_to<int>();
 }
 template <class tag, class A1, class A2, class A3, class A4>
@@ -1361,7 +1361,7 @@
 {
    number<T, ExpressionTemplates> r = round(v, pol);
    if((r > (std::numeric_limits<int>::max)()) || r < (std::numeric_limits<int>::min)() || !boost::math::isfinite(v))
- return boost::math::policies::raise_rounding_error("boost::multiprecision::iround<%1%>(%1%)", 0, v, 0, pol).template convert_to<int>();
+ return boost::math::policies::raise_rounding_error("boost::multiprecision::iround<%1%>(%1%)", 0, v, 0, pol);
    return r.template convert_to<int>();
 }
 template <class T, expression_template_option ExpressionTemplates>
@@ -1375,7 +1375,7 @@
    typedef typename detail::expression<tag, A1, A2, A3, A4>::result_type number_type;
    number_type r = round(v, pol);
    if((r > (std::numeric_limits<long>::max)()) || r < (std::numeric_limits<long>::min)() || !boost::math::isfinite(v))
- return boost::math::policies::raise_rounding_error("boost::multiprecision::lround<%1%>(%1%)", 0, number_type(v), 0L, pol).template convert_to<long>();
+ return boost::math::policies::raise_rounding_error("boost::multiprecision::lround<%1%>(%1%)", 0, number_type(v), 0L, pol);
    return r.template convert_to<long>();
 }
 template <class tag, class A1, class A2, class A3, class A4>
@@ -1388,7 +1388,7 @@
 {
    number<T, ExpressionTemplates> r = round(v, pol);
    if((r > (std::numeric_limits<long>::max)()) || r < (std::numeric_limits<long>::min)() || !boost::math::isfinite(v))
- return boost::math::policies::raise_rounding_error("boost::multiprecision::lround<%1%>(%1%)", 0, v, 0L, pol).template convert_to<long>();
+ return boost::math::policies::raise_rounding_error("boost::multiprecision::lround<%1%>(%1%)", 0, v, 0L, pol);
    return r.template convert_to<long>();
 }
 template <class T, expression_template_option ExpressionTemplates>
@@ -1403,7 +1403,7 @@
    typedef typename detail::expression<tag, A1, A2, A3, A4>::result_type number_type;
    number_type r = round(v, pol);
    if((r > (std::numeric_limits<long long>::max)()) || r < (std::numeric_limits<long long>::min)() || !boost::math::isfinite(v))
- return boost::math::policies::raise_rounding_error("boost::multiprecision::iround<%1%>(%1%)", 0, number_type(v), 0LL, pol).template convert_to<long long>();
+ return boost::math::policies::raise_rounding_error("boost::multiprecision::iround<%1%>(%1%)", 0, number_type(v), 0LL, pol);
    return r.template convert_to<long long>();
 }
 template <class tag, class A1, class A2, class A3, class A4>
@@ -1416,7 +1416,7 @@
 {
    number<T, ExpressionTemplates> r = round(v, pol);
    if((r > (std::numeric_limits<long long>::max)()) || r < (std::numeric_limits<long long>::min)() || !boost::math::isfinite(v))
- return boost::math::policies::raise_rounding_error("boost::multiprecision::iround<%1%>(%1%)", 0, v, 0LL, pol).template convert_to<long long>();
+ return boost::math::policies::raise_rounding_error("boost::multiprecision::iround<%1%>(%1%)", 0, v, 0LL, pol);
    return r.template convert_to<long long>();
 }
 template <class T, expression_template_option ExpressionTemplates>

Modified: branches/release/boost/multiprecision/detail/et_ops.hpp
==============================================================================
--- branches/release/boost/multiprecision/detail/et_ops.hpp (original)
+++ branches/release/boost/multiprecision/detail/et_ops.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -148,16 +148,16 @@
 // Repeat operator for negated arguments: propagate the negation to the top level to avoid temporaries:
 //
 template <class B, expression_template_option ET, class Arg1, class Arg2, class Arg3, class Arg4>
-inline detail::expression<detail::minus, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type >
+inline detail::expression<detail::minus, number<B, ET>, Arg1>
    operator + (const number<B, ET>& a, const detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>& b)
 {
- return detail::expression<detail::minus, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type >(a, b.left_ref());
+ return detail::expression<detail::minus, number<B, ET>, Arg1>(a, b.left_ref());
 }
 template <class Arg1, class Arg2, class Arg3, class Arg4, class B, expression_template_option ET>
-inline detail::expression<detail::minus, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type >
+inline detail::expression<detail::minus, number<B, ET>, Arg1>
    operator + (const detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>& a, const number<B, ET>& b)
 {
- return detail::expression<detail::minus, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type >(b, a.left_ref());
+ return detail::expression<detail::minus, number<B, ET>, Arg1>(b, a.left_ref());
 }
 template <class B>
 inline detail::expression<detail::subtract_immediates, number<B, et_on>, number<B, et_on> >
@@ -250,17 +250,17 @@
 // Repeat operator for negated arguments: propagate the negation to the top level to avoid temporaries:
 //
 template <class B, expression_template_option ET, class Arg1, class Arg2, class Arg3, class Arg4>
-inline detail::expression<detail::plus, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type >
+inline detail::expression<detail::plus, number<B, ET>, Arg1>
    operator - (const number<B, ET>& a, const detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>& b)
 {
- return detail::expression<detail::plus, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type >(a, b.left_ref());
+ return detail::expression<detail::plus, number<B, ET>, Arg1>(a, b.left_ref());
 }
 template <class Arg1, class Arg2, class Arg3, class Arg4, class B, expression_template_option ET>
-inline detail::expression<detail::negate, detail::expression<detail::plus, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type > >
+inline detail::expression<detail::negate, detail::expression<detail::plus, number<B, ET>, Arg1> >
    operator - (const detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>& a, const number<B, ET>& b)
 {
- return detail::expression<detail::negate, detail::expression<detail::plus, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type > >(
- detail::expression<detail::plus, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type >(b, a.left_ref()));
+ return detail::expression<detail::negate, detail::expression<detail::plus, number<B, ET>, Arg1> >(
+ detail::expression<detail::plus, number<B, ET>, Arg1>(b, a.left_ref()));
 }
 template <class B>
 inline detail::expression<detail::add_immediates, number<B, et_on>, number<B, et_on> >
@@ -354,18 +354,18 @@
 // Repeat operator for negated arguments: propagate the negation to the top level to avoid temporaries:
 //
 template <class B, expression_template_option ET, class Arg1, class Arg2, class Arg3, class Arg4>
-inline detail::expression<detail::negate, detail::expression<detail::multiplies, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type > >
+inline detail::expression<detail::negate, detail::expression<detail::multiplies, number<B, ET>, Arg1> >
    operator * (const number<B, ET>& a, const detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>& b)
 {
- return detail::expression<detail::negate, detail::expression<detail::multiplies, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type > >(
- detail::expression<detail::multiplies, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type > (a, b.left_ref()));
+ return detail::expression<detail::negate, detail::expression<detail::multiplies, number<B, ET>, Arg1> >(
+ detail::expression<detail::multiplies, number<B, ET>, Arg1> (a, b.left_ref()));
 }
 template <class Arg1, class Arg2, class Arg3, class Arg4, class B, expression_template_option ET>
-inline detail::expression<detail::negate, detail::expression<detail::multiplies, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type > >
+inline detail::expression<detail::negate, detail::expression<detail::multiplies, number<B, ET>, Arg1> >
    operator * (const detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>& a, const number<B, ET>& b)
 {
- return detail::expression<detail::negate, detail::expression<detail::multiplies, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type > >(
- detail::expression<detail::multiplies, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type >(b, a.left_ref()));
+ return detail::expression<detail::negate, detail::expression<detail::multiplies, number<B, ET>, Arg1> >(
+ detail::expression<detail::multiplies, number<B, ET>, Arg1>(b, a.left_ref()));
 }
 template <class B>
 inline detail::expression<detail::negate, detail::expression<detail::multiply_immediates, number<B, et_on>, number<B, et_on> > >
@@ -464,18 +464,18 @@
 // Repeat operator for negated arguments: propagate the negation to the top level to avoid temporaries:
 //
 template <class B, expression_template_option ET, class Arg1, class Arg2, class Arg3, class Arg4>
-inline detail::expression<detail::negate, detail::expression<detail::divides, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type > >
+inline detail::expression<detail::negate, detail::expression<detail::divides, number<B, ET>, Arg1> >
    operator / (const number<B, ET>& a, const detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>& b)
 {
- return detail::expression<detail::negate, detail::expression<detail::divides, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type > >(
- detail::expression<detail::divides, number<B, ET>, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type >(a, b.left_ref()));
+ return detail::expression<detail::negate, detail::expression<detail::divides, number<B, ET>, Arg1> >(
+ detail::expression<detail::divides, number<B, ET>, Arg1>(a, b.left_ref()));
 }
 template <class Arg1, class Arg2, class Arg3, class Arg4, class B, expression_template_option ET>
-inline detail::expression<detail::negate, detail::expression<detail::divides, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type, number<B, ET> > >
+inline detail::expression<detail::negate, detail::expression<detail::divides, Arg1, number<B, ET> > >
    operator / (const detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>& a, const number<B, ET>& b)
 {
- return detail::expression<detail::negate, detail::expression<detail::divides, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type, number<B, ET> > >(
- detail::expression<detail::divides, typename detail::expression<detail::negate, Arg1, Arg2, Arg3, Arg4>::left_type, number<B, ET> >(a.left_ref(), b));
+ return detail::expression<detail::negate, detail::expression<detail::divides, Arg1, number<B, ET> > >(
+ detail::expression<detail::divides, Arg1, number<B, ET> >(a.left_ref(), b));
 }
 template <class B>
 inline detail::expression<detail::negate, detail::expression<detail::divide_immediates, number<B, et_on>, number<B, et_on> > >

Modified: branches/release/boost/multiprecision/detail/integer_ops.hpp
==============================================================================
--- branches/release/boost/multiprecision/detail/integer_ops.hpp (original)
+++ branches/release/boost/multiprecision/detail/integer_ops.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -239,7 +239,7 @@
    return x;
 }
 
-namespace detail{
+namespace default_ops{
 
 //
 // Within powm, we need a type with twice as many digits as the argument type, define
@@ -264,7 +264,7 @@
    using default_ops::eval_right_shift;
 
    typedef typename double_precision_type<Backend>::type double_type;
- typedef typename canonical<unsigned char, double_type>::type ui_type;
+ typedef typename boost::multiprecision::detail::canonical<unsigned char, double_type>::type ui_type;
    
    double_type x, y(a), b(p), t;
    x = ui_type(1u);
@@ -288,9 +288,9 @@
 void eval_powm(Backend& result, const Backend& a, const Backend& p, Integer c)
 {
    typedef typename double_precision_type<Backend>::type double_type;
- typedef typename canonical<unsigned char, double_type>::type ui_type;
- typedef typename canonical<Integer, double_type>::type i1_type;
- typedef typename canonical<Integer, Backend>::type i2_type;
+ typedef typename boost::multiprecision::detail::canonical<unsigned char, double_type>::type ui_type;
+ typedef typename boost::multiprecision::detail::canonical<Integer, double_type>::type i1_type;
+ typedef typename boost::multiprecision::detail::canonical<Integer, Backend>::type i2_type;
 
    using default_ops::eval_bit_test;
    using default_ops::eval_get_sign;
@@ -325,7 +325,7 @@
 typename enable_if<is_unsigned<Integer> >::type eval_powm(Backend& result, const Backend& a, Integer b, const Backend& c)
 {
    typedef typename double_precision_type<Backend>::type double_type;
- typedef typename canonical<unsigned char, double_type>::type ui_type;
+ typedef typename boost::multiprecision::detail::canonical<unsigned char, double_type>::type ui_type;
 
    using default_ops::eval_bit_test;
    using default_ops::eval_get_sign;
@@ -365,9 +365,9 @@
 typename enable_if<is_unsigned<Integer1> >::type eval_powm(Backend& result, const Backend& a, Integer1 b, Integer2 c)
 {
    typedef typename double_precision_type<Backend>::type double_type;
- typedef typename canonical<unsigned char, double_type>::type ui_type;
- typedef typename canonical<Integer1, double_type>::type i1_type;
- typedef typename canonical<Integer2, Backend>::type i2_type;
+ typedef typename boost::multiprecision::detail::canonical<unsigned char, double_type>::type ui_type;
+ typedef typename boost::multiprecision::detail::canonical<Integer1, double_type>::type i1_type;
+ typedef typename boost::multiprecision::detail::canonical<Integer2, Backend>::type i2_type;
 
    using default_ops::eval_bit_test;
    using default_ops::eval_get_sign;
@@ -433,11 +433,11 @@
          is_integral<V>
>
>,
- detail::expression<detail::function, detail::powm_func, T, U, V> >::type
+ detail::expression<detail::function, default_ops::powm_func, T, U, V> >::type
    powm(const T& b, const U& p, const V& mod)
 {
- return detail::expression<detail::function, detail::powm_func, T, U, V>(
- detail::powm_func(), b, p, mod);
+ return detail::expression<detail::function, default_ops::powm_func, T, U, V>(
+ default_ops::powm_func(), b, p, mod);
 }
 
 }} //namespaces

Modified: branches/release/boost/multiprecision/detail/number_base.hpp
==============================================================================
--- branches/release/boost/multiprecision/detail/number_base.hpp (original)
+++ branches/release/boost/multiprecision/detail/number_base.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -283,13 +283,12 @@
    typedef expression<Tag, Arg1, Arg2, Arg3, Arg4> type;
 };
 
-template <class T>
 struct unmentionable
 {
- static void proc(){}
+ unmentionable* proc(){ return 0; }
 };
 
-typedef void (*unmentionable_type)();
+typedef unmentionable* (unmentionable::*unmentionable_type)();
 
 template <class T>
 struct expression_storage
@@ -320,6 +319,7 @@
 {
    typedef mpl::int_<1> arity;
    typedef typename arg_type<Arg1>::type left_type;
+ typedef typename left_type::result_type left_result_type;
    typedef typename left_type::result_type result_type;
    typedef tag tag_type;
 
@@ -330,12 +330,19 @@
    const Arg1& left_ref()const BOOST_NOEXCEPT { return arg; }
 
    static const unsigned depth = left_type::depth + 1;
-
+#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+ explicit operator bool()const
+ {
+ result_type r(*this);
+ return static_cast<bool>(r);
+ }
+#else
    operator unmentionable_type()const
    {
       result_type r(*this);
- return r ? &unmentionable<void>::proc : 0;
+ return r ? &unmentionable::proc : 0;
    }
+#endif
 
 private:
    typename expression_storage<Arg1>::type arg;
@@ -355,10 +362,17 @@
 
    static const unsigned depth = 0;
 
+#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+ explicit operator bool()const
+ {
+ return static_cast<bool>(arg);
+ }
+#else
    operator unmentionable_type()const
    {
- return arg ? &unmentionable<void>::proc : 0;
+ return arg ? &unmentionable::proc : 0;
    }
+#endif
 
 private:
    typename expression_storage<Arg1>::type arg;
@@ -383,12 +397,19 @@
    const Arg1& left_ref()const BOOST_NOEXCEPT { return arg1; }
    const Arg2& right_ref()const BOOST_NOEXCEPT { return arg2; }
 
+#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+ explicit operator bool()const
+ {
+ result_type r(*this);
+ return static_cast<bool>(r);
+ }
+#else
    operator unmentionable_type()const
    {
       result_type r(*this);
- return r ? &unmentionable<void>::proc : 0;
+ return r ? &unmentionable::proc : 0;
    }
-
+#endif
    static const unsigned left_depth = left_type::depth + 1;
    static const unsigned right_depth = right_type::depth + 1;
    static const unsigned depth = left_depth > right_depth ? left_depth : right_depth;
@@ -423,12 +444,19 @@
    const Arg2& middle_ref()const BOOST_NOEXCEPT { return arg2; }
    const Arg3& right_ref()const BOOST_NOEXCEPT { return arg3; }
 
+#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+ explicit operator bool()const
+ {
+ result_type r(*this);
+ return static_cast<bool>(r);
+ }
+#else
    operator unmentionable_type()const
    {
       result_type r(*this);
- return r ? &unmentionable<void>::proc : 0;
+ return r ? &unmentionable::proc : 0;
    }
-
+#endif
    static const unsigned left_depth = left_type::depth + 1;
    static const unsigned middle_depth = middle_type::depth + 1;
    static const unsigned right_depth = right_type::depth + 1;
@@ -472,12 +500,19 @@
    const Arg3& right_middle_ref()const BOOST_NOEXCEPT { return arg3; }
    const Arg4& right_ref()const BOOST_NOEXCEPT { return arg4; }
 
+#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+ explicit operator bool()const
+ {
+ result_type r(*this);
+ return static_cast<bool>(r);
+ }
+#else
    operator unmentionable_type()const
    {
       result_type r(*this);
- return r ? &unmentionable<void>::proc : 0;
+ return r ? &unmentionable::proc : 0;
    }
-
+#endif
    static const unsigned left_depth = left_type::depth + 1;
    static const unsigned left_middle_depth = left_middle_type::depth + 1;
    static const unsigned right_middle_depth = right_middle_type::depth + 1;
@@ -701,6 +736,10 @@
 struct is_unsigned_number<number<Backend, ExpressionTemplates> > : public is_unsigned_number<Backend> {};
 template <class T>
 struct is_signed_number : public mpl::bool_<!is_unsigned_number<T>::value> {};
+template <class T>
+struct is_interval_number : public mpl::false_ {};
+template <class Backend, expression_template_option ExpressionTemplates>
+struct is_interval_number<number<Backend, ExpressionTemplates> > : public is_interval_number<Backend>{};
 
 }} // namespaces
 

Modified: branches/release/boost/multiprecision/mpfr.hpp
==============================================================================
--- branches/release/boost/multiprecision/mpfr.hpp (original)
+++ branches/release/boost/multiprecision/mpfr.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -1192,7 +1192,7 @@
 {
    if(0 == mpfr_number_p(val.data()))
    {
- result = boost::math::policies::raise_rounding_error("boost::multiprecision::trunc<%1%>(%1%)", 0, number<mpfr_float_backend<Digits10, AllocateType> >(val), 0, boost::math::policies::policy<>()).backend();
+ result = boost::math::policies::raise_rounding_error("boost::multiprecision::trunc<%1%>(%1%)", 0, number<mpfr_float_backend<Digits10, AllocateType> >(val), number<mpfr_float_backend<Digits10, AllocateType> >(val), boost::math::policies::policy<>()).backend();
       return;
    }
    mpfr_trunc(result.data(), val.data());
@@ -1246,14 +1246,14 @@
 #endif
 
 template <unsigned Digits10, mpfr_allocation_type AllocateType, class Integer>
-inline typename enable_if<mpl::and_<is_signed<Integer>, mpl::bool_<BOOST_MP_ENABLE_IF_WORKAROUND (sizeof(Integer) <= sizeof(long))> > >::type
+inline typename enable_if<mpl::and_<is_signed<Integer>, mpl::bool_<BOOST_MP_ENABLE_IF_WORKAROUND (sizeof(Integer) <= sizeof(long))> > >::type
    eval_pow(mpfr_float_backend<Digits10, AllocateType>& result, const mpfr_float_backend<Digits10, AllocateType>& b, const Integer& e)
 {
    mpfr_pow_si(result.data(), b.data(), e, GMP_RNDN);
 }
 
 template <unsigned Digits10, mpfr_allocation_type AllocateType, class Integer>
-inline typename enable_if<mpl::and_<is_unsigned<Integer>, mpl::bool_<BOOST_MP_ENABLE_IF_WORKAROUND (sizeof(Integer) <= sizeof(long))> > >::type
+inline typename enable_if<mpl::and_<is_unsigned<Integer>, mpl::bool_<BOOST_MP_ENABLE_IF_WORKAROUND (sizeof(Integer) <= sizeof(long))> > >::type
    eval_pow(mpfr_float_backend<Digits10, AllocateType>& result, const mpfr_float_backend<Digits10, AllocateType>& b, const Integer& e)
 {
    mpfr_pow_ui(result.data(), b.data(), e, GMP_RNDN);
@@ -1392,15 +1392,47 @@
 template <class T> struct constant_euler;
 template <class T> struct constant_catalan;
 
+namespace detail{
+
+ template <class T, int N>
+ struct mpfr_constant_initializer
+ {
+ static void force_instantiate()
+ {
+ init.force_instantiate();
+ }
+ private:
+ struct initializer
+ {
+ initializer()
+ {
+ T::get(mpl::int_<N>());
+ }
+ void force_instantiate()const{}
+ };
+ static const initializer init;
+ };
+
+ template <class T, int N>
+ typename mpfr_constant_initializer<T, N>::initializer const mpfr_constant_initializer<T, N>::init;
+
+}
+
 template<unsigned Digits10, boost::multiprecision::mpfr_allocation_type AllocateType, boost::multiprecision::expression_template_option ExpressionTemplates>
 struct constant_pi<boost::multiprecision::number<boost::multiprecision::mpfr_float_backend<Digits10, AllocateType>, ExpressionTemplates> >
 {
    typedef boost::multiprecision::number<boost::multiprecision::mpfr_float_backend<Digits10, AllocateType>, ExpressionTemplates> result_type;
    template<int N>
- static inline result_type get(const mpl::int_<N>&)
+ static inline const result_type& get(const mpl::int_<N>&)
    {
- result_type result;
- mpfr_const_pi(result.backend().data(), GMP_RNDN);
+ detail::mpfr_constant_initializer<constant_pi<boost::multiprecision::number<boost::multiprecision::mpfr_float_backend<Digits10, AllocateType>, ExpressionTemplates> >, N>::force_instantiate();
+ static result_type result;
+ static bool has_init = false;
+ if(!has_init)
+ {
+ mpfr_const_pi(result.backend().data(), GMP_RNDN);
+ has_init = true;
+ }
       return result;
    }
 };
@@ -1409,10 +1441,16 @@
 {
    typedef boost::multiprecision::number<boost::multiprecision::mpfr_float_backend<Digits10, AllocateType>, ExpressionTemplates> result_type;
    template<int N>
- static inline result_type get(const mpl::int_<N>&)
+ static inline const result_type& get(const mpl::int_<N>&)
    {
- result_type result;
- mpfr_const_log2(result.backend().data(), GMP_RNDN);
+ detail::mpfr_constant_initializer<constant_ln_two<boost::multiprecision::number<boost::multiprecision::mpfr_float_backend<Digits10, AllocateType>, ExpressionTemplates> >, N>::force_instantiate();
+ static result_type result;
+ static bool init = false;
+ if(!init)
+ {
+ mpfr_const_log2(result.backend().data(), GMP_RNDN);
+ init = true;
+ }
       return result;
    }
 };
@@ -1421,10 +1459,16 @@
 {
    typedef boost::multiprecision::number<boost::multiprecision::mpfr_float_backend<Digits10, AllocateType>, ExpressionTemplates> result_type;
    template<int N>
- static inline result_type get(const mpl::int_<N>&)
+ static inline const result_type& get(const mpl::int_<N>&)
    {
- result_type result;
- mpfr_const_euler(result.backend().data(), GMP_RNDN);
+ detail::mpfr_constant_initializer<constant_euler<boost::multiprecision::number<boost::multiprecision::mpfr_float_backend<Digits10, AllocateType>, ExpressionTemplates> >, N>::force_instantiate();
+ static result_type result;
+ static bool init = false;
+ if(!init)
+ {
+ mpfr_const_euler(result.backend().data(), GMP_RNDN);
+ init = true;
+ }
       return result;
    }
 };
@@ -1433,10 +1477,16 @@
 {
    typedef boost::multiprecision::number<boost::multiprecision::mpfr_float_backend<Digits10, AllocateType>, ExpressionTemplates> result_type;
    template<int N>
- static inline result_type get(const mpl::int_<N>&)
+ static inline const result_type& get(const mpl::int_<N>&)
    {
- result_type result;
- mpfr_const_catalan(result.backend().data(), GMP_RNDN);
+ detail::mpfr_constant_initializer<constant_catalan<boost::multiprecision::number<boost::multiprecision::mpfr_float_backend<Digits10, AllocateType>, ExpressionTemplates> >, N>::force_instantiate();
+ static result_type result;
+ static bool init = false;
+ if(!init)
+ {
+ mpfr_const_catalan(result.backend().data(), GMP_RNDN);
+ init = true;
+ }
       return result;
    }
 };

Modified: branches/release/boost/multiprecision/number.hpp
==============================================================================
--- branches/release/boost/multiprecision/number.hpp (original)
+++ branches/release/boost/multiprecision/number.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -44,8 +44,8 @@
    BOOST_MP_FORCEINLINE BOOST_CONSTEXPR number(const number& e) BOOST_NOEXCEPT_IF(noexcept(Backend(static_cast<const Backend&>(std::declval<Backend>())))) : m_backend(e.m_backend){}
    template <class V>
    BOOST_MP_FORCEINLINE number(const V& v, typename enable_if_c<
- (boost::is_arithmetic<V>::value || is_same<std::string, V>::value || is_convertible<V, const char*>::value)
- && !is_convertible<typename detail::canonical<V, Backend>::type, Backend>::value
+ (boost::is_arithmetic<V>::value || is_same<std::string, V>::value || is_convertible<V, const char*>::value)
+ && !is_convertible<typename detail::canonical<V, Backend>::type, Backend>::value
             && !detail::is_restricted_conversion<typename detail::canonical<V, Backend>::type, Backend>::value
>::type* = 0)
    {
@@ -53,16 +53,16 @@
    }
    template <class V>
    BOOST_MP_FORCEINLINE BOOST_CONSTEXPR number(const V& v, typename enable_if_c<
- is_convertible<typename detail::canonical<V, Backend>::type, Backend>::value
+ is_convertible<typename detail::canonical<V, Backend>::type, Backend>::value
             && !detail::is_restricted_conversion<typename detail::canonical<V, Backend>::type, Backend>::value
- >::type* = 0)
+ >::type* = 0)
       : m_backend(canonical_value(v)) {}
    BOOST_MP_FORCEINLINE BOOST_CONSTEXPR number(const number& e, unsigned digits10)
       : m_backend(e.m_backend, digits10){}
    template <class V>
    explicit BOOST_MP_FORCEINLINE number(const V& v, typename enable_if_c<
- (boost::is_arithmetic<V>::value || is_same<std::string, V>::value || is_convertible<V, const char*>::value)
- && !detail::is_explicitly_convertible<typename detail::canonical<V, Backend>::type, Backend>::value
+ (boost::is_arithmetic<V>::value || is_same<std::string, V>::value || is_convertible<V, const char*>::value)
+ && !detail::is_explicitly_convertible<typename detail::canonical<V, Backend>::type, Backend>::value
             && detail::is_restricted_conversion<typename detail::canonical<V, Backend>::type, Backend>::value
>::type* = 0)
    {
@@ -70,10 +70,10 @@
    }
    template <class V>
    explicit BOOST_MP_FORCEINLINE BOOST_CONSTEXPR number(const V& v, typename enable_if_c<
- detail::is_explicitly_convertible<typename detail::canonical<V, Backend>::type, Backend>::value
+ detail::is_explicitly_convertible<typename detail::canonical<V, Backend>::type, Backend>::value
             && (detail::is_restricted_conversion<typename detail::canonical<V, Backend>::type, Backend>::value
                 || !is_convertible<typename detail::canonical<V, Backend>::type, Backend>::value)
- >::type* = 0)
+ >::type* = 0)
       : m_backend(canonical_value(v)) {}
    /*
    //
@@ -88,12 +88,12 @@
    }
    */
    template<expression_template_option ET>
- BOOST_MP_FORCEINLINE BOOST_CONSTEXPR number(const number<Backend, ET>& val)
+ BOOST_MP_FORCEINLINE BOOST_CONSTEXPR number(const number<Backend, ET>& val)
       BOOST_NOEXCEPT_IF(noexcept(Backend(static_cast<const Backend&>(std::declval<Backend>())))) : m_backend(val.backend()) {}
 
    template <class Other, expression_template_option ET>
- BOOST_MP_FORCEINLINE number(const number<Other, ET>& val,
- typename enable_if_c<(boost::is_convertible<Other, Backend>::value && !detail::is_restricted_conversion<Other, Backend>::value)>::type* = 0)
+ BOOST_MP_FORCEINLINE number(const number<Other, ET>& val,
+ typename enable_if_c<(boost::is_convertible<Other, Backend>::value && !detail::is_restricted_conversion<Other, Backend>::value)>::type* = 0)
       BOOST_NOEXCEPT_IF(noexcept(Backend(static_cast<const Other&>(std::declval<Other>()))))
       : m_backend(val.backend()) {}
 
@@ -109,7 +109,7 @@
    }
    template <class Other, expression_template_option ET>
    explicit BOOST_MP_FORCEINLINE number(const number<Other, ET>& val, typename enable_if_c<
- (detail::is_explicitly_convertible<Other, Backend>::value
+ (detail::is_explicitly_convertible<Other, Backend>::value
             && (detail::is_restricted_conversion<Other, Backend>::value || !boost::is_convertible<Other, Backend>::value))
>::type* = 0) BOOST_NOEXCEPT_IF(noexcept(Backend(static_cast<const Other&>(std::declval<Other>()))))
       : m_backend(val.backend()) {}
@@ -142,7 +142,7 @@
       return *this;
    }
 
- BOOST_MP_FORCEINLINE number& operator=(const number& e)
+ BOOST_MP_FORCEINLINE number& operator=(const number& e)
       BOOST_NOEXCEPT_IF(noexcept(std::declval<Backend>() = static_cast<const Backend&>(std::declval<Backend>())))
    {
       m_backend = e.m_backend;
@@ -150,22 +150,22 @@
    }
 
    template <class V>
- BOOST_MP_FORCEINLINE typename enable_if<is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
- operator=(const V& v)
+ BOOST_MP_FORCEINLINE typename enable_if<is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
+ operator=(const V& v)
       BOOST_NOEXCEPT_IF(noexcept(std::declval<Backend>() = static_cast<typename boost::multiprecision::detail::canonical<V, Backend>::type const&>(std::declval<typename boost::multiprecision::detail::canonical<V, Backend>::type>())))
    {
       m_backend = canonical_value(v);
       return *this;
    }
    template <class V>
- BOOST_MP_FORCEINLINE number<Backend, ExpressionTemplates>& assign(const V& v)
+ BOOST_MP_FORCEINLINE number<Backend, ExpressionTemplates>& assign(const V& v)
       BOOST_NOEXCEPT_IF(noexcept(std::declval<Backend>() = static_cast<typename boost::multiprecision::detail::canonical<V, Backend>::type const&>(std::declval<typename boost::multiprecision::detail::canonical<V, Backend>::type>())))
    {
       m_backend = canonical_value(v);
       return *this;
    }
    template <class Other, expression_template_option ET>
- typename disable_if<boost::multiprecision::detail::is_explicitly_convertible<Other, Backend>, number<Backend, ExpressionTemplates>& >::type
+ typename disable_if<boost::multiprecision::detail::is_explicitly_convertible<Other, Backend>, number<Backend, ExpressionTemplates>& >::type
       assign(const number<Other, ET>& v)
    {
       //
@@ -181,7 +181,7 @@
       *this = e;
    }
    template <class tag, class Arg1, class Arg2, class Arg3, class Arg4>
- explicit number(const detail::expression<tag, Arg1, Arg2, Arg3, Arg4>& e,
+ explicit number(const detail::expression<tag, Arg1, Arg2, Arg3, Arg4>& e,
       typename enable_if_c<!is_convertible<typename detail::expression<tag, Arg1, Arg2, Arg3, Arg4>::result_type, self_type>::value
       && boost::multiprecision::detail::is_explicitly_convertible<typename detail::expression<tag, Arg1, Arg2, Arg3, Arg4>::result_type, self_type>::value>::type* = 0)
    {
@@ -189,10 +189,10 @@
    }
 
 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
- BOOST_MP_FORCEINLINE BOOST_CONSTEXPR number(number&& r)
- BOOST_NOEXCEPT_IF(noexcept(Backend(std::declval<Backend>())))
+ BOOST_MP_FORCEINLINE BOOST_CONSTEXPR number(number&& r)
+ BOOST_NOEXCEPT_IF(noexcept(Backend(std::declval<Backend>())))
       : m_backend(static_cast<Backend&&>(r.m_backend)){}
- BOOST_MP_FORCEINLINE number& operator=(number&& r) BOOST_NOEXCEPT
+ BOOST_MP_FORCEINLINE number& operator=(number&& r) BOOST_NOEXCEPT
    {
       m_backend = static_cast<Backend&&>(r.m_backend);
       return *this;
@@ -234,7 +234,7 @@
    }
 
    template <class V>
- typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
+ typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
       operator+=(const V& v)
    {
       using default_ops::eval_add;
@@ -265,7 +265,7 @@
    }
 
    template <class V>
- typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
+ typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
       operator-=(const V& v)
    {
       using default_ops::eval_subtract;
@@ -309,7 +309,7 @@
    }
 
    template <class V>
- typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
+ typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
       operator*=(const V& v)
    {
       using default_ops::eval_multiply;
@@ -340,7 +340,7 @@
       return *this;
    }
    template <class V>
- typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
+ typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
       operator%=(const V& v)
    {
       BOOST_STATIC_ASSERT_MSG(number_category<Backend>::value == number_kind_integer, "The modulus operation is only valid for integer types");
@@ -392,7 +392,7 @@
    {
       BOOST_STATIC_ASSERT_MSG(number_category<Backend>::value == number_kind_integer, "The left-shift operation is only valid for integer types");
       detail::check_shift_range(val, mpl::bool_<(sizeof(V) > sizeof(std::size_t))>(), is_signed<V>());
- eval_left_shift(m_backend, canonical_value(val));
+ eval_left_shift(m_backend, static_cast<std::size_t>(canonical_value(val)));
       return *this;
    }
 
@@ -401,7 +401,7 @@
    {
       BOOST_STATIC_ASSERT_MSG(number_category<Backend>::value == number_kind_integer, "The right-shift operation is only valid for integer types");
       detail::check_shift_range(val, mpl::bool_<(sizeof(V) > sizeof(std::size_t))>(), is_signed<V>());
- eval_right_shift(m_backend, canonical_value(val));
+ eval_right_shift(m_backend, static_cast<std::size_t>(canonical_value(val)));
       return *this;
    }
 
@@ -428,7 +428,7 @@
    }
 
    template <class V>
- BOOST_MP_FORCEINLINE typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
+ BOOST_MP_FORCEINLINE typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
       operator/=(const V& v)
    {
       using default_ops::eval_divide;
@@ -462,7 +462,7 @@
    }
 
    template <class V>
- BOOST_MP_FORCEINLINE typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
+ BOOST_MP_FORCEINLINE typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
       operator&=(const V& v)
    {
       BOOST_STATIC_ASSERT_MSG(number_category<Backend>::value == number_kind_integer, "The bitwise & operation is only valid for integer types");
@@ -497,7 +497,7 @@
    }
 
    template <class V>
- BOOST_MP_FORCEINLINE typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
+ BOOST_MP_FORCEINLINE typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
       operator|=(const V& v)
    {
       BOOST_STATIC_ASSERT_MSG(number_category<Backend>::value == number_kind_integer, "The bitwise | operation is only valid for integer types");
@@ -530,7 +530,7 @@
    }
 
    template <class V>
- BOOST_MP_FORCEINLINE typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
+ BOOST_MP_FORCEINLINE typename enable_if<boost::is_convertible<V, self_type>, number<Backend, ExpressionTemplates>& >::type
       operator^=(const V& v)
    {
       BOOST_STATIC_ASSERT_MSG(number_category<Backend>::value == number_kind_integer, "The bitwise ^ operation is only valid for integer types");
@@ -539,16 +539,6 @@
       return *this;
    }
    //
- // Use in boolean context:
- //
- typedef bool (self_type::*unmentionable_type)()const;
-
- BOOST_MP_FORCEINLINE operator unmentionable_type()const
- {
- return is_zero() ? 0 : &self_type::is_zero;
- }
-
- //
    // swap:
    //
    BOOST_MP_FORCEINLINE void swap(self_type& other) BOOST_NOEXCEPT
@@ -599,11 +589,14 @@
       convert_to_imp(&result);
       return result;
    }
+ //
+ // Use in boolean context, and explicit conversion operators:
+ //
 #ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 7)
+# if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 7)
    //
- // Horrible workaround for gcc-4.6.x which always prefers the non-template
- // operator bool() rather than the template operator when converting to
+ // Horrible workaround for gcc-4.6.x which always prefers the template
+ // operator bool() rather than the non-template operator when converting to
    // an arithmetic type:
    //
    template <class T, typename enable_if<is_same<T, bool>, int>::type = 0>
@@ -612,23 +605,30 @@
       using default_ops::eval_is_zero;
       return !eval_is_zero(backend());
    }
- template <class T, typename disable_if<is_same<T, bool>, int>::type = 0>
+ template <class T, typename disable_if_c<is_same<T, bool>::value || is_void<T>::value, int>::type = 0>
    explicit operator T ()const
    {
       return this->template convert_to<T>();
    }
-#else
+# else
    template <class T>
    explicit operator T()const
    {
       return this->template convert_to<T>();
    }
- explicit operator bool()const
+ BOOST_MP_FORCEINLINE explicit operator bool()const
    {
- using default_ops::eval_is_zero;
- return !eval_is_zero(backend());
+ return !is_zero();
+ }
+ explicit operator void()const {}
+# endif
+#else
+ typedef bool (self_type::*unmentionable_type)()const;
+
+ BOOST_MP_FORCEINLINE operator unmentionable_type()const
+ {
+ return is_zero() ? 0 : &self_type::is_zero;
    }
-#endif
 #endif
    //
    // Default precision:
@@ -1113,7 +1113,7 @@
       BOOST_STATIC_ASSERT_MSG(number_category<Backend>::value == number_kind_integer, "The right shift operation is only valid for integer types");
       using default_ops::eval_right_shift;
       detail::check_shift_range(val, mpl::bool_<(sizeof(Val) > sizeof(std::size_t))>(), is_signed<Val>());
- eval_right_shift(m_backend, canonical_value(e.value()), val);
+ eval_right_shift(m_backend, canonical_value(e.value()), static_cast<std::size_t>(val));
    }
 
    template <class Exp, class Val>
@@ -1122,7 +1122,7 @@
       BOOST_STATIC_ASSERT_MSG(number_category<Backend>::value == number_kind_integer, "The left shift operation is only valid for integer types");
       using default_ops::eval_left_shift;
       detail::check_shift_range(val, mpl::bool_<(sizeof(Val) > sizeof(std::size_t))>(), is_signed<Val>());
- eval_left_shift(m_backend, canonical_value(e.value()), val);
+ eval_left_shift(m_backend, canonical_value(e.value()), static_cast<std::size_t>(val));
    }
 
    template <class Exp, class Val, class Tag>
@@ -1132,7 +1132,7 @@
       using default_ops::eval_right_shift;
       self_type temp(e);
       detail::check_shift_range(val, mpl::bool_<(sizeof(Val) > sizeof(std::size_t))>(), is_signed<Val>());
- eval_right_shift(m_backend, temp.backend(), val);
+ eval_right_shift(m_backend, temp.backend(), static_cast<std::size_t>(val));
    }
 
    template <class Exp, class Val, class Tag>
@@ -1142,7 +1142,7 @@
       using default_ops::eval_left_shift;
       self_type temp(e);
       detail::check_shift_range(val, mpl::bool_<(sizeof(Val) > sizeof(std::size_t))>(), is_signed<Val>());
- eval_left_shift(m_backend, temp.backend(), val);
+ eval_left_shift(m_backend, temp.backend(), static_cast<std::size_t>(val));
    }
 
    template <class Exp>
@@ -1581,7 +1581,7 @@
    {
       typedef typename Exp::left_type child0_type;
       typedef typename Exp::right_type child1_type;
- return contains_self(e.left(), typename child0_type::arity())
+ return contains_self(e.left(), typename child0_type::arity())
          || contains_self(e.right(), typename child1_type::arity());
    }
    template <class Exp>
@@ -1590,7 +1590,7 @@
       typedef typename Exp::left_type child0_type;
       typedef typename Exp::middle_type child1_type;
       typedef typename Exp::right_type child2_type;
- return contains_self(e.left(), typename child0_type::arity())
+ return contains_self(e.left(), typename child0_type::arity())
          || contains_self(e.middle(), typename child1_type::arity())
          || contains_self(e.right(), typename child2_type::arity());
    }
@@ -1613,8 +1613,8 @@
    }
 
    template <class Val>
- BOOST_MP_FORCEINLINE BOOST_CONSTEXPR bool is_realy_self(const Val&)const BOOST_NOEXCEPT{ return false; }
- BOOST_MP_FORCEINLINE BOOST_CONSTEXPR bool is_realy_self(const self_type& v)const BOOST_NOEXCEPT{ return &v == this; }
+ BOOST_MP_FORCEINLINE BOOST_CONSTEXPR bool is_realy_self(const Val&)const BOOST_NOEXCEPT{ return false; }
+ BOOST_MP_FORCEINLINE BOOST_CONSTEXPR bool is_realy_self(const self_type& v)const BOOST_NOEXCEPT{ return &v == this; }
 
    static BOOST_MP_FORCEINLINE BOOST_CONSTEXPR const Backend& function_arg_value(const self_type& v) BOOST_NOEXCEPT { return v.backend(); }
    template <class V>
@@ -1634,10 +1634,10 @@
    template <class B2, expression_template_option ET>
    static BOOST_MP_FORCEINLINE BOOST_CONSTEXPR const B2& canonical_value(const number<B2, ET>& v) BOOST_NOEXCEPT { return v.backend(); }
    template <class V>
- static BOOST_MP_FORCEINLINE BOOST_CONSTEXPR typename disable_if<is_same<typename detail::canonical<V, Backend>::type, V>, typename detail::canonical<V, Backend>::type>::type
+ static BOOST_MP_FORCEINLINE BOOST_CONSTEXPR typename disable_if<is_same<typename detail::canonical<V, Backend>::type, V>, typename detail::canonical<V, Backend>::type>::type
       canonical_value(const V& v) BOOST_NOEXCEPT { return static_cast<typename detail::canonical<V, Backend>::type>(v); }
    template <class V>
- static BOOST_MP_FORCEINLINE BOOST_CONSTEXPR typename enable_if<is_same<typename detail::canonical<V, Backend>::type, V>, const V&>::type
+ static BOOST_MP_FORCEINLINE BOOST_CONSTEXPR typename enable_if<is_same<typename detail::canonical<V, Backend>::type, V>, const V&>::type
       canonical_value(const V& v) BOOST_NOEXCEPT { return v; }
    static BOOST_MP_FORCEINLINE typename detail::canonical<std::string, Backend>::type canonical_value(const std::string& v) BOOST_NOEXCEPT { return v.c_str(); }
 
@@ -1763,26 +1763,12 @@
    return a.denominator();
 }
 
-namespace numeric { namespace ublas {
-//
-// uBlas interoperability:
-//
-template<class V>
-class sparse_vector_element;
-
-template <class V, class Backend, multiprecision::expression_template_option ExpressionTemplates>
-inline bool operator == (const sparse_vector_element<V>& a, const ::boost::multiprecision::number<Backend, ExpressionTemplates>& b)
-{
-typedef typename sparse_vector_element<V>::const_reference ref_type;
- return static_cast<ref_type>(a) == b;
-}
-
-}} // namespaces
-
 #ifdef BOOST_MSVC
 #pragma warning(pop)
 #endif
 
 } // namespaces
 
+#include <boost/multiprecision/detail/ublas_interop.hpp>
+
 #endif

Deleted: branches/release/boost/multiprecision/rational_adapter.hpp
==============================================================================
--- branches/release/boost/multiprecision/rational_adapter.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
+++ (empty file)
@@ -1,302 +0,0 @@
-///////////////////////////////////////////////////////////////
-// Copyright 2011 John Maddock. 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_
-
-#ifndef BOOST_MATH_RATIONAL_ADAPTER_HPP
-#define BOOST_MATH_RATIONAL_ADAPTER_HPP
-
-#include <iostream>
-#include <iomanip>
-#include <sstream>
-#include <boost/cstdint.hpp>
-#include <boost/multiprecision/number.hpp>
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable:4512 4127)
-#endif
-#include <boost/rational.hpp>
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-namespace boost{
-namespace multiprecision{
-namespace backends{
-
-template <class IntBackend>
-struct rational_adapter
-{
- typedef number<IntBackend> integer_type;
- typedef boost::rational<integer_type> rational_type;
-
- typedef typename IntBackend::signed_types signed_types;
- typedef typename IntBackend::unsigned_types unsigned_types;
- typedef typename IntBackend::float_types float_types;
-
- rational_adapter(){}
- rational_adapter(const rational_adapter& o)
- {
- m_value = o.m_value;
- }
- rational_adapter(const IntBackend& o) : m_value(o) {}
-
- template <class U>
- rational_adapter(const U& u, typename enable_if_c<is_convertible<U, IntBackend>::value>::type* = 0)
- : m_value(IntBackend(u)){}
- template <class U>
- explicit rational_adapter(const U& u,
- typename enable_if_c<
- boost::multiprecision::detail::is_explicitly_convertible<U, IntBackend>::value && !is_convertible<U, IntBackend>::value
- >::type* = 0)
- : m_value(IntBackend(u)){}
- template <class U>
- typename enable_if_c<(boost::multiprecision::detail::is_explicitly_convertible<U, IntBackend>::value && !is_arithmetic<U>::value), rational_adapter&>::type operator = (const U& u)
- {
- m_value = IntBackend(u);
- }
-
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
- rational_adapter(rational_adapter&& o) : m_value(o.m_value) {}
- rational_adapter(IntBackend&& o) : m_value(o) {}
- rational_adapter& operator = (rational_adapter&& o)
- {
- m_value = static_cast<rational_type&&>(o.m_value);
- return *this;
- }
-#endif
- rational_adapter& operator = (const rational_adapter& o)
- {
- m_value = o.m_value;
- return *this;
- }
- rational_adapter& operator = (const IntBackend& o)
- {
- m_value = o;
- return *this;
- }
- template <class Int>
- typename enable_if<is_integral<Int>, rational_adapter&>::type operator = (Int i)
- {
- m_value = i;
- return *this;
- }
- template <class Float>
- typename enable_if<is_floating_point<Float>, rational_adapter&>::type operator = (Float i)
- {
- int e;
- Float f = std::frexp(i, &e);
- f = std::ldexp(f, std::numeric_limits<Float>::digits);
- e -= std::numeric_limits<Float>::digits;
- integer_type num(f);
- integer_type denom(1u);
- if(e > 0)
- {
- num <<= e;
- }
- else if(e < 0)
- {
- denom <<= -e;
- }
- m_value.assign(num, denom);
- return *this;
- }
- rational_adapter& operator = (const char* s)
- {
- std::string s1;
- multiprecision::number<IntBackend> v1, v2;
- char c;
- bool have_hex = false;
- const char* p = s; // saved for later
-
- while((0 != (c = *s)) && (c == 'x' || c == 'X' || c == '-' || c == '+' || (c >= '0' && c <= '9') || (have_hex && (c >= 'a' && c <= 'f')) || (have_hex && (c >= 'A' && c <= 'F'))))
- {
- if(c == 'x' || c == 'X')
- have_hex = true;
- s1.append(1, c);
- ++s;
- }
- v1.assign(s1);
- s1.erase();
- if(c == '/')
- {
- ++s;
- while((0 != (c = *s)) && (c == 'x' || c == 'X' || c == '-' || c == '+' || (c >= '0' && c <= '9') || (have_hex && (c >= 'a' && c <= 'f')) || (have_hex && (c >= 'A' && c <= 'F'))))
- {
- if(c == 'x' || c == 'X')
- have_hex = true;
- s1.append(1, c);
- ++s;
- }
- v2.assign(s1);
- }
- else
- v2 = 1;
- if(*s)
- {
- BOOST_THROW_EXCEPTION(std::runtime_error(std::string("Could parse the string \"") + p + std::string("\" as a valid rational number.")));
- }
- data().assign(v1, v2);
- return *this;
- }
- void swap(rational_adapter& o)
- {
- std::swap(m_value, o.m_value);
- }
- std::string str(std::streamsize digits, std::ios_base::fmtflags f)const
- {
- //
- // We format the string ourselves so we can match what GMP's mpq type does:
- //
- std::string result = data().numerator().str(digits, f);
- if(data().denominator() != 1)
- {
- result.append(1, '/');
- result.append(data().denominator().str(digits, f));
- }
- return result;
- }
- void negate()
- {
- m_value = -m_value;
- }
- int compare(const rational_adapter& o)const
- {
- return m_value > o.m_value ? 1 : (m_value < o.m_value ? -1 : 0);
- }
- template <class Arithmatic>
- typename enable_if<is_arithmetic<Arithmatic>, int>::type compare(Arithmatic i)const
- {
- return m_value > i ? 1 : (m_value < i ? -1 : 0);
- }
- rational_type& data() { return m_value; }
- const rational_type& data()const { return m_value; }
-private:
- rational_type m_value;
-};
-
-template <class IntBackend>
-inline void eval_add(rational_adapter<IntBackend>& result, const rational_adapter<IntBackend>& o)
-{
- result.data() += o.data();
-}
-template <class IntBackend>
-inline void eval_subtract(rational_adapter<IntBackend>& result, const rational_adapter<IntBackend>& o)
-{
- result.data() -= o.data();
-}
-template <class IntBackend>
-inline void eval_multiply(rational_adapter<IntBackend>& result, const rational_adapter<IntBackend>& o)
-{
- result.data() *= o.data();
-}
-template <class IntBackend>
-inline void eval_divide(rational_adapter<IntBackend>& result, const rational_adapter<IntBackend>& o)
-{
- using default_ops::eval_is_zero;
- if(eval_is_zero(o))
- {
- BOOST_THROW_EXCEPTION(std::overflow_error("Divide by zero."));
- }
- result.data() /= o.data();
-}
-
-template <class R, class IntBackend>
-inline void eval_convert_to(R* result, const rational_adapter<IntBackend>& backend)
-{
- *result = backend.data().numerator().template convert_to<R>();
- *result /= backend.data().denominator().template convert_to<R>();
-}
-
-template <class IntBackend>
-inline bool eval_is_zero(const rational_adapter<IntBackend>& val)
-{
- return eval_is_zero(val.data().numerator().backend());
-}
-template <class IntBackend>
-inline int eval_get_sign(const rational_adapter<IntBackend>& val)
-{
- return eval_get_sign(val.data().numerator().backend());
-}
-
-template<class IntBackend, class V>
-inline void assign_components(rational_adapter<IntBackend>& result, const V& v1, const V& v2)
-{
- result.data().assign(v1, v2);
-}
-
-} // namespace backends
-
-template<class IntBackend>
-struct expression_template_default<backends::rational_adapter<IntBackend> > : public expression_template_default<IntBackend> {};
-
-template<class IntBackend>
-struct number_category<backends::rational_adapter<IntBackend> > : public mpl::int_<number_kind_rational>{};
-
-using boost::multiprecision::backends::rational_adapter;
-
-template <class T>
-struct component_type<rational_adapter<T> >
-{
- typedef number<T> type;
-};
-
-template <class IntBackend, expression_template_option ET>
-inline number<IntBackend, ET> numerator(const number<rational_adapter<IntBackend>, ET>& val)
-{
- return val.backend().data().numerator();
-}
-template <class IntBackend, expression_template_option ET>
-inline number<IntBackend, ET> denominator(const number<rational_adapter<IntBackend>, ET>& val)
-{
- return val.backend().data().denominator();
-}
-
-#ifdef BOOST_NO_SFINAE_EXPR
-
-namespace detail{
-
-template<class U, class IntBackend>
-struct is_explicitly_convertible<U, rational_adapter<IntBackend> > : public is_explicitly_convertible<U, IntBackend> {};
-
-}
-
-#endif
-
-}} // namespaces
-
-
-namespace std{
-
-template <class IntBackend, boost::multiprecision::expression_template_option ExpressionTemplates>
-class numeric_limits<boost::multiprecision::number<boost::multiprecision::rational_adapter<IntBackend>, ExpressionTemplates> > : public std::numeric_limits<boost::multiprecision::number<IntBackend, ExpressionTemplates> >
-{
- typedef std::numeric_limits<boost::multiprecision::number<IntBackend> > base_type;
- typedef boost::multiprecision::number<boost::multiprecision::rational_adapter<IntBackend> > number_type;
-public:
- BOOST_STATIC_CONSTEXPR bool is_integer = false;
- BOOST_STATIC_CONSTEXPR bool is_exact = true;
- BOOST_STATIC_CONSTEXPR number_type (min)() { return (base_type::min)(); }
- BOOST_STATIC_CONSTEXPR number_type (max)() { return (base_type::max)(); }
- BOOST_STATIC_CONSTEXPR number_type lowest() { return -(max)(); }
- BOOST_STATIC_CONSTEXPR number_type epsilon() { return base_type::epsilon(); }
- BOOST_STATIC_CONSTEXPR number_type round_error() { return epsilon() / 2; }
- BOOST_STATIC_CONSTEXPR number_type infinity() { return base_type::infinity(); }
- BOOST_STATIC_CONSTEXPR number_type quiet_NaN() { return base_type::quiet_NaN(); }
- BOOST_STATIC_CONSTEXPR number_type signaling_NaN() { return base_type::signaling_NaN(); }
- BOOST_STATIC_CONSTEXPR number_type denorm_min() { return base_type::denorm_min(); }
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-
-template <class IntBackend, boost::multiprecision::expression_template_option ExpressionTemplates>
-BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::number<boost::multiprecision::rational_adapter<IntBackend>, ExpressionTemplates> >::is_integer;
-template <class IntBackend, boost::multiprecision::expression_template_option ExpressionTemplates>
-BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::number<boost::multiprecision::rational_adapter<IntBackend>, ExpressionTemplates> >::is_exact;
-
-#endif
-
-
-}
-
-#endif

Modified: branches/release/boost/multiprecision/tommath.hpp
==============================================================================
--- branches/release/boost/multiprecision/tommath.hpp (original)
+++ branches/release/boost/multiprecision/tommath.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -7,7 +7,7 @@
 #define BOOST_MATH_MP_TOMMATH_BACKEND_HPP
 
 #include <boost/multiprecision/number.hpp>
-#include <boost/multiprecision/rational_adapter.hpp>
+#include <boost/multiprecision/rational_adaptor.hpp>
 #include <boost/multiprecision/detail/integer_ops.hpp>
 #include <boost/math/special_functions/fpclassify.hpp>
 #include <boost/cstdint.hpp>
@@ -639,7 +639,7 @@
 struct number_category<tommath_int> : public mpl::int_<number_kind_integer>{};
 
 typedef number<tommath_int > tom_int;
-typedef rational_adapter<tommath_int> tommath_rational;
+typedef rational_adaptor<tommath_int> tommath_rational;
 typedef number<tommath_rational> tom_rational;
 
 }} // namespaces

Modified: branches/release/libs/multiprecision/config/Jamfile.v2
==============================================================================
--- branches/release/libs/multiprecision/config/Jamfile.v2 (original)
+++ branches/release/libs/multiprecision/config/Jamfile.v2 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -8,6 +8,7 @@
 
 local gmp_path = [ modules.peek : GMP_PATH ] ;
 local mpfr_path = [ modules.peek : MPFR_PATH ] ;
+local mpfi_path = [ modules.peek : MPFI_PATH ] ;
 local tommath_path = [ modules.peek : TOMMATH_PATH ] ;
 
 project : requirements
@@ -15,12 +16,16 @@
    <include>$(gmp_path)/mpfr
    <include>$(gmp_path)/gmpfrxx
    <include>$(mpfr_path)
+ <include>$(mpfi_path)
+ <include>$(mpfi_path)/src
    <include>$(tommath_path)
    <include>../../..
    <search>$(gmp_path)
    <search>$(mpfr_path)
    <search>$(mpfr_path)/build.vc10/lib/Win32/Debug
    <search>$(tommath_path)
+ <search>$(mpfi_path)
+ <search>$(mpfi_path)/src
    # We set these to make it easier to set up and test GMP and MPFR under Win32:
    <toolset>msvc:<runtime-link>static
    <toolset>msvc:<link>static
@@ -33,14 +38,18 @@
 
 lib gmp ;
 lib mpfr ;
+lib mpfi ;
 
 exe has_gmp : has_gmp.cpp gmp :
       <include>$(gmp_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx ;
 exe has_mpfr : has_mpfr.cpp mpfr gmp :
       <include>$(mpfr_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx <include>$(gmp_path) ;
+exe has_mpfi : has_mpfi.cpp mpfi mpfr gmp :
+ <include>$(mpfr_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx <include>$(gmp_path) ;
 obj has_tommath : has_tommath.cpp :
       <include>$(tommath_path) ;
 
 explicit has_gmp ;
 explicit has_mpfr ;
+explicit has_mpfi ;
 explicit has_tommath ;

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="map/ack.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="indexes/s01.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_indexes">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="boost_multiprecision.indexes"></a><a class="link" href="indexes.html" title="Indexes">Indexes</a>
 </h2></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s01.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s01.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s01.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,10 +22,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../indexes.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s02.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section id975632">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="id983604"></a>Function Index</h3></div></div></div>
-<p><a class="link" href="s01.html#idx_id_0">A</a> <a class="link" href="s01.html#idx_id_1">B</a> <a class="link" href="s01.html#idx_id_2">C</a> <a class="link" href="s01.html#idx_id_3">D</a> <a class="link" href="s01.html#idx_id_4">E</a> <a class="link" href="s01.html#idx_id_5">F</a> <a class="link" href="s01.html#idx_id_7">I</a> <a class="link" href="s01.html#idx_id_8">L</a> <a class="link" href="s01.html#idx_id_9">M</a> <a class="link" href="s01.html#idx_id_12">P</a> <a class="link" href="s01.html#idx_id_13">R</a> <a class="link" href="s01.html#idx_id_14">S</a> <a class="link" href="s01.html#idx_id_15">T</a> <a class="link" href="s01.html#idx_id_17">Z</a></p>
+<a name="id975632"></a>Function Index</h3></div></div></div>
+<p><a class="link" href="s01.html#idx_id_0">A</a> <a class="link" href="s01.html#idx_id_1">B</a> <a class="link" href="s01.html#idx_id_2">C</a> <a class="link" href="s01.html#idx_id_3">D</a> <a class="link" href="s01.html#idx_id_4">E</a> <a class="link" href="s01.html#idx_id_5">F</a> <a class="link" href="s01.html#idx_id_7">I</a> <a class="link" href="s01.html#idx_id_8">L</a> <a class="link" href="s01.html#idx_id_9">M</a> <a class="link" href="s01.html#idx_id_11">O</a> <a class="link" href="s01.html#idx_id_12">P</a> <a class="link" href="s01.html#idx_id_13">R</a> <a class="link" href="s01.html#idx_id_14">S</a> <a class="link" href="s01.html#idx_id_15">T</a> <a class="link" href="s01.html#idx_id_17">V</a> <a class="link" href="s01.html#idx_id_18">Z</a></p>
 <div class="variablelist"><dl class="variablelist">
 <dt>
 <a name="idx_id_0"></a><span class="term">A</span>
@@ -76,16 +76,10 @@
 <dt>
 <a name="idx_id_2"></a><span class="term">C</span>
 </dt>
-<dd><div class="index"><ul class="index" style="list-style-type: none; ">
-<li class="listitem" style="list-style-type: none">
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">compare</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">number</span></a></p></li></ul></div>
-</li>
-<li class="listitem" style="list-style-type: none">
-<p><span class="index-entry-level-0">cpp_dec_float</span></p>
-<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../map/todo.html" title="TODO"><span class="index-entry-level-1">TODO</span></a></p></li></ul></div>
-</li>
-</ul></div></dd>
+</li></ul></div></dd>
 <dt>
 <a name="idx_id_3"></a><span class="term">D</span>
 </dt>
@@ -96,6 +90,7 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/floats/gmp_float.html" title="gmp_float"><span class="index-entry-level-1">gmp_float</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/ints/gmp_int.html" title="gmp_int"><span class="index-entry-level-1">gmp_int</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/rational/gmp_rational.html" title="gmp_rational"><span class="index-entry-level-1">gmp_rational</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/floats/mpfr_float.html" title="mpfr_float"><span class="index-entry-level-1">mpfr_float</span></a></p></li>
 </ul></div>
 </li>
@@ -113,6 +108,10 @@
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">empty</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">eval_acos</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/backendconc.html#boost_multiprecision.ref.backendconc.optional_requirements_on_the_backend_type" title="Table&#160;1.5.&#160;Optional Requirements on the Backend Type"><span class="index-entry-level-1">Optional Requirements on the Backend Type</span></a></p></li></ul></div>
 </li>
@@ -364,6 +363,10 @@
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/primetest.html" title="Primality Testing"><span class="index-entry-level-1">Primality Testing</span></a></p></li></ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">in</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">integer_modulus</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">number</span></a></p></li></ul></div>
 </li>
@@ -405,6 +408,14 @@
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">number</span></a></p></li></ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log_postfix_event</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/misc/logged_adaptor.html" title="logged_adaptor"><span class="index-entry-level-1">logged_adaptor</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log_prefix_event</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/misc/logged_adaptor.html" title="logged_adaptor"><span class="index-entry-level-1">logged_adaptor</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">lround</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">number</span></a></p></li></ul></div>
 </li>
@@ -437,6 +448,13 @@
 </li>
 </ul></div></dd>
 <dt>
+<a name="idx_id_11"></a><span class="term">O</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">overlap</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li></ul></div></dd>
+<dt>
 <a name="idx_id_12"></a><span class="term">P</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
@@ -452,6 +470,10 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">number</span></a></p></li>
 </ul></div>
 </li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">proper_subset</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
 </ul></div></dd>
 <dt>
 <a name="idx_id_13"></a><span class="term">R</span>
@@ -471,10 +493,18 @@
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">singleton</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">str</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">number</span></a></p></li></ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">subset</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">subtract</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/mixed.html" title="Mixed Precision Arithmetic"><span class="index-entry-level-1">Mixed Precision Arithmetic</span></a></p></li>
@@ -494,9 +524,17 @@
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">number</span></a></p></li></ul></div>
 </li></ul></div></dd>
 <dt>
-<a name="idx_id_17"></a><span class="term">Z</span>
+<a name="idx_id_17"></a><span class="term">V</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">value</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">number</span></a></p></li></ul></div>
+</li></ul></div></dd>
+<dt>
+<a name="idx_id_18"></a><span class="term">Z</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">zero</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/floats/gmp_float.html" title="gmp_float"><span class="index-entry-level-1">gmp_float</span></a></p></li>
@@ -505,7 +543,12 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/rational/tommath_rational.html" title="tommath_rational"><span class="index-entry-level-1">tommath_rational</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/ints/tom_int.html" title="tom_int"><span class="index-entry-level-1">tom_int</span></a></p></li>
 </ul></div>
-</li></ul></div></dd>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">zero_in</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
 </dl></div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s02.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s02.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s02.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,13 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s01.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s03.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section id978339">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="id986475"></a>Class Index</h3></div></div></div>
-<p><a class="link" href="s02.html#idx_id_20">C</a> <a class="link" href="s02.html#idx_id_22">E</a> <a class="link" href="s02.html#idx_id_24">G</a> <a class="link" href="s02.html#idx_id_25">I</a> <a class="link" href="s02.html#idx_id_27">M</a> <a class="link" href="s02.html#idx_id_28">N</a> <a class="link" href="s02.html#idx_id_33">T</a></p>
+<a name="id978339"></a>Class Index</h3></div></div></div>
+<p><a class="link" href="s02.html#idx_id_21">C</a> <a class="link" href="s02.html#idx_id_22">D</a> <a class="link" href="s02.html#idx_id_23">E</a> <a class="link" href="s02.html#idx_id_25">G</a> <a class="link" href="s02.html#idx_id_26">I</a> <a class="link" href="s02.html#idx_id_27">L</a> <a class="link" href="s02.html#idx_id_28">M</a> <a class="link" href="s02.html#idx_id_29">N</a> <a class="link" href="s02.html#idx_id_34">T</a></p>
 <div class="variablelist"><dl class="variablelist">
 <dt>
-<a name="idx_id_20"></a><span class="term">C</span>
+<a name="idx_id_21"></a><span class="term">C</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -42,14 +42,18 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_22"></a><span class="term">E</span>
+<a name="idx_id_22"></a><span class="term">D</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/misc/debug_adaptor.html" title="debug_adaptor"><span class="index-entry-level-0">debug_adaptor</span></a></p></li></ul></div></dd>
+<dt>
+<a name="idx_id_23"></a><span class="term">E</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">expression_template_default</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">number</span></a></p></li></ul></div>
 </li></ul></div></dd>
 <dt>
-<a name="idx_id_24"></a><span class="term">G</span>
+<a name="idx_id_25"></a><span class="term">G</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/floats/gmp_float.html" title="gmp_float"><span class="index-entry-level-0">gmp_float</span></a></p></li>
@@ -57,7 +61,7 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/rational/gmp_rational.html" title="gmp_rational"><span class="index-entry-level-0">gmp_rational</span></a></p></li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_25"></a><span class="term">I</span>
+<a name="idx_id_26"></a><span class="term">I</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -90,17 +94,27 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_27"></a><span class="term">M</span>
+<a name="idx_id_27"></a><span class="term">L</span>
 </dt>
-<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/misc/logged_adaptor.html" title="logged_adaptor"><span class="index-entry-level-0">logged_adaptor</span></a></p></li></ul></div></dd>
+<dt>
+<a name="idx_id_28"></a><span class="term">M</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">mpfi_float_backend</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">mpfr_float_backend</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/floats/mpfr_float.html" title="mpfr_float"><span class="index-entry-level-1">mpfr_float</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../ref/mpfr_ref.html" title="mpfr_float_backend"><span class="index-entry-level-1">mpfr_float_backend</span></a></strong></span></p></li>
 </ul></div>
-</li></ul></div></dd>
+</li>
+</ul></div></dd>
 <dt>
-<a name="idx_id_28"></a><span class="term">N</span>
+<a name="idx_id_29"></a><span class="term">N</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-0">number</span></a></p></li>
@@ -110,7 +124,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_33"></a><span class="term">T</span>
+<a name="idx_id_34"></a><span class="term">T</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">tommath_int</span></p>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s03.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s03.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s03.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,13 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s02.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s04.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section id978824">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="id986893"></a>Typedef Index</h3></div></div></div>
-<p><a class="link" href="s03.html#idx_id_38">C</a> <a class="link" href="s03.html#idx_id_43">I</a> <a class="link" href="s03.html#idx_id_44">L</a> <a class="link" href="s03.html#idx_id_45">M</a> <a class="link" href="s03.html#idx_id_50">S</a> <a class="link" href="s03.html#idx_id_51">T</a> <a class="link" href="s03.html#idx_id_52">U</a></p>
+<a name="id978824"></a>Typedef Index</h3></div></div></div>
+<p><a class="link" href="s03.html#idx_id_40">C</a> <a class="link" href="s03.html#idx_id_45">I</a> <a class="link" href="s03.html#idx_id_46">L</a> <a class="link" href="s03.html#idx_id_47">M</a> <a class="link" href="s03.html#idx_id_52">S</a> <a class="link" href="s03.html#idx_id_53">T</a> <a class="link" href="s03.html#idx_id_54">U</a></p>
 <div class="variablelist"><dl class="variablelist">
 <dt>
-<a name="idx_id_38"></a><span class="term">C</span>
+<a name="idx_id_40"></a><span class="term">C</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -100,7 +100,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_43"></a><span class="term">I</span>
+<a name="idx_id_45"></a><span class="term">I</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -125,16 +125,25 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_44"></a><span class="term">L</span>
+<a name="idx_id_46"></a><span class="term">L</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">limb_type</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/ints/cpp_int.html" title="cpp_int"><span class="index-entry-level-1">cpp_int</span></a></p></li></ul></div>
 </li></ul></div></dd>
 <dt>
-<a name="idx_id_45"></a><span class="term">M</span>
+<a name="idx_id_47"></a><span class="term">M</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-0">mpfi_float</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">mpfi_float_1000</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">mpfi_float_50</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
 <li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">mpfr_float</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
@@ -207,7 +216,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_50"></a><span class="term">S</span>
+<a name="idx_id_52"></a><span class="term">S</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -220,7 +229,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_51"></a><span class="term">T</span>
+<a name="idx_id_53"></a><span class="term">T</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/rational/tommath_rational.html" title="tommath_rational"><span class="index-entry-level-0">tommath_rational</span></a></p></li>
@@ -231,7 +240,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_52"></a><span class="term">U</span>
+<a name="idx_id_54"></a><span class="term">U</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s04.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s04.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/indexes/s04.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -21,13 +21,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s03.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a>
 </div>
-<div class="section">
+<div class="section id982055">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="id988985"></a>Index</h3></div></div></div>
-<p><a class="link" href="s04.html#idx_id_54">A</a> <a class="link" href="s04.html#idx_id_55">B</a> <a class="link" href="s04.html#idx_id_56">C</a> <a class="link" href="s04.html#idx_id_57">D</a> <a class="link" href="s04.html#idx_id_58">E</a> <a class="link" href="s04.html#idx_id_59">F</a> <a class="link" href="s04.html#idx_id_60">G</a> <a class="link" href="s04.html#idx_id_61">I</a> <a class="link" href="s04.html#idx_id_62">L</a> <a class="link" href="s04.html#idx_id_63">M</a> <a class="link" href="s04.html#idx_id_64">N</a> <a class="link" href="s04.html#idx_id_65">O</a> <a class="link" href="s04.html#idx_id_66">P</a> <a class="link" href="s04.html#idx_id_67">R</a> <a class="link" href="s04.html#idx_id_68">S</a> <a class="link" href="s04.html#idx_id_69">T</a> <a class="link" href="s04.html#idx_id_70">U</a> <a class="link" href="s04.html#idx_id_71">Z</a></p>
+<a name="id982055"></a>Index</h3></div></div></div>
+<p><a class="link" href="s04.html#idx_id_57">A</a> <a class="link" href="s04.html#idx_id_58">B</a> <a class="link" href="s04.html#idx_id_59">C</a> <a class="link" href="s04.html#idx_id_60">D</a> <a class="link" href="s04.html#idx_id_61">E</a> <a class="link" href="s04.html#idx_id_62">F</a> <a class="link" href="s04.html#idx_id_63">G</a> <a class="link" href="s04.html#idx_id_64">I</a> <a class="link" href="s04.html#idx_id_65">L</a> <a class="link" href="s04.html#idx_id_66">M</a> <a class="link" href="s04.html#idx_id_67">N</a> <a class="link" href="s04.html#idx_id_68">O</a> <a class="link" href="s04.html#idx_id_69">P</a> <a class="link" href="s04.html#idx_id_70">R</a> <a class="link" href="s04.html#idx_id_71">S</a> <a class="link" href="s04.html#idx_id_72">T</a> <a class="link" href="s04.html#idx_id_73">U</a> <a class="link" href="s04.html#idx_id_74">V</a> <a class="link" href="s04.html#idx_id_75">Z</a></p>
 <div class="variablelist"><dl class="variablelist">
 <dt>
-<a name="idx_id_54"></a><span class="term">A</span>
+<a name="idx_id_57"></a><span class="term">A</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -52,7 +52,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_55"></a><span class="term">B</span>
+<a name="idx_id_58"></a><span class="term">B</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -77,7 +77,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_56"></a><span class="term">C</span>
+<a name="idx_id_59"></a><span class="term">C</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -163,7 +163,6 @@
 <li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../tut/floats/cpp_dec_float.html" title="cpp_dec_float"><span class="index-entry-level-1">cpp_dec_float</span></a></strong></span></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/floats/cpp_dec_float.html" title="cpp_dec_float"><span class="index-entry-level-1">cpp_dec_float_100</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/floats/cpp_dec_float.html" title="cpp_dec_float"><span class="index-entry-level-1">cpp_dec_float_50</span></a></p></li>
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../map/todo.html" title="TODO"><span class="index-entry-level-1">TODO</span></a></p></li>
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
@@ -224,7 +223,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_57"></a><span class="term">D</span>
+<a name="idx_id_60"></a><span class="term">D</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -233,9 +232,11 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/floats/gmp_float.html" title="gmp_float"><span class="index-entry-level-1">gmp_float</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/ints/gmp_int.html" title="gmp_int"><span class="index-entry-level-1">gmp_int</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/rational/gmp_rational.html" title="gmp_rational"><span class="index-entry-level-1">gmp_rational</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/floats/mpfr_float.html" title="mpfr_float"><span class="index-entry-level-1">mpfr_float</span></a></p></li>
 </ul></div>
 </li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/misc/debug_adaptor.html" title="debug_adaptor"><span class="index-entry-level-0">debug_adaptor</span></a></p></li>
 <li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">default_precision</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">number</span></a></p></li></ul></div>
@@ -246,10 +247,14 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_58"></a><span class="term">E</span>
+<a name="idx_id_61"></a><span class="term">E</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">empty</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">eval_acos</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/backendconc.html#boost_multiprecision.ref.backendconc.optional_requirements_on_the_backend_type" title="Table&#160;1.5.&#160;Optional Requirements on the Backend Type"><span class="index-entry-level-1">Optional Requirements on the Backend Type</span></a></p></li></ul></div>
 </li>
@@ -490,7 +495,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_59"></a><span class="term">F</span>
+<a name="idx_id_62"></a><span class="term">F</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -503,7 +508,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_60"></a><span class="term">G</span>
+<a name="idx_id_63"></a><span class="term">G</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -539,7 +544,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_61"></a><span class="term">I</span>
+<a name="idx_id_64"></a><span class="term">I</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -547,6 +552,10 @@
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/primetest.html" title="Primality Testing"><span class="index-entry-level-1">Primality Testing</span></a></p></li></ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">in</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">int1024_t</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/ints/cpp_int.html" title="cpp_int"><span class="index-entry-level-1">cpp_int</span></a></p></li></ul></div>
 </li>
@@ -638,7 +647,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_62"></a><span class="term">L</span>
+<a name="idx_id_65"></a><span class="term">L</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -654,6 +663,22 @@
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">number</span></a></p></li></ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">logged_adaptor</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../tut/misc/logged_adaptor.html" title="logged_adaptor"><span class="index-entry-level-1">logged_adaptor</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/misc/logged_adaptor.html" title="logged_adaptor"><span class="index-entry-level-1">log_postfix_event</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/misc/logged_adaptor.html" title="logged_adaptor"><span class="index-entry-level-1">log_prefix_event</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log_postfix_event</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/misc/logged_adaptor.html" title="logged_adaptor"><span class="index-entry-level-1">logged_adaptor</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log_prefix_event</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/misc/logged_adaptor.html" title="logged_adaptor"><span class="index-entry-level-1">logged_adaptor</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">lround</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">number</span></a></p></li></ul></div>
 </li>
@@ -667,7 +692,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_63"></a><span class="term">M</span>
+<a name="idx_id_66"></a><span class="term">M</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -686,6 +711,35 @@
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">mpfi_float</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">data</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">empty</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">in</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float_1000</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float_50</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float_backend</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">overlap</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">proper_subset</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">singleton</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">subset</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">zero_in</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">mpfi_float_1000</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">mpfi_float_50</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">mpfi_float_backend</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">mpfr_float</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/floats/mpfr_float.html" title="mpfr_float"><span class="index-entry-level-1">data</span></a></p></li>
@@ -782,7 +836,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_64"></a><span class="term">N</span>
+<a name="idx_id_67"></a><span class="term">N</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -826,6 +880,7 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">subtract</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">swap</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">trunc</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">value</span></a></p></li>
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
@@ -834,9 +889,10 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_65"></a><span class="term">O</span>
+<a name="idx_id_68"></a><span class="term">O</span>
 </dt>
-<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">Optional Requirements on the Backend Type</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/backendconc.html#boost_multiprecision.ref.backendconc.optional_requirements_on_the_backend_type" title="Table&#160;1.5.&#160;Optional Requirements on the Backend Type"><span class="index-entry-level-1">assign_components</span></a></p></li>
@@ -886,9 +942,14 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/backendconc.html#boost_multiprecision.ref.backendconc.optional_requirements_on_the_backend_type" title="Table&#160;1.5.&#160;Optional Requirements on the Backend Type"><span class="index-entry-level-1">eval_tanh</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/backendconc.html#boost_multiprecision.ref.backendconc.optional_requirements_on_the_backend_type" title="Table&#160;1.5.&#160;Optional Requirements on the Backend Type"><span class="index-entry-level-1">eval_trunc</span></a></p></li>
 </ul></div>
-</li></ul></div></dd>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">overlap</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
 <dt>
-<a name="idx_id_66"></a><span class="term">P</span>
+<a name="idx_id_69"></a><span class="term">P</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -915,9 +976,13 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/primetest.html" title="Primality Testing"><span class="index-entry-level-1">miller_rabin_test</span></a></p></li>
 </ul></div>
 </li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">proper_subset</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_67"></a><span class="term">R</span>
+<a name="idx_id_70"></a><span class="term">R</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -930,10 +995,14 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_68"></a><span class="term">S</span>
+<a name="idx_id_71"></a><span class="term">S</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">singleton</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">static_mpfr_float_100</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/floats/mpfr_float.html" title="mpfr_float"><span class="index-entry-level-1">mpfr_float</span></a></p></li></ul></div>
 </li>
@@ -946,6 +1015,10 @@
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">number</span></a></p></li></ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">subset</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">subtract</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/mixed.html" title="Mixed Precision Arithmetic"><span class="index-entry-level-1">Mixed Precision Arithmetic</span></a></p></li>
@@ -958,15 +1031,12 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_69"></a><span class="term">T</span>
+<a name="idx_id_72"></a><span class="term">T</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">TODO</span></p>
-<div class="index"><ul class="index" style="list-style-type: none; ">
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../map/todo.html" title="TODO"><span class="index-entry-level-1">add</span></a></p></li>
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../map/todo.html" title="TODO"><span class="index-entry-level-1">cpp_dec_float</span></a></p></li>
-</ul></div>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../map/todo.html" title="TODO"><span class="index-entry-level-1">add</span></a></p></li></ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">tommath_int</span></p>
@@ -998,7 +1068,7 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_70"></a><span class="term">U</span>
+<a name="idx_id_73"></a><span class="term">U</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none">
@@ -1019,9 +1089,17 @@
 </li>
 </ul></div></dd>
 <dt>
-<a name="idx_id_71"></a><span class="term">Z</span>
+<a name="idx_id_74"></a><span class="term">V</span>
 </dt>
 <dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">value</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../ref/number.html" title="number"><span class="index-entry-level-1">number</span></a></p></li></ul></div>
+</li></ul></div></dd>
+<dt>
+<a name="idx_id_75"></a><span class="term">Z</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">zero</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/floats/gmp_float.html" title="gmp_float"><span class="index-entry-level-1">gmp_float</span></a></p></li>
@@ -1030,7 +1108,12 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/rational/tommath_rational.html" title="tommath_rational"><span class="index-entry-level-1">tommath_rational</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/ints/tom_int.html" title="tom_int"><span class="index-entry-level-1">tom_int</span></a></p></li>
 </ul></div>
-</li></ul></div></dd>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">zero_in</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../tut/interval/mpfi.html" title="mpfi_float"><span class="index-entry-level-1">mpfi_float</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
 </dl></div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/intro.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/intro.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/intro.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tut.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_intro">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="boost_multiprecision.intro"></a><a class="link" href="intro.html" title="Introduction">Introduction</a>
 </h2></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/map.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/map.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/map.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="perf/rational_performance.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="map/hist.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_map">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="boost_multiprecision.map"></a><a class="link" href="map.html" title="Roadmap">Roadmap</a>
 </h2></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/ack.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/ack.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/ack.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="faq.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../map.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../indexes.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_map_ack">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.map.ack"></a><a class="link" href="ack.html" title="Acknowledgements">Acknowledgements</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/faq.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/faq.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/faq.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="todo.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../map.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ack.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_map_faq">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.map.faq"></a><a class="link" href="faq.html" title="FAQ">FAQ</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/hist.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/hist.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/hist.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,12 +22,42 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../map.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../map.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="todo.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_map_hist">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.map.hist"></a><a class="link" href="hist.html" title="History">History</a>
 </h3></div></div></div>
 <h5>
 <a name="boost_multiprecision.map.hist.h0"></a>
+ <span class="phrase"><a name="boost_multiprecision.map.hist.1_54"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.1_54">1.54</a>
+ </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+ <span class="bold"><strong>Breaking change</strong></span> renamed <code class="computeroutput"><span class="identifier">rational_adapter</span></code> to <code class="computeroutput"><span class="identifier">rational_adaptor</span></code>.
+ </li>
+<li class="listitem">
+ Add support for MPFI.
+ </li>
+<li class="listitem">
+ Add logged_adaptor.
+ </li>
+<li class="listitem">
+ Fixed bug in integer division of <code class="computeroutput"><span class="identifier">cpp_int</span></code>
+ that results in incorrect sign of <code class="computeroutput"><span class="identifier">cpp_int</span></code>
+ when both arguments are small enough to fit in a <code class="computeroutput"><span class="identifier">double_limb_type</span></code>.
+ See 8126.
+ </li>
+<li class="listitem">
+ Fixed bug in subtraction of a single limb in <code class="computeroutput"><span class="identifier">cpp_int</span></code>
+ that results in incorrect value when the result should have a 0 in the
+ last limb: 8133.
+ </li>
+<li class="listitem">
+ Fixed bug in <code class="computeroutput"><span class="identifier">cpp_int</span></code>
+ where division of 0 by something doesn't get zero in the result: 8160.
+ </li>
+</ul></div>
+<h5>
+<a name="boost_multiprecision.map.hist.h1"></a>
         <span class="phrase"><a name="boost_multiprecision.map.hist.1_53"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.1_53">1.53</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -43,7 +73,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="boost_multiprecision.map.hist.h1"></a>
+<a name="boost_multiprecision.map.hist.h2"></a>
         <span class="phrase"><a name="boost_multiprecision.map.hist.post_review_changes"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.post_review_changes">Post
         review changes</a>
       </h5>
@@ -97,7 +127,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="boost_multiprecision.map.hist.h2"></a>
+<a name="boost_multiprecision.map.hist.h3"></a>
         <span class="phrase"><a name="boost_multiprecision.map.hist.pre_review_history"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.pre_review_history">Pre-review
         history</a>
       </h5>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/todo.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/todo.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/map/todo.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="hist.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../map.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="faq.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_map_todo">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.map.todo"></a><a class="link" href="todo.html" title="TODO">TODO</a>
 </h3></div></div></div>
@@ -35,7 +35,7 @@
             Add back-end support for libdecNumber.
           </li>
 <li class="listitem">
- Add an adapter back-end for complex number types.
+ Add an adaptor back-end for complex number types.
           </li>
 <li class="listitem">
             Add a back-end for MPFR interval arithmetic.

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="ref/headers.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="perf/overhead.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_perf">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="boost_multiprecision.perf"></a><a class="link" href="perf.html" title="Performance Comparison">Performance Comparison</a>
 </h2></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/float_performance.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/float_performance.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/float_performance.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="int_real_world.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="integer_performance.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_perf_float_performance">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.perf.float_performance"></a><a class="link" href="float_performance.html" title="Float Algorithm Performance">Float Algorithm
       Performance</a>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/int_real_world.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/int_real_world.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/int_real_world.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="realworld.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="float_performance.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_perf_int_real_world">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.perf.int_real_world"></a><a class="link" href="int_real_world.html" title="Integer Real World Tests">Integer Real
       World Tests</a>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/integer_performance.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/integer_performance.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/integer_performance.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="float_performance.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rational_performance.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_perf_integer_performance">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.perf.integer_performance"></a><a class="link" href="integer_performance.html" title="Integer Algorithm Performance">Integer
       Algorithm Performance</a>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/overhead.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/overhead.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/overhead.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../perf.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="realworld.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_perf_overhead">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.perf.overhead"></a><a class="link" href="overhead.html" title="The Overhead in the Number Class Wrapper">The Overhead in the
       Number Class Wrapper</a>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/rational_performance.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/rational_performance.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/rational_performance.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="integer_performance.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../map.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_perf_rational_performance">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.perf.rational_performance"></a><a class="link" href="rational_performance.html" title="Rational Type Performance">Rational
       Type Performance</a>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/realworld.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/realworld.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/perf/realworld.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="overhead.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="int_real_world.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_perf_realworld">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.perf.realworld"></a><a class="link" href="realworld.html" title="Floating Point Real World Tests">Floating Point Real
       World Tests</a>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tut/mixed.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ref/number.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_ref">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="boost_multiprecision.ref"></a><a class="link" href="ref.html" title="Reference">Reference</a>
 </h2></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/backendconc.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/backendconc.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/backendconc.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="internals.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="headers.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_ref_backendconc">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.ref.backendconc"></a><a class="link" href="backendconc.html" title="Backend Requirements">Backend Requirements</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/cpp_dec_ref.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/cpp_dec_ref.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/cpp_dec_ref.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="mpfr_ref.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="internals.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_ref_cpp_dec_ref">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.ref.cpp_dec_ref"></a><a class="link" href="cpp_dec_ref.html" title="cpp_dec_float">cpp_dec_float</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/cpp_int_ref.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/cpp_int_ref.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/cpp_int_ref.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="number.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="gmp_int_ref.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_ref_cpp_int_ref">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.ref.cpp_int_ref"></a><a class="link" href="cpp_int_ref.html" title="cpp_int">cpp_int</a>
 </h3></div></div></div>
@@ -47,7 +47,7 @@
 <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">expression_template_option</span> <span class="identifier">value</span> <span class="special">=</span> <span class="identifier">et_off</span><span class="special">;</span> <span class="special">};</span>
 
 <span class="keyword">typedef</span> <span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">cpp_int_backend</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span> <span class="identifier">cpp_int</span><span class="special">;</span> <span class="comment">// arbitrary precision integer</span>
-<span class="keyword">typedef</span> <span class="identifier">rational_adapter</span><span class="special">&lt;</span><span class="identifier">cpp_int_backend</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span> <span class="identifier">cpp_rational_backend</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">rational_adaptor</span><span class="special">&lt;</span><span class="identifier">cpp_int_backend</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span> <span class="identifier">cpp_rational_backend</span><span class="special">;</span>
 <span class="keyword">typedef</span> <span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">cpp_rational_backend</span><span class="special">&gt;</span> <span class="identifier">cpp_rational</span><span class="special">;</span> <span class="comment">// arbitrary precision rational number</span>
 
 <span class="comment">// Fixed precision unsigned types:</span>
@@ -64,7 +64,7 @@
 
 <span class="comment">// Over again, but with checking enabled this time:</span>
 <span class="keyword">typedef</span> <span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">cpp_int_backend</span><span class="special">&lt;</span><span class="number">0</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">signed_magnitude</span><span class="special">,</span> <span class="identifier">checked</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">checked_cpp_int</span><span class="special">;</span>
-<span class="keyword">typedef</span> <span class="identifier">rational_adapter</span><span class="special">&lt;</span><span class="identifier">cpp_int_backend</span><span class="special">&lt;</span><span class="number">0</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">signed_magnitude</span><span class="special">,</span> <span class="identifier">checked</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">checked_cpp_rational_backend</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">rational_adaptor</span><span class="special">&lt;</span><span class="identifier">cpp_int_backend</span><span class="special">&lt;</span><span class="number">0</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">signed_magnitude</span><span class="special">,</span> <span class="identifier">checked</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">checked_cpp_rational_backend</span><span class="special">;</span>
 <span class="keyword">typedef</span> <span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">cpp_rational_backend</span><span class="special">&gt;</span> <span class="identifier">checked_cpp_rational</span><span class="special">;</span>
 
 <span class="comment">// Checked fixed precision unsigned types:</span>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/gmp_int_ref.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/gmp_int_ref.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/gmp_int_ref.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="cpp_int_ref.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tom_int_ref.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_ref_gmp_int_ref">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.ref.gmp_int_ref"></a><a class="link" href="gmp_int_ref.html" title="gmp_int">gmp_int</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/headers.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/headers.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/headers.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="backendconc.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../perf.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_ref_headers">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.ref.headers"></a><a class="link" href="headers.html" title="Header File Structure">Header File Structure</a>
 </h3></div></div></div>
@@ -124,12 +124,12 @@
 <tr>
 <td>
                 <p>
- rational_adapter.hpp
+ rational_adaptor.hpp
                 </p>
               </td>
 <td>
                 <p>
- Defines the <code class="computeroutput"><span class="identifier">rational_adapter</span></code>
+ Defines the <code class="computeroutput"><span class="identifier">rational_adaptor</span></code>
                   backend.
                 </p>
               </td>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/internals.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/internals.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/internals.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="cpp_dec_ref.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="backendconc.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_ref_internals">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.ref.internals"></a><a class="link" href="internals.html" title="Internal Support Code">Internal Support
       Code</a>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/mpf_ref.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/mpf_ref.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/mpf_ref.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tom_int_ref.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mpfr_ref.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_ref_mpf_ref">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.ref.mpf_ref"></a><a class="link" href="mpf_ref.html" title="gmp_float">gmp_float</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/mpfr_ref.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/mpfr_ref.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/mpfr_ref.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="mpf_ref.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cpp_dec_ref.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_ref_mpfr_ref">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.ref.mpfr_ref"></a><a class="link" href="mpfr_ref.html" title="mpfr_float_backend">mpfr_float_backend</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/number.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/number.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/number.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../ref.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cpp_int_ref.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_ref_number">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.ref.number"></a><a class="link" href="number.html" title="number">number</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/tom_int_ref.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/tom_int_ref.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/ref/tom_int_ref.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="gmp_int_ref.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mpf_ref.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_ref_tom_int_ref">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.ref.tom_int_ref"></a><a class="link" href="tom_int_ref.html" title="tom_int">tom_int</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="intro.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tut/ints.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="boost_multiprecision.tut"></a><a class="link" href="tut.html" title="Tutorial">Tutorial</a>
 </h2></div></div></div>
@@ -57,13 +57,22 @@
           Evaluation</a></span></dt>
 </dl></dd>
 </dl></dd>
+<dt><span class="section">Interval Number Types</span></dt>
+<dd><dl><dt><span class="section">mpfi_float</span></dt></dl></dd>
 <dt><span class="section">Rational Number Types</span></dt>
 <dd><dl>
 <dt><span class="section">cpp_rational</span></dt>
 <dt><span class="section">gmp_rational</span></dt>
 <dt><span class="section">tommath_rational</span></dt>
 <dt><span class="section">Use With Boost.Rational</span></dt>
-<dt><span class="section">rational_adapter</span></dt>
+<dt><span class="section">rational_adaptor</span></dt>
+</dl></dd>
+<dt><span class="section">Miscellaneous Number Types.</span></dt>
+<dd><dl>
+<dt><span class="section">logged_adaptor</span></dt>
+<dt><span class="section">debug_adaptor</span></dt>
+<dt><span class="section"><a href="tut/misc/visualizers.html">Visual C++
+ Debugger Visualizers</a></span></dt>
 </dl></dd>
 <dt><span class="section"><a href="tut/conversions.html">Constructing and
       Interconverting Between Number Types</a></span></dt>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/conversions.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/conversions.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/conversions.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Multiprecision">
 <link rel="up" href="../tut.html" title="Tutorial">
-<link rel="prev" href="rational/rational_adapter.html" title="rational_adapter">
+<link rel="prev" href="misc/visualizers.html" title="Visual C++ Debugger Visualizers">
 <link rel="next" href="random.html" title="Generating Random Numbers">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,9 +20,9 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="rational/rational_adapter.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="random.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="misc/visualizers.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="random.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_conversions">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.tut.conversions"></a><a class="link" href="conversions.html" title="Constructing and Interconverting Between Number Types">Constructing and
       Interconverting Between Number Types</a>
@@ -171,7 +171,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="rational/rational_adapter.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="random.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="misc/visualizers.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="random.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="ints/egs/bitops.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="floats/cpp_dec_float.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_floats">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.tut.floats"></a><a class="link" href="floats.html" title="Floating Point Numbers">Floating Point Numbers</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/cpp_dec_float.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/cpp_dec_float.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/cpp_dec_float.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../floats.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../floats.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="gmp_float.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_floats_cpp_dec_float">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="boost_multiprecision.tut.floats.cpp_dec_float"></a><a class="link" href="cpp_dec_float.html" title="cpp_dec_float">cpp_dec_float</a>
 </h4></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="mpfr_float.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../floats.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="fp_eg/aos.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_floats_fp_eg">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="boost_multiprecision.tut.floats.fp_eg"></a><a class="link" href="fp_eg.html" title="Examples">Examples</a>
 </h4></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/aos.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/aos.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/aos.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../fp_eg.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_eg.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="jel.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_floats_fp_eg_aos">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="boost_multiprecision.tut.floats.fp_eg.aos"></a><a class="link" href="aos.html" title="Area of Circle">Area of
           Circle</a>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/gi.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/gi.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/gi.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="nd.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_eg.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="poly_eg.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_floats_fp_eg_gi">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="boost_multiprecision.tut.floats.fp_eg.gi"></a><a class="link" href="gi.html" title="Calculating an Integral">Calculating
           an Integral</a>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/jel.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/jel.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/jel.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="aos.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_eg.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nd.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_floats_fp_eg_jel">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="boost_multiprecision.tut.floats.fp_eg.jel"></a><a class="link" href="jel.html" title="Defining a Special Function.">Defining
           a Special Function.</a>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/nd.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/nd.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/nd.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="jel.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_eg.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="gi.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_floats_fp_eg_nd">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="boost_multiprecision.tut.floats.fp_eg.nd"></a><a class="link" href="nd.html" title="Calculating a Derivative">Calculating
           a Derivative</a>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/poly_eg.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/poly_eg.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/poly_eg.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -7,7 +7,7 @@
 <link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Boost.Multiprecision">
 <link rel="up" href="../fp_eg.html" title="Examples">
 <link rel="prev" href="gi.html" title="Calculating an Integral">
-<link rel="next" href="../../rational.html" title="Rational Number Types">
+<link rel="next" href="../../interval.html" title="Interval Number Types">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,9 +20,9 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="gi.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_eg.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../rational.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="gi.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_eg.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../interval.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_floats_fp_eg_poly_eg">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="boost_multiprecision.tut.floats.fp_eg.poly_eg"></a><a class="link" href="poly_eg.html" title="Polynomial Evaluation">Polynomial
           Evaluation</a>
@@ -150,7 +150,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="gi.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_eg.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../rational.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="gi.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_eg.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../interval.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/gmp_float.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/gmp_float.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/gmp_float.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="cpp_dec_float.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../floats.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mpfr_float.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_floats_gmp_float">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="boost_multiprecision.tut.floats.gmp_float"></a><a class="link" href="gmp_float.html" title="gmp_float">gmp_float</a>
 </h4></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/mpfr_float.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/mpfr_float.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/mpfr_float.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="gmp_float.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../floats.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="fp_eg.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_floats_mpfr_float">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="boost_multiprecision.tut.floats.mpfr_float"></a><a class="link" href="mpfr_float.html" title="mpfr_float">mpfr_float</a>
 </h4></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../tut.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ints/cpp_int.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_ints">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.tut.ints"></a><a class="link" href="ints.html" title="Integer Types">Integer Types</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/cpp_int.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/cpp_int.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/cpp_int.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../ints.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ints.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="gmp_int.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_ints_cpp_int">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="boost_multiprecision.tut.ints.cpp_int"></a><a class="link" href="cpp_int.html" title="cpp_int">cpp_int</a>
 </h4></div></div></div>
@@ -50,7 +50,7 @@
 <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">expression_template_option</span> <span class="identifier">value</span> <span class="special">=</span> <span class="identifier">et_off</span><span class="special">;</span> <span class="special">};</span>
 
 <span class="keyword">typedef</span> <span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">cpp_int_backend</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span> <span class="identifier">cpp_int</span><span class="special">;</span> <span class="comment">// arbitrary precision integer</span>
-<span class="keyword">typedef</span> <span class="identifier">rational_adapter</span><span class="special">&lt;</span><span class="identifier">cpp_int_backend</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span> <span class="identifier">cpp_rational_backend</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">rational_adaptor</span><span class="special">&lt;</span><span class="identifier">cpp_int_backend</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span> <span class="identifier">cpp_rational_backend</span><span class="special">;</span>
 <span class="keyword">typedef</span> <span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">cpp_rational_backend</span><span class="special">&gt;</span> <span class="identifier">cpp_rational</span><span class="special">;</span> <span class="comment">// arbitrary precision rational number</span>
 
 <span class="comment">// Fixed precision unsigned types:</span>
@@ -67,7 +67,7 @@
 
 <span class="comment">// Over again, but with checking enabled this time:</span>
 <span class="keyword">typedef</span> <span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">cpp_int_backend</span><span class="special">&lt;</span><span class="number">0</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">signed_magnitude</span><span class="special">,</span> <span class="identifier">checked</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">checked_cpp_int</span><span class="special">;</span>
-<span class="keyword">typedef</span> <span class="identifier">rational_adapter</span><span class="special">&lt;</span><span class="identifier">cpp_int_backend</span><span class="special">&lt;</span><span class="number">0</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">signed_magnitude</span><span class="special">,</span> <span class="identifier">checked</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">checked_cpp_rational_backend</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">rational_adaptor</span><span class="special">&lt;</span><span class="identifier">cpp_int_backend</span><span class="special">&lt;</span><span class="number">0</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">signed_magnitude</span><span class="special">,</span> <span class="identifier">checked</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">checked_cpp_rational_backend</span><span class="special">;</span>
 <span class="keyword">typedef</span> <span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">cpp_rational_backend</span><span class="special">&gt;</span> <span class="identifier">checked_cpp_rational</span><span class="special">;</span>
 
 <span class="comment">// Checked fixed precision unsigned types:</span>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/egs.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/egs.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/egs.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tom_int.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ints.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="egs/factorials.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_ints_egs">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="boost_multiprecision.tut.ints.egs"></a><a class="link" href="egs.html" title="Examples">Examples</a>
 </h4></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/egs/bitops.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/egs/bitops.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/egs/bitops.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="factorials.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../egs.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../floats.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_ints_egs_bitops">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="boost_multiprecision.tut.ints.egs.bitops"></a><a class="link" href="bitops.html" title="Bit Operations">Bit Operations</a>
 </h5></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/egs/factorials.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/egs/factorials.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/egs/factorials.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../egs.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../egs.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="bitops.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_ints_egs_factorials">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="boost_multiprecision.tut.ints.egs.factorials"></a><a class="link" href="factorials.html" title="Factorials">Factorials</a>
 </h5></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/gmp_int.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/gmp_int.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/gmp_int.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="cpp_int.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ints.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tom_int.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_ints_gmp_int">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="boost_multiprecision.tut.ints.gmp_int"></a><a class="link" href="gmp_int.html" title="gmp_int">gmp_int</a>
 </h4></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/tom_int.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/tom_int.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/tom_int.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="gmp_int.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ints.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="egs.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_ints_tom_int">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="boost_multiprecision.tut.ints.tom_int"></a><a class="link" href="tom_int.html" title="tom_int">tom_int</a>
 </h4></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/lits.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/lits.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/lits.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="primetest.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rounding.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_lits">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.tut.lits"></a><a class="link" href="lits.html" title="Literal Types and constexpr Support">Literal Types and <code class="computeroutput"><span class="identifier">constexpr</span></code> Support</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/mixed.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/mixed.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/mixed.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="rounding.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../ref.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_mixed">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.tut.mixed"></a><a class="link" href="mixed.html" title="Mixed Precision Arithmetic">Mixed Precision Arithmetic</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/primetest.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/primetest.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/primetest.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="random.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="lits.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_primetest">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.tut.primetest"></a><a class="link" href="primetest.html" title="Primality Testing">Primality Testing</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/random.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/random.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/random.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="conversions.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="primetest.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_random">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.tut.random"></a><a class="link" href="random.html" title="Generating Random Numbers">Generating Random Numbers</a>
 </h3></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Multiprecision">
 <link rel="up" href="../tut.html" title="Tutorial">
-<link rel="prev" href="floats/fp_eg/poly_eg.html" title="Polynomial Evaluation">
+<link rel="prev" href="interval/mpfi.html" title="mpfi_float">
 <link rel="next" href="rational/cpp_rational.html" title="cpp_rational">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,9 +20,9 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="floats/fp_eg/poly_eg.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rational/cpp_rational.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="interval/mpfi.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rational/cpp_rational.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_rational">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.tut.rational"></a><a class="link" href="rational.html" title="Rational Number Types">Rational Number Types</a>
 </h3></div></div></div>
@@ -31,7 +31,7 @@
 <dt><span class="section">gmp_rational</span></dt>
 <dt><span class="section">tommath_rational</span></dt>
 <dt><span class="section">Use With Boost.Rational</span></dt>
-<dt><span class="section">rational_adapter</span></dt>
+<dt><span class="section">rational_adaptor</span></dt>
 </dl></div>
 <p>
         The following back-ends provide rational number arithmetic:
@@ -178,12 +178,12 @@
 <tr>
 <td>
                 <p>
- <code class="computeroutput"><span class="identifier">rational_adapter</span></code>
+ <code class="computeroutput"><span class="identifier">rational_adaptor</span></code>
                 </p>
               </td>
 <td>
                 <p>
- boost/multiprecision/rational_adapter.hpp
+ boost/multiprecision/rational_adaptor.hpp
                 </p>
               </td>
 <td>
@@ -198,7 +198,7 @@
               </td>
 <td>
                 <p>
- All C++ adapter that allows any integer back-end type to be used
+ All C++ adaptor that allows any integer back-end type to be used
                   as a rational type.
                 </p>
               </td>
@@ -255,7 +255,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="floats/fp_eg/poly_eg.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rational/cpp_rational.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="interval/mpfi.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rational/cpp_rational.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/br.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/br.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/br.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -7,7 +7,7 @@
 <link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Boost.Multiprecision">
 <link rel="up" href="../rational.html" title="Rational Number Types">
 <link rel="prev" href="tommath_rational.html" title="tommath_rational">
-<link rel="next" href="rational_adapter.html" title="rational_adapter">
+<link rel="next" href="rational_adaptor.html" title="rational_adaptor">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,9 +20,9 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="tommath_rational.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rational.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rational_adapter.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="tommath_rational.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rational.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rational_adaptor.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_rational_br">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="boost_multiprecision.tut.rational.br"></a><a class="link" href="br.html" title="Use With Boost.Rational">Use With Boost.Rational</a>
 </h4></div></div></div>
@@ -45,7 +45,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="tommath_rational.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rational.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rational_adapter.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="tommath_rational.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rational.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rational_adaptor.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/cpp_rational.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/cpp_rational.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/cpp_rational.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../rational.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rational.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="gmp_rational.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_rational_cpp_rational">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="boost_multiprecision.tut.rational.cpp_rational"></a><a class="link" href="cpp_rational.html" title="cpp_rational">cpp_rational</a>
 </h4></div></div></div>
@@ -31,7 +31,7 @@
         </p>
 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">multiprecision</span><span class="special">{</span>
 
-<span class="keyword">typedef</span> <span class="identifier">rational_adapter</span><span class="special">&lt;</span><span class="identifier">cpp_int_backend</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span> <span class="identifier">cpp_rational_backend</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">rational_adaptor</span><span class="special">&lt;</span><span class="identifier">cpp_int_backend</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span> <span class="identifier">cpp_rational_backend</span><span class="special">;</span>
 
 <span class="keyword">typedef</span> <span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">cpp_rational_backend</span><span class="special">&gt;</span> <span class="identifier">cpp_rational</span><span class="special">;</span>
 

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/gmp_rational.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/gmp_rational.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/gmp_rational.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="cpp_rational.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rational.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tommath_rational.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_rational_gmp_rational">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="boost_multiprecision.tut.rational.gmp_rational"></a><a class="link" href="gmp_rational.html" title="gmp_rational">gmp_rational</a>
 </h4></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/rational_adapter.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/rational_adapter.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/rational_adapter.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -1,13 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>rational_adapter</title>
+<title>rational_adaptor</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
 <link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Boost.Multiprecision">
 <link rel="up" href="../rational.html" title="Rational Number Types">
 <link rel="prev" href="br.html" title="Use With Boost.Rational">
-<link rel="next" href="../conversions.html" title="Constructing and Interconverting Between Number Types">
+<link rel="next" href="../misc.html" title="Miscellaneous Number Types.">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,11 +20,11 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="br.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rational.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../conversions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="br.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rational.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../misc.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_rational_rational_adaptor">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="boost_multiprecision.tut.rational.rational_adapter"></a><a class="link" href="rational_adapter.html" title="rational_adapter">rational_adapter</a>
+<a name="boost_multiprecision.tut.rational.rational_adaptor"></a><a class="link" href="rational_adaptor.html" title="rational_adaptor">rational_adaptor</a>
 </h4></div></div></div>
 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">multiprecision</span><span class="special">{</span>
 
@@ -34,7 +34,7 @@
 <span class="special">}}</span>
 </pre>
 <p>
- The class template <code class="computeroutput"><span class="identifier">rational_adapter</span></code>
+ The class template <code class="computeroutput"><span class="identifier">rational_adaptor</span></code>
           is a back-end for <code class="computeroutput"><span class="identifier">number</span></code>
           which converts any existing integer back-end into a rational-number back-end.
         </p>
@@ -43,7 +43,7 @@
           the use would be something like:
         </p>
 <pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">MyIntegerBackend</span><span class="special">&gt;</span> <span class="identifier">MyInt</span><span class="special">;</span>
-<span class="keyword">typedef</span> <span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">rational_adapter</span><span class="special">&lt;</span><span class="identifier">MyIntegerBackend</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">MyRational</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">rational_adaptor</span><span class="special">&lt;</span><span class="identifier">MyIntegerBackend</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">MyRational</span><span class="special">;</span>
 
 <span class="identifier">MyRational</span> <span class="identifier">r</span> <span class="special">=</span> <span class="number">2</span><span class="special">;</span>
 <span class="identifier">r</span> <span class="special">/=</span> <span class="number">3</span><span class="special">;</span>
@@ -61,7 +61,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="br.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rational.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../conversions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="br.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rational.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../misc.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/tommath_rational.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/tommath_rational.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rational/tommath_rational.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="gmp_rational.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rational.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="br.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_rational_tommath_rational">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="boost_multiprecision.tut.rational.tommath_rational"></a><a class="link" href="tommath_rational.html" title="tommath_rational">tommath_rational</a>
 </h4></div></div></div>

Modified: branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rounding.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rounding.html (original)
+++ branches/release/libs/multiprecision/doc/html/boost_multiprecision/tut/rounding.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="lits.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tut.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mixed.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section boost_multiprecision_tut_rounding">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_multiprecision.tut.rounding"></a><a class="link" href="rounding.html" title="Rounding Rules for Conversions">Rounding Rules for
       Conversions</a>

Modified: branches/release/libs/multiprecision/doc/html/index.html
==============================================================================
--- branches/release/libs/multiprecision/doc/html/index.html (original)
+++ branches/release/libs/multiprecision/doc/html/index.html 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -72,13 +72,22 @@
           Evaluation</a></span></dt>
 </dl></dd>
 </dl></dd>
+<dt><span class="section">Interval Number Types</span></dt>
+<dd><dl><dt><span class="section">mpfi_float</span></dt></dl></dd>
 <dt><span class="section">Rational Number Types</span></dt>
 <dd><dl>
 <dt><span class="section">cpp_rational</span></dt>
 <dt><span class="section">gmp_rational</span></dt>
 <dt><span class="section">tommath_rational</span></dt>
 <dt><span class="section">Use With Boost.Rational</span></dt>
-<dt><span class="section">rational_adapter</span></dt>
+<dt><span class="section">rational_adaptor</span></dt>
+</dl></dd>
+<dt><span class="section">Miscellaneous Number Types.</span></dt>
+<dd><dl>
+<dt><span class="section">logged_adaptor</span></dt>
+<dt><span class="section">debug_adaptor</span></dt>
+<dt><span class="section"><a href="boost_multiprecision/tut/misc/visualizers.html">Visual C++
+ Debugger Visualizers</a></span></dt>
 </dl></dd>
 <dt><span class="section"><a href="boost_multiprecision/tut/conversions.html">Constructing and
       Interconverting Between Number Types</a></span></dt>
@@ -136,7 +145,7 @@
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: January 14, 2013 at 19:06:40 GMT</small></p></td>
+<td align="left"><p><small>Last revised: March 08, 2013 at 11:50:36 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: branches/release/libs/multiprecision/doc/multiprecision.qbk
==============================================================================
--- branches/release/libs/multiprecision/doc/multiprecision.qbk (original)
+++ branches/release/libs/multiprecision/doc/multiprecision.qbk 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -21,14 +21,17 @@
 [include html4_symbols.qbk]
 [import ../example/gmp_snips.cpp]
 [import ../example/mpfr_snips.cpp]
+[import ../example/mpfi_snips.cpp]
 [import ../example/cpp_dec_float_snips.cpp]
 [import ../example/tommath_snips.cpp]
 [import ../example/cpp_int_snips.cpp]
 [import ../example/random_snips.cpp]
 [import ../example/safe_prime.cpp]
 [import ../example/mixed_integer_arithmetic.cpp]
+[import ../example/logged_adaptor.cpp]
 
 [template mpfr[] [@http://www.mpfr.org MPFR]]
+[template mpfi[] [@http://perso.ens-lyon.fr/nathalie.revol/software.html MPFI]]
 [template gmp[] [@http://gmplib.org GMP]]
 [template mpf_class[] [@http://gmplib.org/manual/C_002b_002b-Interface-Floats.html#C_002b_002b-Interface-Floats mpf_class]]
 [template mpfr_class[] [@http://math.berkeley.edu/~wilken/code/gmpfrxx/ mpfr_class]]
@@ -406,7 +409,7 @@
    { static const expression_template_option value = et_off; };
 
    typedef number<cpp_int_backend<> > cpp_int; // arbitrary precision integer
- typedef rational_adapter<cpp_int_backend<> > cpp_rational_backend;
+ typedef rational_adaptor<cpp_int_backend<> > cpp_rational_backend;
    typedef number<cpp_rational_backend> cpp_rational; // arbitrary precision rational number
 
    // Fixed precision unsigned types:
@@ -423,7 +426,7 @@
 
    // Over again, but with checking enabled this time:
    typedef number<cpp_int_backend<0, 0, signed_magnitude, checked> > checked_cpp_int;
- typedef rational_adapter<cpp_int_backend<0, 0, signed_magnitude, checked> > checked_cpp_rational_backend;
+ typedef rational_adaptor<cpp_int_backend<0, 0, signed_magnitude, checked> > checked_cpp_rational_backend;
    typedef number<cpp_rational_backend> checked_cpp_rational;
 
    // Checked fixed precision unsigned types:
@@ -757,6 +760,7 @@
 [endsect]
 
 [section:mpfr_float mpfr_float]
+
 `#include <boost/multiprecision/mpfr.hpp>`
 
    namespace boost{ namespace multiprecision{
@@ -881,6 +885,143 @@
 
 [endsect]
 
+[section:interval Interval Number Types]
+
+There is one currently only one interval number type supported - [mpfi].
+
+[section:mpfi mpfi_float]
+
+`#include <boost/multiprecision/mpfi.hpp>`
+
+ namespace boost{ namespace multiprecision{
+
+ template <unsigned Digits10>
+ class mpfi_float_backend;
+
+ typedef number<mpfi_float_backend<50> > mpfi_float_50;
+ typedef number<mpfi_float_backend<100> > mpfifloat_100;
+ typedef number<mpfi_float_backend<500> > mpfifloat_500;
+ typedef number<mpfi_float_backend<1000> > mpfi_float_1000;
+ typedef number<mpfi_float_backend<0> > mpfi_float;
+
+ }} // namespaces
+
+The `mpfi_float_backend` type is used in conjunction with `number`: It acts as a thin wrapper around the [mpfi] `mpfi_t`
+to provide an real-number type that is a drop-in replacement for the native C++ floating-point types, but with
+much greater precision and implementing interval arithmetic.
+
+Type `mpfi_float_backend` can be used at fixed precision by specifying a non-zero `Digits10` template parameter, or
+at variable precision by setting the template argument to zero. The typedefs mpfi_float_50, mpfi_float_100,
+mpfi_float_500, mpfi_float_1000 provide arithmetic types at 50, 100, 500 and 1000 decimal digits precision
+respectively. The typedef mpfi_float provides a variable precision type whose precision can be controlled via the
+`number`s member functions.
+
+[note This type only provides `numeric_limits` support when the precision is fixed at compile time.]
+
+As well as the usual conversions from arithmetic and string types, instances of `number<mpfi_float_backend<N> >` are
+copy constructible and assignable from:
+
+* The [mpfi] native type `mpfi_t`.
+* The `number` wrappers around [mpfi] or [mpfr]: `number<mpfi_float_backend<M> >` and `number<mpfr_float<M> >`.
+* There is a two argument constructor taking two `number<mpfr_float<M> >` arguments specifying the interval.
+
+It's also possible to access the underlying `mpfi_t` via the data() member function of `mpfi_float_backend`.
+
+Things you should know when using this type:
+
+* A default constructed `mpfi_float_backend` is set to a NaN (this is the default [mpfi] behavior).
+* No changes are made to [gmp] or [mpfr] global settings, so this type can coexist with existing
+[mpfr] or [gmp] code.
+* The code can equally use [mpir] in place of [gmp] - indeed that is the preferred option on Win32.
+* This backend supports rvalue-references and is move-aware, making instantiations of `number` on this backend move aware.
+* Conversion from a string results in a `std::runtime_error` being thrown if the string can not be interpreted
+as a valid floating point number.
+* Division by zero results in an infinity.
+
+There are some additional non member functions for working on intervals:
+
+ template <unsigned Digits10, expression_template_option ExpressionTemplates>
+ number<mpfr_float_backend<Digits10>, ExpressionTemplates> lower(const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& val);
+
+Returns the lower end of the interval.
+
+ template <unsigned Digits10, expression_template_option ExpressionTemplates>
+ number<mpfr_float_backend<Digits10>, ExpressionTemplates> upper(const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& val);
+
+Returns the upper end of the interval.
+
+ template <unsigned Digits10, expression_template_option ExpressionTemplates>
+ number<mpfr_float_backend<Digits10>, ExpressionTemplates> median(const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& val);
+
+Returns the mid point of the interval.
+
+ template <unsigned Digits10, expression_template_option ExpressionTemplates>
+ number<mpfr_float_backend<Digits10>, ExpressionTemplates> width(const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& val);
+
+Returns the absolute width of the interval.
+
+ template <unsigned Digits10, expression_template_option ExpressionTemplates>
+ number<mpfi_float_backend<Digits10>, ExpressionTemplates> intersect(
+ const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& a,
+ const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& b);
+
+Returns the interval which is the intersection of the ['a] and ['b]. Returns an
+unspecified empty interval if there is no such intersection.
+
+ template <unsigned Digits10, expression_template_option ExpressionTemplates>
+ number<mpfi_float_backend<Digits10>, ExpressionTemplates> hull(
+ const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& a,
+ const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& b);
+
+Returns the interval which is the union of ['a] and ['b].
+
+ template <unsigned Digits10, expression_template_option ExpressionTemplates>
+ bool overlap(const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& a,
+ const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& b);
+
+Returns `true` only if the intervals ['a] and ['b] overlap.
+
+ template <unsigned Digits10, expression_template_option ExpressionTemplates1, expression_template_option ExpressionTemplates2>
+ bool in(const number<mpfr_float_backend<Digits10>, ExpressionTemplates1>& a,
+ const number<mpfi_float_backend<Digits10>, ExpressionTemplates2>& b);
+
+Returns `true` only if point ['a] is contained within the interval ['b].
+
+ template <unsigned Digits10, expression_template_option ExpressionTemplates>
+ bool zero_in(const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& a);
+
+Returns `true` only if the interval ['a] contains the value zero.
+
+ template <unsigned Digits10, expression_template_option ExpressionTemplates>
+ bool subset(const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& a,
+ const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& b);
+
+Returns `true` only if ['a] is a subset of ['b].
+
+ template <unsigned Digits10, expression_template_option ExpressionTemplates>
+ bool proper_subset(const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& a,
+ const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& b);
+
+Returns `true` only if ['a] is a proper subset of ['b].
+
+ template <unsigned Digits10, expression_template_option ExpressionTemplates>
+ bool empty(const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& a);
+
+Returns `true` only if ['a] is an empty interval, equivalent to `upper(a) < lower(a)`.
+
+ template <unsigned Digits10, expression_template_option ExpressionTemplates>
+ bool singleton(const number<mpfi_float_backend<Digits10>, ExpressionTemplates>& a);
+
+Returns `true` if `lower(a) == upper(a)`.
+
+[h5 [mpfi] example:]
+
+[mpfi_eg]
+
+[endsect]
+
+[endsect]
+
 [section:rational Rational Number Types]
 
 The following back-ends provide rational number arithmetic:
@@ -890,7 +1031,7 @@
 [[`cpp_rational`][boost/multiprecision/cpp_int.hpp][2][None][An all C++ Boost-licensed implementation.][Slower than [gmp].]]
 [[`gmp_rational`][boost/multiprecision/gmp.hpp][2][[gmp]][Very fast and efficient back-end.][Dependency on GNU licensed [gmp] library.]]
 [[`tommath_rational`][boost/multiprecision/tommath.hpp][2][[tommath]][All C/C++ implementation that's Boost Software Licence compatible.][Slower than [gmp].]]
-[[`rational_adapter`][boost/multiprecision/rational_adapter.hpp][N/A][none][All C++ adapter that allows any integer back-end type to be used as a rational type.][Requires an underlying integer back-end type.]]
+[[`rational_adaptor`][boost/multiprecision/rational_adaptor.hpp][N/A][none][All C++ adaptor that allows any integer back-end type to be used as a rational type.][Requires an underlying integer back-end type.]]
 [[`boost::rational`][boost/rational.hpp][N/A][None][A C++ rational number type that can used with any `number` integer type.][The expression templates used by `number` end up being "hidden" inside `boost::rational`: performance may well suffer as a result.]]
 ]
 
@@ -900,7 +1041,7 @@
 
    namespace boost{ namespace multiprecision{
 
- typedef rational_adapter<cpp_int_backend<> > cpp_rational_backend;
+ typedef rational_adaptor<cpp_int_backend<> > cpp_rational_backend;
 
    typedef number<cpp_rational_backend> cpp_rational;
 
@@ -1031,7 +1172,7 @@
 
 [endsect]
 
-[section:rational_adapter rational_adapter]
+[section:rational_adaptor rational_adaptor]
 
    namespace boost{ namespace multiprecision{
 
@@ -1040,13 +1181,13 @@
 
    }}
 
-The class template `rational_adapter` is a back-end for `number` which converts any existing integer back-end
+The class template `rational_adaptor` is a back-end for `number` which converts any existing integer back-end
 into a rational-number back-end.
 
 So for example, given an integer back-end type `MyIntegerBackend`, the use would be something like:
 
    typedef number<MyIntegerBackend> MyInt;
- typedef number<rational_adapter<MyIntegerBackend> > MyRational;
+ typedef number<rational_adaptor<MyIntegerBackend> > MyRational;
 
    MyRational r = 2;
    r /= 3;
@@ -1057,6 +1198,141 @@
 
 [endsect]
 
+[section:misc Miscellaneous Number Types.]
+
+Backend types listed in this section are predominantly designed to aid debugging.
+
+[section:logged_adaptor logged_adaptor]
+
+`#include <boost/multiprecision/logged_adaptor.hpp>`
+
+ namespace boost{ namespace multiprecision{
+
+ template <class Backend>
+ void log_postfix_event(const Backend& result, const char* event_description);
+ template <class Backend, class T>
+ void log_postfix_event(const Backend& result1, const T& result2, const char* event_description);
+
+ template <class Backend>
+ void log_prefix_event(const Backend& arg1, const char* event_description);
+ template <class Backend, class T>
+ void log_prefix_event(const Backend& arg1, const T& arg2, const char* event_description);
+ template <class Backend, class T, class U>
+ void log_prefix_event(const Backend& arg1, const T& arg2, const U& arg3, const char* event_description);
+ template <class Backend, class T, class U, class V>
+ void log_prefix_event(const Backend& arg1, const T& arg2, const U& arg3, const V& arg4, const char* event_description);
+
+ template <Backend>
+ class logged_adaptor;
+
+ }} // namespaces
+
+The `logged_adaptor` type is used in conjunction with `number` and some other backend type: it acts as a thin wrapper around
+some other backend to class `number` and logs all the events that take place on that object. Before any number operation takes
+place, it calls `log_prefix_event` with the arguments to the operation (up to 4), plus a string describing the operation.
+Then after the operation it calls `log_postfix_event` with the result of the operation, plus a string describing the operation.
+Optionally, `log_postfix_event` takes a second result argument: this occurs when the result of the operation is not a `number`,
+for example when `fpclassify` is called, `log_postfix_event` will be called with `result1` being the argument to the function, and
+`result2` being the integer result of `fpclassify`.
+
+The default versions of `log_prefix_event` and `log_postfix_event` do nothing, it is therefore up to the user to overload these
+for the particular backend being observed.
+
+This type provides `numeric_limits` support whenever the template argument Backend does so.
+
+This type is particularly useful when combined with an interval number type - in this case we can use `log_postfix_event`
+to monitor the error accumulated after each operation. We could either set some kind of trap whenever the accumulated error
+exceeds some threshold, or simply print out diagnostic information. Using this technique we can quickly locate the cause of
+numerical instability in a particular routine. The following example demonstrates this technique in a trivial algorithm
+that deliberately introduces cancellation error:
+
+[logged_adaptor]
+
+When we examine program output we can clearly see that the diameter of the interval increases after each subtraction:
+
+[logged_adaptor_output]
+
+[endsect]
+
+[section:debug_adaptor debug_adaptor]
+
+`#include <boost/multiprecision/debug_adaptor.hpp>`
+
+ namespace boost{ namespace multiprecision{
+
+ template <Backend>
+ class debug_adaptor;
+
+ }} // namespaces
+
+The `debug_adaptor` type is used in conjunction with `number` and some other backend type: it acts as a thin wrapper around
+some other backend to class `number` and intercepts all operations on that object storing the result as a string within itself.
+
+This type provides `numeric_limits` support whenever the template argument Backend does so.
+
+This type is particularly useful when your debugger provides a good view of `std::string`: when this is the case
+multiprecision values can easily be inspected in the debugger by looking at the `debug_value` member of `debug_adaptor`.
+The down side of this approach is that runtimes are much slower when using this type. Set against that it can make
+debugging very much easier, certainly much easier than sprinkling code with `printf` statements.
+
+When used in conjunction with the Visual C++ debugger visualisers, the value of a multiprecision type that uses this
+backend is displayed in the debugger just a builtin value would be, here we're inspecting a value of type
+`number<debug_adaptor<cpp_dec_float<50> > >`:
+
+[$../debugger1.png]
+
+Otherwise you will need to expand out the view and look at the "debug_value" member:
+
+[$../debugger2.png]
+
+It works for all the backend types equally too, here it is inspecting a `number<debug_adaptor<gmp_rational> >`:
+
+[$../debugger3.png]
+
+
+[endsect]
+
+[section:visualizers Visual C++ Debugger Visualizers]
+
+Let's face it debugger multiprecision numbers is hard - simply because we can't easily inspect the value of the numbers.
+Visual C++ provides a partial solution in the shape of "visualizers" which provide improved views of complex data structures,
+these visualizers need to be added to the `[Visualizer]` section of `autoexp.dat` located in the `Common7\Packages\Debugger`
+directory of your Visual Studio installation. The actual visualizer code is in the sandbox
+[@https://svn.boost.org/svn/boost/sandbox/boost_docs/subprojects/DebuggerVisualizers/multiprecision.vis.txt here] - just cut and paste the code
+into your `autoexp.dat` file.
+
+[note These visualizers have only been tested with VC10, also given the ability of buggy visualizers to crash your Visual C++
+debugger, make sure you back up `autoexp.dat` file before using these!!]
+
+The first visualizer provides improved views of `debug_adaptor`:
+
+[$../debugger1.png]
+
+The next visualizer provides improved views of cpp_int: small numbers are displayed as actual values, while larger numbers are
+displayed as an array of hexadecimal parts, with the most significant part first.
+
+Here's what it looks like for small values:
+
+[$../debugger4.png]
+
+And for larger values:
+
+[$../debugger5.png]
+
+There is also a `~raw` child member that
+lets you see the actual members of the class:
+
+[$../debugger6.png]
+
+The visualizer for `cpp_dec_float` shows the first few digits of the value in the preview field, and the full array of digits
+when you expand the view. As before the `~raw` child gives you access to the actual data members:
+
+[$../debugger7.png]
+
+[endsect]
+
+[endsect]
+
 [section:conversions Constructing and Interconverting Between Number Types]
 
 All of the number types that are based on `number` have certain conversion rules in common.
@@ -2025,7 +2301,7 @@
    { static const expression_template_option value = et_off; };
 
    typedef number<cpp_int_backend<> > cpp_int; // arbitrary precision integer
- typedef rational_adapter<cpp_int_backend<> > cpp_rational_backend;
+ typedef rational_adaptor<cpp_int_backend<> > cpp_rational_backend;
    typedef number<cpp_rational_backend> cpp_rational; // arbitrary precision rational number
 
    // Fixed precision unsigned types:
@@ -2042,7 +2318,7 @@
 
    // Over again, but with checking enabled this time:
    typedef number<cpp_int_backend<0, 0, signed_magnitude, checked> > checked_cpp_int;
- typedef rational_adapter<cpp_int_backend<0, 0, signed_magnitude, checked> > checked_cpp_rational_backend;
+ typedef rational_adaptor<cpp_int_backend<0, 0, signed_magnitude, checked> > checked_cpp_rational_backend;
    typedef number<cpp_rational_backend> checked_cpp_rational;
 
    // Checked fixed precision unsigned types:
@@ -2673,7 +2949,7 @@
 [[number.hpp][Defines the `number` backend, is included by all the backend headers.]]
 [[mpfr.hpp][Defines the mpfr_float_backend backend.]]
 [[random.hpp][Defines code to interoperate with Boost.Random.]]
-[[rational_adapter.hpp][Defines the `rational_adapter` backend.]]
+[[rational_adaptor.hpp][Defines the `rational_adaptor` backend.]]
 [[cpp_dec_float.hpp][Defines the `cpp_dec_float` backend.]]
 [[tommath.hpp][Defines the `tommath_int` backend.]]
 [[concepts/number_archetypes.hpp][Defines a backend concept archetypes for testing use.]]
@@ -3336,6 +3612,17 @@
 
 [section:hist History]
 
+[h4 1.54]
+
+* [*Breaking change] renamed `rational_adapter` to `rational_adaptor`.
+* Add support for [mpfi].
+* Add logged_adaptor.
+* Fixed bug in integer division of `cpp_int` that results in incorrect sign of `cpp_int` when both arguments are small enough
+to fit in a `double_limb_type`. See [@https://svn.boost.org/trac/boost/ticket/8126 8126].
+* Fixed bug in subtraction of a single limb in `cpp_int` that results in incorrect value when the result should have a 0
+in the last limb: [@https://svn.boost.org/trac/boost/ticket/8133 8133].
+* Fixed bug in `cpp_int` where division of 0 by something doesn't get zero in the result: [@https://svn.boost.org/trac/boost/ticket/8160 8160].
+
 [h4 1.53]
 
 * First Release.
@@ -3380,7 +3667,7 @@
 More a list of what ['could] be done, rather than what ['should] be done (which may be a much smaller list!).
 
 * Add back-end support for libdecNumber.
-* Add an adapter back-end for complex number types.
+* Add an adaptor back-end for complex number types.
 * Add a back-end for MPFR interval arithmetic.
 * Add better multiplication routines (Karatsuba, FFT etc) to cpp_int_backend.
 * Add assembly level routines to cpp_int_backend.

Modified: branches/release/libs/multiprecision/performance/performance_test.cpp
==============================================================================
--- branches/release/libs/multiprecision/performance/performance_test.cpp (original)
+++ branches/release/libs/multiprecision/performance/performance_test.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -34,7 +34,7 @@
 
 #if defined(TEST_MPF) || defined(TEST_MPZ) || defined(TEST_MPQ) || defined(TEST_MPZ_BOOST_RATIONAL)
 #include <boost/multiprecision/gmp.hpp>
-#include <boost/multiprecision/rational_adapter.hpp>
+#include <boost/multiprecision/rational_adaptor.hpp>
 #endif
 #ifdef TEST_CPP_DEC_FLOAT
 #include <boost/multiprecision/cpp_dec_float.hpp>
@@ -44,7 +44,7 @@
 #endif
 #if defined(TEST_TOMMATH) || defined(TEST_TOMMATH_BOOST_RATIONAL)
 #include <boost/multiprecision/tommath.hpp>
-#include <boost/multiprecision/rational_adapter.hpp>
+#include <boost/multiprecision/rational_adaptor.hpp>
 #endif
 #if defined(TEST_CPP_INT) || defined(TEST_CPP_INT_RATIONAL)
 #include <boost/multiprecision/cpp_int.hpp>

Modified: branches/release/libs/multiprecision/test/Jamfile.v2
==============================================================================
--- branches/release/libs/multiprecision/test/Jamfile.v2 (original)
+++ branches/release/libs/multiprecision/test/Jamfile.v2 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -9,6 +9,7 @@
 local ntl-path = [ modules.peek : NTL_PATH ] ;
 local gmp_path = [ modules.peek : GMP_PATH ] ;
 local mpfr_path = [ modules.peek : MPFR_PATH ] ;
+local mpfi_path = [ modules.peek : MPFI_PATH ] ;
 local tommath_path = [ modules.peek : TOMMATH_PATH ] ;
 
 project : requirements
@@ -16,11 +17,15 @@
    <include>$(gmp_path)/mpfr
    <include>$(gmp_path)/gmpfrxx
    <include>$(mpfr_path)
+ <include>$(mpfi_path)
+ <include>$(mpfi_path)/src
    <include>$(tommath_path)
    <include>../../..
    <search>$(gmp_path)
    <search>$(mpfr_path)
    <search>$(mpfr_path)/build.vc10/lib/Win32/Debug
+ <search>$(mpfi_path)
+ <search>$(mpfi_path)/src
    <search>$(tommath_path)
    # We set these to make it easier to set up and test GMP and MPFR under Win32:
    <toolset>msvc:<runtime-link>static
@@ -41,6 +46,7 @@
 
 lib gmp ;
 lib mpfr ;
+lib mpfi ;
 
 if $(tommath_path)
 {
@@ -66,6 +72,7 @@
 
 run test_arithmetic_mpfr.cpp mpfr gmp : : : [ check-target-builds ../config//has_mpfr : : <build>no ] ;
 run test_arithmetic_mpfr_50.cpp mpfr gmp : : : [ check-target-builds ../config//has_mpfr : : <build>no ] ;
+run test_arithmetic_mpfr_50_static.cpp mpfr gmp : : : [ check-target-builds ../config//has_mpfr : : <build>no ] ;
 
 run test_arithmetic_tommath.cpp $(TOMMATH) : : : [ check-target-builds ../config//has_tommath : : <build>no ] ;
 run test_arithmetic_tommath_br.cpp $(TOMMATH) : : : [ check-target-builds ../config//has_tommath : : <build>no ] ;
@@ -94,6 +101,16 @@
 run test_arithmetic_ab_2.cpp ;
 run test_arithmetic_ab_3.cpp ;
 
+run test_cpp_dec_float_round.cpp ;
+
+run test_arithmetic_logged_1.cpp ;
+run test_arithmetic_logged_2.cpp ;
+
+run test_arithmetic_dbg_adptr1.cpp ;
+run test_arithmetic_dbg_adptr2.cpp ;
+
+run test_arithmetic_mpfi_50.cpp mpfi mpfr gmp : : : [ check-target-builds ../config//has_mpfi : : <build>no ] ;
+
 run test_numeric_limits.cpp
         : # command line
         : # input files
@@ -171,288 +188,44 @@
               <define>TEST_CPP_INT
         : test_numeric_limits_cpp_int ;
 
-run test_exp.cpp gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_exp_mpf50 ;
-
-run test_log.cpp gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_log_mpf50 ;
-
-run test_pow.cpp gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_pow_mpf50 ;
-
-run test_sinh.cpp gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_sinh_mpf50 ;
-
-run test_cosh.cpp gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_cosh_mpf50 ;
-
-run test_tanh.cpp gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_tanh_mpf50 ;
-
-run test_exp.cpp mpfr
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_exp_mpfr50 ;
-
-run test_log.cpp mpfr
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_log_mpfr50 ;
-
-run test_pow.cpp mpfr
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_pow_mpfr50 ;
-
-run test_sinh.cpp mpfr
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_sinh_mpfr50 ;
-
-run test_cosh.cpp mpfr
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_cosh_mpfr50 ;
-
-run test_tanh.cpp mpfr
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_tanh_mpfr50 ;
-
-run test_exp.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_exp_cpp_dec_float ;
-
-run test_sqrt.cpp
+run test_numeric_limits.cpp mpfi mpfr gmp
         : # command line
         : # input files
         : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_sqrt_cpp_dec_float ;
-
-run test_log.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_log_cpp_dec_float ;
-
-run test_pow.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_pow_cpp_dec_float ;
-
-run test_sinh.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_sinh_cpp_dec_float ;
-
-run test_cosh.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_cosh_cpp_dec_float ;
-
-run test_tanh.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_tanh_cpp_dec_float ;
-
-run test_sin.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_sin_cpp_dec_float ;
-
-run test_sin.cpp gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_sin_mpf50 ;
-
-run test_sin.cpp mpfr
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_sin_mpfr_50 ;
-
-run test_cos.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_cos_cpp_dec_float ;
-
-run test_cos.cpp gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_cos_mpf50 ;
-
-run test_cos.cpp mpfr
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_cos_mpfr_50 ;
-
-run test_asin.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_asin_cpp_dec_float ;
+ <define>TEST_MPFI_50
+ [ check-target-builds ../config//has_mpfi : : <build>no ]
+ : test_numeric_limits_mpfi_50 ;
 
-run test_asin.cpp gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_asin_mpf50 ;
-
-run test_asin.cpp mpfr
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_asin_mpfr_50 ;
-
-run test_acos.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_acos_cpp_dec_float ;
-
-run test_acos.cpp gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_acos_mpf50 ;
-
-run test_acos.cpp mpfr
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_acos_mpfr_50 ;
-
-run test_atan.cpp gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_atan_mpf50 ;
-
-run test_atan.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_atan_cpp_dec_float ;
-
-run test_atan.cpp mpfr
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_atan_mpfr_50 ;
-
-run test_tan.cpp gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_tan_mpf50 ;
-
-run test_tan.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_tan_cpp_dec_float ;
-
-run test_tan.cpp mpfr
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_tan_mpfr_50 ;
+for local source in test_exp.cpp test_log.cpp test_pow.cpp test_sinh.cpp test_sqrt.cpp test_cosh.cpp test_tanh.cpp test_sin.cpp test_cos.cpp test_tan.cpp test_asin.cpp test_acos.cpp test_atan.cpp test_round.cpp test_fpclassify.cpp
+{
+ run $(source) gmp
+ : # command line
+ : # input files
+ : # requirements
+ [ check-target-builds ../config//has_gmp : : <build>no ]
+ <define>TEST_MPF_50
+ : $(source:B)_mpf50 ;
+ run $(source) mpfr gmp
+ : # command line
+ : # input files
+ : # requirements
+ [ check-target-builds ../config//has_mpfr : : <build>no ]
+ <define>TEST_MPFR_50
+ : $(source:B)_mpfr50 ;
+ run $(source) mpfi mpfr gmp
+ : # command line
+ : # input files
+ : # requirements
+ [ check-target-builds ../config//has_mpfi : : <build>no ]
+ <define>TEST_MPFI_50
+ : $(source:B)_mpfi50 ;
+ run $(source)
+ : # command line
+ : # input files
+ : # requirements
+ <define>TEST_CPP_DEC_FLOAT
+ : $(source:B)_cpp_dec_float ;
+}
 
 run test_gmp_conversions.cpp gmp
         : # command line
@@ -466,66 +239,6 @@
         : # requirements
          [ check-target-builds ../config//has_mpfr : : <build>no ] ;
 
-run test_round.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_BACKEND
- : test_round_backend_concept ;
-
-run test_round.cpp gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_round_mpf50 ;
-
-run test_round.cpp mpfr
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_round_mpfr_50 ;
-
-run test_round.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_round_cpp_dec_float ;
-
-run test_fpclassify.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_BACKEND
- : test_fpclassify_backend_concept ;
-
-run test_fpclassify.cpp gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_fpclassify_mpf50 ;
-
-run test_fpclassify.cpp mpfr
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_fpclassify_mpfr_50 ;
-
-run test_fpclassify.cpp
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_fpclassify_cpp_dec_float ;
-
 run test_constants.cpp gmp
         : # command line
         : # input files
@@ -610,6 +323,15 @@
          [ check-target-builds ../config//has_mpfr : : <build>no ]
         : test_float_io_mpfr ;
 
+run test_float_io.cpp mpfi mpfr gmp
+ : # command line
+ : # input files
+ : # requirements
+ <define>TEST_MPFI_50
+ release # Otherwise runtime is slow
+ [ check-target-builds ../config//has_mpfi : : <build>no ]
+ : test_float_io_mpfi ;
+
 run test_int_io.cpp $(TOMMATH)
         : # command line
         : # input files
@@ -725,6 +447,18 @@
         : # requirements
          [ check-target-builds ../config//has_mpfr : : <build>no ] ;
 
+run ../example/mpfi_snips.cpp mpfi mpfr gmp
+ : # command line
+ : # input files
+ : # requirements
+ [ check-target-builds ../config//has_mpfi : : <build>no ] ;
+
+run ../example/logged_adaptor.cpp mpfi mpfr gmp
+ : # command line
+ : # input files
+ : # requirements
+ [ check-target-builds ../config//has_mpfi : : <build>no ] ;
+
 run ../example/cpp_dec_float_snips.cpp ;
 run ../example/cpp_int_snips.cpp ;
 
@@ -766,13 +500,20 @@
 run ublas_interop/test6.cpp ublas_interop/test62.cpp ublas_interop/test63.cpp ;
 #run ublas_interop/test7.cpp ublas_interop/test71.cpp ublas_interop/test72.cpp ublas_interop/test73.cpp ;
 
+run ublas_interop/test1.cpp ublas_interop/test11.cpp ublas_interop/test12.cpp ublas_interop/test13.cpp : : : <define>TEST_ET=1 : ublas1_et ;
+run ublas_interop/test2.cpp ublas_interop/test21.cpp ublas_interop/test22.cpp ublas_interop/test23.cpp : : : <define>TEST_ET=1 : ublas2_et ;
+#run ublas_interop/test3.cpp ublas_interop/test31.cpp ublas_interop/test32.cpp ublas_interop/test33.cpp : : : <define>TEST_ET=1 : ublas3_et ;
+run ublas_interop/test4.cpp ublas_interop/test42.cpp ublas_interop/test43.cpp : : : <define>TEST_ET=1 : ublas3_et ;
+run ublas_interop/test5.cpp ublas_interop/test52.cpp ublas_interop/test53.cpp : : : <define>TEST_ET=1 : ublas4_et ;
+run ublas_interop/test6.cpp ublas_interop/test62.cpp ublas_interop/test63.cpp : : : <define>TEST_ET=1 : ublas5_et ;
+#run ublas_interop/test7.cpp ublas_interop/test71.cpp ublas_interop/test72.cpp ublas_interop/test73.cpp : : : <define>TEST_ET=1 : ublas6_et ;
 
 if $(enable-specfun)
 {
 
    for local source in [ glob math/*.cpp ]
    {
- run $(source) mpfr gmp /boost/test//boost_test_exec_monitor/<link>static /boost/regex//boost_regex/<link>static
+ run $(source) mpfr gmp /boost/test//boost_unit_test_framework/<link>static /boost/regex//boost_regex/<link>static
            : # command line
            : # input files
            : # requirements
@@ -783,7 +524,7 @@
             <toolset>msvc:<cxxflags>-bigobj
             release
            : $(source:B)_mpfr ;
- run $(source) gmp /boost/test//boost_test_exec_monitor/<link>static /boost/regex//boost_regex/<link>static
+ run $(source) gmp /boost/test//boost_unit_test_framework/<link>static /boost/regex//boost_regex/<link>static
            : # command line
            : # input files
            : # requirements
@@ -794,7 +535,7 @@
             <toolset>msvc:<cxxflags>-bigobj
             release
            : $(source:B)_mpf ;
- run $(source) /boost/test//boost_test_exec_monitor/<link>static /boost/regex//boost_regex/<link>static
+ run $(source) /boost/test//boost_unit_test_framework/<link>static /boost/regex//boost_regex/<link>static
            : # command line
            : # input files
            : # requirements
@@ -881,8 +622,12 @@
                     <define>TEST_BACKEND
                <debug-symbols>off
               : $(source:B)_backend_concept ;
+
+ compile $(source)
+ : # requirements
+ <define>TEST_LOGGED_ADAPTER
+ <debug-symbols>off
+ : $(source:B)_logged_adaptor ;
    }
 }
 
-
-

Modified: branches/release/libs/multiprecision/test/concepts/number_concept_check.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/concepts/number_concept_check.cpp (original)
+++ branches/release/libs/multiprecision/test/concepts/number_concept_check.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -18,7 +18,8 @@
 
 #if !defined(TEST_MPF_50) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) \
    && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR_50)\
- && !defined(TEST_MPFR_6) && !defined(TEST_MPFR_15) && !defined(TEST_MPFR_17) && !defined(TEST_MPFR_30) && !defined(TEST_CPP_DEC_FLOAT_NO_ET)
+ && !defined(TEST_MPFR_6) && !defined(TEST_MPFR_15) && !defined(TEST_MPFR_17) \
+ && !defined(TEST_MPFR_30) && !defined(TEST_CPP_DEC_FLOAT_NO_ET) && !defined(TEST_LOGGED_ADAPTER)
 # define TEST_MPF_50
 # define TEST_BACKEND
 # define TEST_MPZ
@@ -29,6 +30,7 @@
 # define TEST_MPFR_30
 # define TEST_CPP_DEC_FLOAT
 # define TEST_CPP_DEC_FLOAT_NO_ET
+# define TEST_LOGGED_ADAPTER
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -45,12 +47,15 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
-#if defined(TEST_CPP_DEC_FLOAT) || defined(TEST_CPP_DEC_FLOAT_NO_ET)
+#if defined(TEST_CPP_DEC_FLOAT) || defined(TEST_CPP_DEC_FLOAT_NO_ET) || defined(TEST_LOGGED_ADAPTER)
 #include <boost/multiprecision/cpp_dec_float.hpp>
 #endif
 #if defined(TEST_MPFR_50) || defined(TEST_MPFR_6) || defined(TEST_MPFR_15) || defined(TEST_MPFR_17) || defined(TEST_MPFR_30)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#ifdef TEST_LOGGED_ADAPTER
+#include <boost/multiprecision/logged_adaptor.hpp>
+#endif
 
 #include <boost/math/concepts/real_type_concept.hpp>
 
@@ -219,5 +224,9 @@
 #ifdef TEST_CPP_DEC_FLOAT
    BOOST_CONCEPT_ASSERT((boost::math::concepts::RealTypeConcept<boost::multiprecision::cpp_dec_float_50>));
 #endif
+#ifdef TEST_LOGGED_ADAPTER
+ typedef boost::multiprecision::number<boost::multiprecision::logged_adaptor<boost::multiprecision::cpp_dec_float<50> > > num_t;
+ test_extra(num_t());
+#endif
 
 }

Modified: branches/release/libs/multiprecision/test/concepts/sf_concept_check_basic.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/concepts/sf_concept_check_basic.cpp (original)
+++ branches/release/libs/multiprecision/test/concepts/sf_concept_check_basic.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -18,7 +18,8 @@
 
 #if !defined(TEST_MPF_50) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) \
    && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR_50)\
- && !defined(TEST_MPFR_6) && !defined(TEST_MPFR_15) && !defined(TEST_MPFR_17) && !defined(TEST_MPFR_30) && !defined(TEST_CPP_DEC_FLOAT_NO_ET)
+ && !defined(TEST_MPFR_6) && !defined(TEST_MPFR_15) && !defined(TEST_MPFR_17) && !defined(TEST_MPFR_30) \
+ && !defined(TEST_CPP_DEC_FLOAT_NO_ET) && !defined(TEST_LOGGED_ADAPTER)
 # define TEST_MPF_50
 # define TEST_BACKEND
 # define TEST_MPZ
@@ -29,6 +30,7 @@
 # define TEST_MPFR_30
 # define TEST_CPP_DEC_FLOAT
 # define TEST_CPP_DEC_FLOAT_NO_ET
+# define TEST_LOGGED_ADAPTER
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -45,12 +47,15 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
-#if defined(TEST_CPP_DEC_FLOAT) || defined(TEST_CPP_DEC_FLOAT_NO_ET)
+#if defined(TEST_CPP_DEC_FLOAT) || defined(TEST_CPP_DEC_FLOAT_NO_ET) || defined(TEST_LOGGED_ADAPTER)
 #include <boost/multiprecision/cpp_dec_float.hpp>
 #endif
 #if defined(TEST_MPFR_50) || defined(TEST_MPFR_6) || defined(TEST_MPFR_15) || defined(TEST_MPFR_17) || defined(TEST_MPFR_30)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#ifdef TEST_LOGGED_ADAPTER
+#include <boost/multiprecision/logged_adaptor.hpp>
+#endif
 
 #include <boost/math/special_functions.hpp>
 
@@ -141,6 +146,10 @@
 #ifdef TEST_CPP_DEC_FLOAT_NO_ET
    test_extra(boost::multiprecision::number<boost::multiprecision::cpp_dec_float<100>, boost::multiprecision::et_off>());
 #endif
+#ifdef TEST_LOGGED_ADAPTER
+ typedef boost::multiprecision::number<boost::multiprecision::logged_adaptor<boost::multiprecision::cpp_dec_float<50> > > num_t;
+ test_extra(num_t());
+#endif
 }
 
 int main()

Modified: branches/release/libs/multiprecision/test/concepts/sf_concept_check_bessel.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/concepts/sf_concept_check_bessel.cpp (original)
+++ branches/release/libs/multiprecision/test/concepts/sf_concept_check_bessel.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -18,7 +18,8 @@
 
 #if !defined(TEST_MPF_50) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) \
    && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR_50)\
- && !defined(TEST_MPFR_6) && !defined(TEST_MPFR_15) && !defined(TEST_MPFR_17) && !defined(TEST_MPFR_30) && !defined(TEST_CPP_DEC_FLOAT_NO_ET)
+ && !defined(TEST_MPFR_6) && !defined(TEST_MPFR_15) && !defined(TEST_MPFR_17) \
+ && !defined(TEST_MPFR_30) && !defined(TEST_CPP_DEC_FLOAT_NO_ET) && !defined(TEST_LOGGED_ADAPTER)
 # define TEST_MPF_50
 # define TEST_BACKEND
 # define TEST_MPZ
@@ -29,6 +30,7 @@
 # define TEST_MPFR_30
 # define TEST_CPP_DEC_FLOAT
 # define TEST_CPP_DEC_FLOAT_NO_ET
+# define TEST_LOGGED_ADAPTER
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -45,12 +47,15 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
-#if defined(TEST_CPP_DEC_FLOAT) || defined(TEST_CPP_DEC_FLOAT_NO_ET)
+#if defined(TEST_CPP_DEC_FLOAT) || defined(TEST_CPP_DEC_FLOAT_NO_ET) || defined(TEST_LOGGED_ADAPTER)
 #include <boost/multiprecision/cpp_dec_float.hpp>
 #endif
 #if defined(TEST_MPFR_50) || defined(TEST_MPFR_6) || defined(TEST_MPFR_15) || defined(TEST_MPFR_17) || defined(TEST_MPFR_30)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#ifdef TEST_LOGGED_ADAPTER
+# include <boost/multiprecision/logged_adaptor.hpp>
+#endif
 
 #include <boost/math/special_functions.hpp>
 
@@ -108,6 +113,10 @@
 #ifdef TEST_CPP_DEC_FLOAT_NO_ET
    test_extra(boost::multiprecision::number<boost::multiprecision::cpp_dec_float<100>, boost::multiprecision::et_off>());
 #endif
+#ifdef TEST_LOGGED_ADAPTER
+ typedef boost::multiprecision::number<boost::multiprecision::logged_adaptor<boost::multiprecision::cpp_dec_float<50> > > num_t;
+ test_extra(num_t());
+#endif
 }
 
 int main()

Modified: branches/release/libs/multiprecision/test/concepts/sf_concept_check_elliptic.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/concepts/sf_concept_check_elliptic.cpp (original)
+++ branches/release/libs/multiprecision/test/concepts/sf_concept_check_elliptic.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -18,7 +18,8 @@
 
 #if !defined(TEST_MPF_50) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) \
    && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR_50)\
- && !defined(TEST_MPFR_6) && !defined(TEST_MPFR_15) && !defined(TEST_MPFR_17) && !defined(TEST_MPFR_30) && !defined(TEST_CPP_DEC_FLOAT_NO_ET)
+ && !defined(TEST_MPFR_6) && !defined(TEST_MPFR_15) && !defined(TEST_MPFR_17) \
+ && !defined(TEST_MPFR_30) && !defined(TEST_CPP_DEC_FLOAT_NO_ET) && !defined(TEST_LOGGED_ADAPTER)
 # define TEST_MPF_50
 # define TEST_BACKEND
 # define TEST_MPZ
@@ -29,6 +30,7 @@
 # define TEST_MPFR_30
 # define TEST_CPP_DEC_FLOAT
 # define TEST_CPP_DEC_FLOAT_NO_ET
+# define TEST_LOGGED_ADAPTER
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -45,12 +47,15 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
-#if defined(TEST_CPP_DEC_FLOAT) || defined(TEST_CPP_DEC_FLOAT_NO_ET)
+#if defined(TEST_CPP_DEC_FLOAT) || defined(TEST_CPP_DEC_FLOAT_NO_ET) || defined(TEST_LOGGED_ADAPTER)
 #include <boost/multiprecision/cpp_dec_float.hpp>
 #endif
 #if defined(TEST_MPFR_50) || defined(TEST_MPFR_6) || defined(TEST_MPFR_15) || defined(TEST_MPFR_17) || defined(TEST_MPFR_30)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#ifdef TEST_LOGGED_ADAPTER
+#include <boost/multiprecision/logged_adaptor.hpp>
+#endif
 
 #include <boost/math/special_functions.hpp>
 
@@ -112,6 +117,10 @@
 #ifdef TEST_CPP_DEC_FLOAT_NO_ET
    test_extra(boost::multiprecision::number<boost::multiprecision::cpp_dec_float<100>, boost::multiprecision::et_off>());
 #endif
+#ifdef TEST_LOGGED_ADAPTER
+ typedef boost::multiprecision::number<boost::multiprecision::logged_adaptor<boost::multiprecision::cpp_dec_float<50> > > num_t;
+ test_extra(num_t());
+#endif
 }
 
 int main()

Modified: branches/release/libs/multiprecision/test/concepts/sf_concept_check_gamma.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/concepts/sf_concept_check_gamma.cpp (original)
+++ branches/release/libs/multiprecision/test/concepts/sf_concept_check_gamma.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -18,7 +18,8 @@
 
 #if !defined(TEST_MPF_50) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) \
    && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR_50)\
- && !defined(TEST_MPFR_6) && !defined(TEST_MPFR_15) && !defined(TEST_MPFR_17) && !defined(TEST_MPFR_30) && !defined(TEST_CPP_DEC_FLOAT_NO_ET)
+ && !defined(TEST_MPFR_6) && !defined(TEST_MPFR_15) && !defined(TEST_MPFR_17) \
+ && !defined(TEST_MPFR_30) && !defined(TEST_CPP_DEC_FLOAT_NO_ET) && !defined(TEST_LOGGED_ADAPTER)
 # define TEST_MPF_50
 # define TEST_BACKEND
 # define TEST_MPZ
@@ -29,6 +30,7 @@
 # define TEST_MPFR_30
 # define TEST_CPP_DEC_FLOAT
 # define TEST_CPP_DEC_FLOAT_NO_ET
+# define TEST_LOGGED_ADAPTER
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -45,12 +47,15 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
-#if defined(TEST_CPP_DEC_FLOAT) || defined(TEST_CPP_DEC_FLOAT_NO_ET)
+#if defined(TEST_CPP_DEC_FLOAT) || defined(TEST_CPP_DEC_FLOAT_NO_ET) || defined(TEST_LOGGED_ADAPTER)
 #include <boost/multiprecision/cpp_dec_float.hpp>
 #endif
 #if defined(TEST_MPFR_50) || defined(TEST_MPFR_6) || defined(TEST_MPFR_15) || defined(TEST_MPFR_17) || defined(TEST_MPFR_30)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#ifdef TEST_LOGGED_ADAPTER
+#include <boost/multiprecision/logged_adaptor.hpp>
+#endif
 
 #include <boost/math/special_functions.hpp>
 
@@ -130,6 +135,10 @@
 #ifdef TEST_CPP_DEC_FLOAT_NO_ET
    test_extra(boost::multiprecision::number<boost::multiprecision::cpp_dec_float<100>, boost::multiprecision::et_off>());
 #endif
+#ifdef TEST_LOGGED_ADAPTER
+ typedef boost::multiprecision::number<boost::multiprecision::logged_adaptor<boost::multiprecision::cpp_dec_float<50> > > num_t;
+ test_extra(num_t());
+#endif
 }
 
 int main()

Modified: branches/release/libs/multiprecision/test/concepts/sf_concept_check_poly.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/concepts/sf_concept_check_poly.cpp (original)
+++ branches/release/libs/multiprecision/test/concepts/sf_concept_check_poly.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -18,7 +18,8 @@
 
 #if !defined(TEST_MPF_50) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) \
    && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR_50)\
- && !defined(TEST_MPFR_6) && !defined(TEST_MPFR_15) && !defined(TEST_MPFR_17) && !defined(TEST_MPFR_30) && !defined(TEST_CPP_DEC_FLOAT_NO_ET)
+ && !defined(TEST_MPFR_6) && !defined(TEST_MPFR_15) && !defined(TEST_MPFR_17) \
+ && !defined(TEST_MPFR_30) && !defined(TEST_CPP_DEC_FLOAT_NO_ET) && !defined(TEST_LOGGED_ADAPTER)
 # define TEST_MPF_50
 # define TEST_BACKEND
 # define TEST_MPZ
@@ -29,6 +30,7 @@
 # define TEST_MPFR_30
 # define TEST_CPP_DEC_FLOAT
 # define TEST_CPP_DEC_FLOAT_NO_ET
+# define TEST_LOGGED_ADAPTER
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -45,12 +47,15 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
-#if defined(TEST_CPP_DEC_FLOAT) || defined(TEST_CPP_DEC_FLOAT_NO_ET)
+#if defined(TEST_CPP_DEC_FLOAT) || defined(TEST_CPP_DEC_FLOAT_NO_ET) || defined(TEST_LOGGED_ADAPTER)
 #include <boost/multiprecision/cpp_dec_float.hpp>
 #endif
 #if defined(TEST_MPFR_50) || defined(TEST_MPFR_6) || defined(TEST_MPFR_15) || defined(TEST_MPFR_17) || defined(TEST_MPFR_30)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#ifdef TEST_LOGGED_ADAPTER
+#include <boost/multiprecision/logged_adaptor.hpp>
+#endif
 
 #include <boost/math/special_functions.hpp>
 
@@ -103,6 +108,10 @@
 #ifdef TEST_CPP_DEC_FLOAT_NO_ET
    test_extra(boost::multiprecision::number<boost::multiprecision::cpp_dec_float<100>, boost::multiprecision::et_off>());
 #endif
+#ifdef TEST_LOGGED_ADAPTER
+ typedef boost::multiprecision::number<boost::multiprecision::logged_adaptor<boost::multiprecision::cpp_dec_float<50> > > num_t;
+ test_extra(num_t());
+#endif
 }
 
 int main()

Modified: branches/release/libs/multiprecision/test/coverage/Makefile
==============================================================================
--- branches/release/libs/multiprecision/test/coverage/Makefile (original)
+++ branches/release/libs/multiprecision/test/coverage/Makefile 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -13,7 +13,7 @@
 ../../../../boost/multiprecision/random.hpp\
 ../../../../boost/multiprecision/cpp_int.hpp\
 ../../../../boost/multiprecision/miller_rabin.hpp\
-../../../../boost/multiprecision/rational_adapter.hpp\
+../../../../boost/multiprecision/rational_adaptor.hpp\
 ../../../../boost/multiprecision/concepts/mp_number_archetypes.hpp\
 ../../../../boost/multiprecision/detail/big_lanczos.hpp\
 ../../../../boost/multiprecision/detail/digits.hpp\

Modified: branches/release/libs/multiprecision/test/math/log1p_expm1_test.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/log1p_expm1_test.cpp (original)
+++ branches/release/libs/multiprecision/test/math/log1p_expm1_test.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -41,7 +41,8 @@
 #include <boost/multiprecision/cpp_dec_float.hpp>
 #endif
 
-#include <boost/test/test_exec_monitor.hpp>
+#define BOOST_TEST_MAIN
+#include <boost/test/unit_test.hpp>
 #include <boost/test/floating_point_comparison.hpp>
 #include <boost/math/special_functions/log1p.hpp>
 #include <boost/math/special_functions/expm1.hpp>
@@ -60,7 +61,7 @@
 //
 // Note that when this file is first run on a new platform many of
 // these tests will fail: the default accuracy is 1 epsilon which
-// is too tight for most platforms. In this situation you will
+// is too tight for most platforms. In this situation you will
 // need to cast a human eye over the error rates reported and make
 // a judgement as to whether they are acceptable. Either way please
 // report the results to the Boost mailing list. Acceptable rates of
@@ -112,12 +113,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -144,7 +145,6 @@
    test(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 
 

Modified: branches/release/libs/multiprecision/test/math/powm1_sqrtp1m1_test.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/powm1_sqrtp1m1_test.cpp (original)
+++ branches/release/libs/multiprecision/test/math/powm1_sqrtp1m1_test.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -41,7 +41,8 @@
 #include <boost/multiprecision/cpp_dec_float.hpp>
 #endif
 
-#include <boost/test/test_exec_monitor.hpp>
+#define BOOST_TEST_MAIN
+#include <boost/test/unit_test.hpp>
 #include <boost/test/floating_point_comparison.hpp>
 #include <boost/math/special_functions/sqrt1pm1.hpp>
 #include <boost/math/special_functions/powm1.hpp>
@@ -60,7 +61,7 @@
 //
 // Note that when this file is first run on a new platform many of
 // these tests will fail: the default accuracy is 1 epsilon which
-// is too tight for most platforms. In this situation you will
+// is too tight for most platforms. In this situation you will
 // need to cast a human eye over the error rates reported and make
 // a judgement as to whether they are acceptable. Either way please
 // report the results to the Boost mailing list. Acceptable rates of
@@ -103,12 +104,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -136,7 +137,6 @@
    test_powm1_sqrtp1m1(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_powm1_sqrtp1m1(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 
 

Modified: branches/release/libs/multiprecision/test/math/test_bessel_i.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_bessel_i.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_bessel_i.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -70,12 +70,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -105,7 +105,6 @@
    test_bessel(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_bessel(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 
 

Modified: branches/release/libs/multiprecision/test/math/test_bessel_j.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_bessel_j.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_bessel_j.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -113,12 +113,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -146,7 +146,6 @@
    test_bessel(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_bessel(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 
 

Modified: branches/release/libs/multiprecision/test/math/test_bessel_k.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_bessel_k.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_bessel_k.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -86,12 +86,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -119,7 +119,6 @@
    test_bessel(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_bessel(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 
 

Modified: branches/release/libs/multiprecision/test/math/test_bessel_y.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_bessel_y.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_bessel_y.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -112,12 +112,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -145,7 +145,6 @@
    test_bessel(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_bessel(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 
 

Modified: branches/release/libs/multiprecision/test/math/test_beta.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_beta.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_beta.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -98,12 +98,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -131,7 +131,6 @@
    test_beta(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_beta(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 
 

Modified: branches/release/libs/multiprecision/test/math/test_binomial_coeff.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_binomial_coeff.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_binomial_coeff.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -77,12 +77,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -110,7 +110,6 @@
    test_binomial(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_binomial(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 
 

Modified: branches/release/libs/multiprecision/test/math/test_carlson.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_carlson.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_carlson.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -69,12 +69,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -102,7 +102,6 @@
    test_spots(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_spots(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 
 

Modified: branches/release/libs/multiprecision/test/math/test_cbrt.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_cbrt.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_cbrt.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -59,12 +59,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -91,7 +91,6 @@
    test_cbrt(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_cbrt(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 
 

Modified: branches/release/libs/multiprecision/test/math/test_digamma.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_digamma.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_digamma.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -73,12 +73,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -105,6 +105,5 @@
    test_digamma(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_digamma(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_ellint_1.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_ellint_1.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_ellint_1.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -66,12 +66,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -98,6 +98,5 @@
    test_spots(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_spots(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_ellint_2.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_ellint_2.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_ellint_2.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -59,12 +59,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -91,6 +91,5 @@
    test_spots(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_spots(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_ellint_3.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_ellint_3.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_ellint_3.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -80,12 +80,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -112,6 +112,5 @@
    test_spots(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_spots(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_erf.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_erf.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_erf.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -80,12 +80,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -112,6 +112,5 @@
    test_erf(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_erf(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_expint.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_expint.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_expint.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -80,12 +80,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -112,6 +112,5 @@
    test_expint(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_expint(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_gamma.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_gamma.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_gamma.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -94,12 +94,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -126,6 +126,5 @@
    test_gamma(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_gamma(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_hermite.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_hermite.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_hermite.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -59,12 +59,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -91,6 +91,5 @@
    test_hermite(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_hermite(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_ibeta.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_ibeta.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_ibeta.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -90,12 +90,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -122,6 +122,5 @@
    test_beta(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_beta(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_ibeta_2.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_ibeta_2.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_ibeta_2.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -90,12 +90,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -122,6 +122,5 @@
    test_beta(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_beta(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_ibeta_3.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_ibeta_3.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_ibeta_3.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -76,12 +76,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -108,6 +108,5 @@
    test_beta(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_beta(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_ibeta_4.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_ibeta_4.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_ibeta_4.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -83,12 +83,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -115,6 +115,5 @@
    test_beta(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_beta(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_ibeta_inv_1.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_ibeta_inv_1.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_ibeta_inv_1.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -69,12 +69,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -101,6 +101,5 @@
    test_beta(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_beta(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_ibeta_inv_ab_4.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_ibeta_inv_ab_4.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_ibeta_inv_ab_4.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -62,12 +62,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -94,6 +94,5 @@
    test_beta(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_beta(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_igamma.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_igamma.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_igamma.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -66,12 +66,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -98,6 +98,5 @@
    test_gamma(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_gamma(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_igamma_inv.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_igamma_inv.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_igamma_inv.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -81,12 +81,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -113,6 +113,5 @@
    test_gamma(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_gamma(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_igamma_inva.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_igamma_inva.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_igamma_inva.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -60,12 +60,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -92,6 +92,5 @@
    test_gamma(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_gamma(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_laguerre.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_laguerre.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_laguerre.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -59,12 +59,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -91,6 +91,5 @@
    test_laguerre(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_laguerre(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_legendre.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_legendre.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_legendre.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -59,12 +59,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -91,6 +91,5 @@
    test_legendre_p(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_legendre_p(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_tgamma_ratio.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_tgamma_ratio.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_tgamma_ratio.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -73,12 +73,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -105,6 +105,5 @@
    test_tgamma_ratio(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_tgamma_ratio(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/math/test_zeta.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/math/test_zeta.cpp (original)
+++ branches/release/libs/multiprecision/test/math/test_zeta.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -66,12 +66,12 @@
    // Finish off by printing out the compiler/stdlib/platform names,
    // we do this to make it easier to mark up expected error rates.
    //
- std::cout << "Tests run with " << BOOST_COMPILER << ", "
+ std::cout << "Tests run with " << BOOST_COMPILER << ", "
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test_main )
 {
    using namespace boost::multiprecision;
    expected_results();
@@ -100,6 +100,5 @@
    test_zeta(number<cpp_dec_float<30> >(), "number<cpp_dec_float<30> >");
    test_zeta(number<cpp_dec_float<35, long long, std::allocator<void> > >(), "number<cpp_dec_float<35, long long, std::allocator<void> > >");
 #endif
- return 0;
 }
 

Modified: branches/release/libs/multiprecision/test/test.hpp
==============================================================================
--- branches/release/libs/multiprecision/test/test.hpp (original)
+++ branches/release/libs/multiprecision/test/test.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -43,7 +43,7 @@
 }
 
 template <class T>
-typename boost::disable_if_c<boost::multiprecision::number_category<T>::value == boost::multiprecision::number_kind_integer, T>::type relative_error(T a, T b)
+typename boost::disable_if_c<(boost::multiprecision::number_category<T>::value == boost::multiprecision::number_kind_integer) || boost::multiprecision::is_interval_number<T>::value, T>::type relative_error(T a, T b)
 {
    using std::abs;
    using detail::abs;
@@ -71,6 +71,7 @@
          b = min_val;
       else if((b > -min_val) && (b < 0))
          b = -min_val;
+
       return (std::max)(abs(T((a-b)/a)), abs(T((a-b)/b))) / std::numeric_limits<T>::epsilon();
    }
 
@@ -81,6 +82,7 @@
       a = min_val;
    if(abs(b) < min_val)
       b = min_val;
+
    return (std::max)(abs(T((a-b)/a)), abs(T((a-b)/b))) / std::numeric_limits<T>::epsilon();
 }
 
@@ -92,6 +94,14 @@
    return relative_error<cast_type>(static_cast<cast_type>(a), static_cast<cast_type>(b));
 }
 
+template <class T>
+typename boost::enable_if_c<boost::multiprecision::is_interval_number<T>::value, T>::type relative_error(T a, T b)
+{
+ typename boost::multiprecision::component_type<T>::type am = median(a);
+ typename boost::multiprecision::component_type<T>::type bm = median(b);
+ return relative_error<typename boost::multiprecision::component_type<T>::type>(am, bm);
+}
+
 
 enum
 {

Modified: branches/release/libs/multiprecision/test/test_acos.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_acos.cpp (original)
+++ branches/release/libs/multiprecision/test/test_acos.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -16,11 +16,12 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
 //# define TEST_MPF
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
+# define TEST_MPFI_50
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -37,6 +38,9 @@
 #if defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#if defined(TEST_MPFI_50)
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -100,6 +104,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_arithmetic_mpfr_50.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_arithmetic_mpfr_50.cpp (original)
+++ branches/release/libs/multiprecision/test/test_arithmetic_mpfr_50.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -20,7 +20,6 @@
 int main()
 {
    test<boost::multiprecision::mpfr_float_50>();
- test<boost::multiprecision::static_mpfr_float_50>();
    return boost::report_errors();
 }
 

Modified: branches/release/libs/multiprecision/test/test_arithmetic_mpz.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_arithmetic_mpz.cpp (original)
+++ branches/release/libs/multiprecision/test/test_arithmetic_mpz.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -8,14 +8,14 @@
 #endif
 
 #include <boost/multiprecision/gmp.hpp>
-#include <boost/multiprecision/rational_adapter.hpp>
+#include <boost/multiprecision/rational_adaptor.hpp>
 
 #include "test_arithmetic.hpp"
 
 int main()
 {
    test<boost::multiprecision::mpz_int>();
- test<boost::multiprecision::number<boost::multiprecision::rational_adapter<boost::multiprecision::gmp_int> > >();
+ test<boost::multiprecision::number<boost::multiprecision::rational_adaptor<boost::multiprecision::gmp_int> > >();
    return boost::report_errors();
 }
 

Modified: branches/release/libs/multiprecision/test/test_arithmetic_tommath.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_arithmetic_tommath.cpp (original)
+++ branches/release/libs/multiprecision/test/test_arithmetic_tommath.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -17,7 +17,7 @@
 int main()
 {
    test<boost::multiprecision::tom_int>();
- test<boost::multiprecision::number<boost::multiprecision::rational_adapter<boost::multiprecision::tommath_int> > >();
+ test<boost::multiprecision::number<boost::multiprecision::rational_adaptor<boost::multiprecision::tommath_int> > >();
    return boost::report_errors();
 }
 

Modified: branches/release/libs/multiprecision/test/test_asin.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_asin.cpp (original)
+++ branches/release/libs/multiprecision/test/test_asin.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -16,11 +16,12 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
 //# define TEST_MPF
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
+# define TEST_MPFI_50
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -37,6 +38,9 @@
 #if defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#if defined(TEST_MPFI_50)
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -96,6 +100,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_atan.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_atan.cpp (original)
+++ branches/release/libs/multiprecision/test/test_atan.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -16,11 +16,12 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
 //# define TEST_MPF
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
+# define TEST_MPFI_50
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -37,6 +38,9 @@
 #if defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#if defined(TEST_MPFI_50)
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -194,9 +198,13 @@
    err = relative_error(T(atan2(T(0), T(1))), atan2_def(T(0), T(1))).template convert_to<unsigned>();
    if(err > max_err)
       max_err = err;
- err = relative_error(T(atan2(T(0), T(-1))), atan2_def(T(0), T(-1))).template convert_to<unsigned>();
- if(err > max_err)
- max_err = err;
+ if(!boost::multiprecision::is_interval_number<T>::value)
+ {
+ // We don't test this with intervals as [-0,0] leads to strange behaviour in atan2...
+ err = relative_error(T(atan2(T(0), T(-1))), atan2_def(T(0), T(-1))).template convert_to<unsigned>();
+ if(err > max_err)
+ max_err = err;
+ }
 
    T pi;
    pi.backend() = boost::multiprecision::default_ops::get_constant_pi<typename T::backend_type>();
@@ -246,6 +254,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_cos.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_cos.cpp (original)
+++ branches/release/libs/multiprecision/test/test_cos.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -16,11 +16,12 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
 //# define TEST_MPF
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
+# define TEST_MPFI_50
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -37,6 +38,9 @@
 #if defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#if defined(TEST_MPFI_50)
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -296,6 +300,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_cosh.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_cosh.cpp (original)
+++ branches/release/libs/multiprecision/test/test_cosh.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -16,11 +16,12 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
 //# define TEST_MPF
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
+# define TEST_MPFI_50
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -37,6 +38,9 @@
 #if defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#if defined(TEST_MPFI_50)
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -138,6 +142,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_cpp_int.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_cpp_int.cpp (original)
+++ branches/release/libs/multiprecision/test/test_cpp_int.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -387,6 +387,84 @@
          BOOST_CHECK_EQUAL(q, a);
          BOOST_CHECK_EQUAL(r, 1);
       }
+ // Bug https://svn.boost.org/trac/boost/ticket/8126:
+ test_type a("-4294967296");
+ test_type b("4294967296");
+ test_type c("-1");
+ a = (a / b);
+ BOOST_CHECK_EQUAL(a, -1);
+ a = -4294967296;
+ a = (a / b) * c;
+ BOOST_CHECK_EQUAL(a, 1);
+ a = -23;
+ b = 23;
+ a = (a / b) * c;
+ BOOST_CHECK_EQUAL(a, 1);
+ a = -23;
+ a = (a / b) / c;
+ BOOST_CHECK_EQUAL(a, 1);
+ a = test_type("-26607734784073568386365259775");
+ b = test_type("8589934592");
+ a = a / b;
+ BOOST_CHECK_EQUAL(a, test_type("-3097548007973652377"));
+ // Bug https://svn.boost.org/trac/boost/ticket/8133:
+ a = test_type("0x12345600012434ffffffffffffffffffffffff");
+ unsigned ui = 0xffffffff;
+ a = a - ui;
+ BOOST_CHECK_EQUAL(a, test_type("0x12345600012434ffffffffffffffff00000000"));
+ a = test_type("0x12345600012434ffffffffffffffffffffffff");
+#ifndef BOOST_NO_LONG_LONG
+ unsigned long long ull = 0xffffffffffffffffuLL;
+ a = a - ull;
+ BOOST_CHECK_EQUAL(a, test_type("0x12345600012434ffffffff0000000000000000"));
+#endif
+ //
+ // Now check that things which should be zero really are
+ // https://svn.boost.org/trac/boost/ticket/8145:
+ //
+ a = -1;
+ a += 1;
+ BOOST_CHECK_EQUAL(a, 0);
+ a = 1;
+ a += -1;
+ BOOST_CHECK_EQUAL(a, 0);
+ a = -1;
+ a += test_type(1);
+ BOOST_CHECK_EQUAL(a, 0);
+ a = 1;
+ a += test_type(-1);
+ BOOST_CHECK_EQUAL(a, 0);
+ a = test_type("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
+ a -= test_type("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
+ BOOST_CHECK_EQUAL(a, 0);
+ a = -test_type("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
+ a += test_type("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
+ BOOST_CHECK_EQUAL(a, 0);
+ a = 2;
+ a *= 0;
+ BOOST_CHECK_EQUAL(a, 0);
+ a = -2;
+ a *= 0;
+ BOOST_CHECK_EQUAL(a, 0);
+ a = 2;
+ a *= test_type(0);
+ BOOST_CHECK_EQUAL(a, 0);
+ a = -2;
+ a *= test_type(0);
+ BOOST_CHECK_EQUAL(a, 0);
+ a = -2;
+ a /= 50;
+ BOOST_CHECK_EQUAL(a, 0);
+ a = -test_type("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
+ a /= (1 + test_type("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"));
+ BOOST_CHECK_EQUAL(a, 0);
+ // https://svn.boost.org/trac/boost/ticket/8160
+ a = 1;
+ a = 0 / test_type(1);
+ BOOST_CHECK_EQUAL(a, 0);
+ a = 1;
+ a = 0 % test_type(25);
+ BOOST_CHECK_EQUAL(a, 0);
    }
 
    void test()

Modified: branches/release/libs/multiprecision/test/test_exp.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_exp.cpp (original)
+++ branches/release/libs/multiprecision/test/test_exp.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -16,11 +16,12 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
 //# define TEST_MPF
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
+# define TEST_MPFI_50
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -37,6 +38,9 @@
 #if defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#if defined(TEST_MPFI_50)
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -178,6 +182,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_float_io.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_float_io.cpp (original)
+++ branches/release/libs/multiprecision/test/test_float_io.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -9,10 +9,11 @@
 # define _SCL_SECURE_NO_WARNINGS
 #endif
 
-#if !defined(TEST_MPF_50) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR_50)
+#if !defined(TEST_MPF_50) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
 # define TEST_CPP_DEC_FLOAT
 # define TEST_MPFR_50
+# define TEST_MPFI_50
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -29,6 +30,9 @@
 #if defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#if defined(TEST_MPFI_50)
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
 #include <boost/multiprecision/cpp_dec_float.hpp>
 #endif
@@ -287,6 +291,13 @@
    test_round_trip<boost::multiprecision::mpfr_float_50>();
    test_round_trip<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfr_float_50>();
+ test<boost::multiprecision::mpfr_float_100>();
+
+ test_round_trip<boost::multiprecision::mpfr_float_50>();
+ test_round_trip<boost::multiprecision::mpfr_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_fpclassify.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_fpclassify.cpp (original)
+++ branches/release/libs/multiprecision/test/test_fpclassify.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -14,9 +14,10 @@
 #include <boost/math/special_functions/fpclassify.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
 # define TEST_MPFR_50
+# define TEST_MPFI_50
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
 
@@ -35,6 +36,9 @@
 #ifdef TEST_MPFR_50
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#ifdef TEST_MPFI_50
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -309,6 +313,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_log.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_log.cpp (original)
+++ branches/release/libs/multiprecision/test/test_log.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -16,11 +16,13 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
 //# define TEST_MPF
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
+# define TEST_MPFR_50
+# define TEST_MPFI_50
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -37,6 +39,9 @@
 #ifdef TEST_MPFR_50
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#ifdef TEST_MPFI_50
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -206,6 +211,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_mixed_cpp_int.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_mixed_cpp_int.cpp (original)
+++ branches/release/libs/multiprecision/test/test_mixed_cpp_int.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -69,10 +69,39 @@
    }
 }
 
+void test_rational_mixed()
+{
+ using namespace boost::multiprecision;
+ cpp_int a(2);
+ cpp_rational r(10);
+
+ BOOST_CHECK_EQUAL(a + -r, -8);
+ BOOST_CHECK_EQUAL(-r + a, -8);
+ BOOST_CHECK_EQUAL(-a + r, 8);
+ BOOST_CHECK_EQUAL(r + -a, 8);
+
+ BOOST_CHECK_EQUAL(a - -r, 12);
+ BOOST_CHECK_EQUAL(-r - a, -12);
+ BOOST_CHECK_EQUAL(-a - r, -12);
+ BOOST_CHECK_EQUAL(r - -a, 12);
+
+ BOOST_CHECK_EQUAL(a * -r, -20);
+ BOOST_CHECK_EQUAL(-r * a, -20);
+ BOOST_CHECK_EQUAL(-a * r, -20);
+ BOOST_CHECK_EQUAL(r * -a, -20);
+
+ BOOST_CHECK_EQUAL(a / -r, cpp_rational(-2, 10));
+ BOOST_CHECK_EQUAL(-r / a, -5);
+ BOOST_CHECK_EQUAL(cpp_rational(-a / r), cpp_rational(-2, 10));
+ BOOST_CHECK_EQUAL(r / -a, -5);
+}
+
 int main()
 {
    using namespace boost::multiprecision;
 
+ test_rational_mixed();
+
    test<checked_int512_t, checked_int1024_t>();
    test<checked_int256_t, checked_int512_t>();
    test<number<cpp_int_backend<64, 64, signed_magnitude, checked, void>, et_off>, checked_int128_t>();

Modified: branches/release/libs/multiprecision/test/test_numeric_limits.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_numeric_limits.cpp (original)
+++ branches/release/libs/multiprecision/test/test_numeric_limits.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -11,7 +11,7 @@
 
 #if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && \
    !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ) && \
- !defined(TEST_TOMMATH) && !defined(TEST_CPP_INT)
+ !defined(TEST_TOMMATH) && !defined(TEST_CPP_INT) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
 # define TEST_MPF
 # define TEST_BACKEND
@@ -22,6 +22,7 @@
 # define TEST_MPQ
 # define TEST_TOMMATH
 # define TEST_CPP_INT
+# define TEST_MPFI_50
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -44,6 +45,9 @@
 #if defined(TEST_MPFR) || defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#if defined(TEST_MPFI_50)
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_TOMMATH
 #include <boost/multiprecision/tommath.hpp>
 #endif
@@ -236,6 +240,10 @@
 #ifdef TEST_MPFR_50
    test<boost::multiprecision::mpfr_float_50>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float>();
+#endif
 #ifdef TEST_TOMMATH
    test<boost::multiprecision::tom_int>();
 #endif

Modified: branches/release/libs/multiprecision/test/test_pow.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_pow.cpp (original)
+++ branches/release/libs/multiprecision/test/test_pow.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -16,12 +16,13 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
 //# define TEST_MPF
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
 # define TEST_MPFR_50
+# define TEST_MPFI_50
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -38,6 +39,9 @@
 #if defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#if defined(TEST_MPFI_50)
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -581,6 +585,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_rational_io.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_rational_io.cpp (original)
+++ branches/release/libs/multiprecision/test/test_rational_io.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -36,7 +36,7 @@
 #include <boost/algorithm/string/case_conv.hpp>
 #include <boost/random/mersenne_twister.hpp>
 #include <boost/random/uniform_int.hpp>
-#include <boost/multiprecision/rational_adapter.hpp>
+#include <boost/multiprecision/rational_adaptor.hpp>
 #include "test.hpp"
 #include <iostream>
 #include <iomanip>
@@ -130,7 +130,7 @@
 #ifdef TEST_MPQ
    test_round_trip<boost::multiprecision::mpq_rational>();
    test_round_trip<boost::rational<boost::multiprecision::mpz_int> >();
- test_round_trip<boost::multiprecision::number<boost::multiprecision::rational_adapter<boost::multiprecision::gmp_int> > >();
+ test_round_trip<boost::multiprecision::number<boost::multiprecision::rational_adaptor<boost::multiprecision::gmp_int> > >();
 #endif
 #ifdef TEST_TOMMATH
    test_round_trip<boost::rational<boost::multiprecision::tom_int> >();

Modified: branches/release/libs/multiprecision/test/test_round.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_round.cpp (original)
+++ branches/release/libs/multiprecision/test/test_round.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -15,9 +15,10 @@
 #include <boost/random/mersenne_twister.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
 # define TEST_MPFR_50
+# define TEST_MPFI_50
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
 
@@ -36,6 +37,9 @@
 #ifdef TEST_MPFR_50
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#ifdef TEST_MPFI_50
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -72,7 +76,7 @@
 }
 
 template <class T, class U>
-void check_within_half(T a, U u)
+typename boost::disable_if_c<boost::multiprecision::is_interval_number<T>::value>::type check_within_half(T a, U u)
 {
    BOOST_MATH_STD_USING
    if(fabs(a-u) > 0.5f)
@@ -88,6 +92,23 @@
          << std::left << a << u << std::endl;
    }
 }
+template <class T, class U>
+typename boost::enable_if_c<boost::multiprecision::is_interval_number<T>::value>::type check_within_half(T a, U u)
+{
+ BOOST_MATH_STD_USING
+ if(upper(T(fabs(a-u))) > 0.5f)
+ {
+ BOOST_ERROR("Rounded result differed by more than 0.5 from the original");
+ std::cerr << "Values were: " << std::setprecision(35) << std::setw(40)
+ << std::left << a << u << std::endl;
+ }
+ if((upper(T(fabs(a - u))) == 0.5f) && (fabs(static_cast<T>(u)) < fabs(a)))
+ {
+ BOOST_ERROR("Rounded result was towards zero with boost::round");
+ std::cerr << "Values were: " << std::setprecision(35) << std::setw(40)
+ << std::left << a << u << std::endl;
+ }
+}
 
 //
 // We may not have an abs overload for long long so provide a fall back:
@@ -390,6 +411,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_sin.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_sin.cpp (original)
+++ branches/release/libs/multiprecision/test/test_sin.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -16,9 +16,10 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
-//# define TEST_MPF
+# define TEST_MPFR_50
+# define TEST_MPFI_50
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
 
@@ -37,6 +38,9 @@
 #if defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#if defined(TEST_MPFI_50)
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -290,6 +294,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_sinh.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_sinh.cpp (original)
+++ branches/release/libs/multiprecision/test/test_sinh.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -16,9 +16,10 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
-//# define TEST_MPF
+# define TEST_MPFR_50
+# define TEST_MPFI_50
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
 
@@ -37,6 +38,9 @@
 #if defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#if defined(TEST_MPFI_50)
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -214,6 +218,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_sqrt.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_sqrt.cpp (original)
+++ branches/release/libs/multiprecision/test/test_sqrt.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -16,9 +16,10 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
-//# define TEST_MPF
+# define TEST_MPFR_50
+# define TEST_MPFI_50
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
 
@@ -37,6 +38,9 @@
 #if defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#if defined(TEST_MPFI_50)
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -183,6 +187,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_tan.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_tan.cpp (original)
+++ branches/release/libs/multiprecision/test/test_tan.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -16,9 +16,9 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
-//# define TEST_MPF
+# define TEST_MPFI_50
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
 # define TEST_MPFR_50
@@ -38,6 +38,9 @@
 #if defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#if defined(TEST_MPFI_50)
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -588,6 +591,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/test_tanh.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/test_tanh.cpp (original)
+++ branches/release/libs/multiprecision/test/test_tanh.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -16,9 +16,10 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_CPP_DEC_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPFI_50)
 # define TEST_MPF_50
-//# define TEST_MPF
+# define TEST_MPFR_50
+# define TEST_MPFI_50
 # define TEST_BACKEND
 # define TEST_CPP_DEC_FLOAT
 
@@ -37,6 +38,9 @@
 #if defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
 #endif
+#if defined(TEST_MPFI_50)
+#include <boost/multiprecision/mpfi.hpp>
+#endif
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_archetypes.hpp>
 #endif
@@ -133,6 +137,10 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
+#ifdef TEST_MPFI_50
+ test<boost::multiprecision::mpfi_float_50>();
+ test<boost::multiprecision::mpfi_float_100>();
+#endif
 #ifdef TEST_CPP_DEC_FLOAT
    test<boost::multiprecision::cpp_dec_float_50>();
    test<boost::multiprecision::cpp_dec_float_100>();

Modified: branches/release/libs/multiprecision/test/ublas_interop/test1.hpp
==============================================================================
--- branches/release/libs/multiprecision/test/ublas_interop/test1.hpp (original)
+++ branches/release/libs/multiprecision/test/ublas_interop/test1.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -14,12 +14,16 @@
 #define TEST1_H
 
 #ifdef _MSC_VER
-# pragma warning(disable:4800 4996)
+# pragma warning(disable:4800 4996 4127 4100)
 #endif
 
 #include <boost/multiprecision/cpp_dec_float.hpp>
 
+#ifdef TEST_ET
+typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>, boost::multiprecision::et_on> mp_test_type;
+#else
 typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>, boost::multiprecision::et_off> mp_test_type;
+#endif
 //typedef double mp_test_type;
 
 #define USE_RANGE

Modified: branches/release/libs/multiprecision/test/ublas_interop/test2.hpp
==============================================================================
--- branches/release/libs/multiprecision/test/ublas_interop/test2.hpp (original)
+++ branches/release/libs/multiprecision/test/ublas_interop/test2.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -13,12 +13,16 @@
 #ifndef TEST2_H
 #define TEST2_H
 #ifdef _MSC_VER
-# pragma warning(disable:4800 4996)
+# pragma warning(disable:4800 4996 4127 4100 4018)
 #endif
 
 #include <boost/multiprecision/cpp_dec_float.hpp>
 
+#ifdef TEST_ET
+typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>, boost::multiprecision::et_on> mp_test_type;
+#else
 typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>, boost::multiprecision::et_off> mp_test_type;
+#endif
 //typedef double mp_test_type;
 
 #define USE_RANGE

Modified: branches/release/libs/multiprecision/test/ublas_interop/test3.hpp
==============================================================================
--- branches/release/libs/multiprecision/test/ublas_interop/test3.hpp (original)
+++ branches/release/libs/multiprecision/test/ublas_interop/test3.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -14,12 +14,16 @@
 #define TEST3_H
 
 #ifdef _MSC_VER
-# pragma warning(disable:4800 4996)
+# pragma warning(disable:4800 4996 4127 4100)
 #endif
 
 #include <boost/multiprecision/cpp_dec_float.hpp>
 
+#ifdef TEST_ET
+typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>, boost::multiprecision::et_on> mp_test_type;
+#else
 typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>, boost::multiprecision::et_off> mp_test_type;
+#endif
 //typedef double mp_test_type;
 
 #define USE_RANGE

Modified: branches/release/libs/multiprecision/test/ublas_interop/test4.hpp
==============================================================================
--- branches/release/libs/multiprecision/test/ublas_interop/test4.hpp (original)
+++ branches/release/libs/multiprecision/test/ublas_interop/test4.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -14,12 +14,16 @@
 #define TEST4_H
 
 #ifdef _MSC_VER
-# pragma warning(disable:4800 4996)
+# pragma warning(disable:4800 4996 4127 4100)
 #endif
 
 #include <boost/multiprecision/cpp_dec_float.hpp>
 
+#ifdef TEST_ET
+typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>, boost::multiprecision::et_on> mp_test_type;
+#else
 typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>, boost::multiprecision::et_off> mp_test_type;
+#endif
 //typedef double mp_test_type;
 
 #define USE_RANGE

Modified: branches/release/libs/multiprecision/test/ublas_interop/test5.hpp
==============================================================================
--- branches/release/libs/multiprecision/test/ublas_interop/test5.hpp (original)
+++ branches/release/libs/multiprecision/test/ublas_interop/test5.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -14,12 +14,16 @@
 #define TEST5_H
 
 #ifdef _MSC_VER
-# pragma warning(disable:4800 4996)
+# pragma warning(disable:4800 4996 4127 4100)
 #endif
 
 #include <boost/multiprecision/cpp_dec_float.hpp>
 
+#ifdef TEST_ET
+typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>, boost::multiprecision::et_on> mp_test_type;
+#else
 typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>, boost::multiprecision::et_off> mp_test_type;
+#endif
 //typedef double mp_test_type;
 
 #define USE_RANGE

Modified: branches/release/libs/multiprecision/test/ublas_interop/test6.hpp
==============================================================================
--- branches/release/libs/multiprecision/test/ublas_interop/test6.hpp (original)
+++ branches/release/libs/multiprecision/test/ublas_interop/test6.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -13,6 +13,36 @@
 #ifndef TEST6_H
 #define TEST6_H
 
+#ifdef _MSC_VER
+# pragma warning(disable:4800 4996 4127 4100)
+#endif
+
+#include <boost/multiprecision/cpp_dec_float.hpp>
+
+#ifdef TEST_ET
+typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>, boost::multiprecision::et_on> mp_test_type;
+#else
+typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>, boost::multiprecision::et_off> mp_test_type;
+#endif
+//typedef double mp_test_type;
+
+#define USE_RANGE
+#define USE_SLICE
+#define USE_FLOAT
+#define USE_UNBOUNDED_ARRAY
+#define USE_BOUNDED_ARRAY
+#define USE_STD_VECTOR
+#define USE_BOUNDED_VECTOR USE_MATRIX
+#define USE_UNBOUNDED_ARRAY
+#define USE_MAP_ARRAY
+#define USE_STD_MAP
+#define USE_MAPPED_VECTOR
+#define USE_COMPRESSED_VECTOR
+#define USE_COORDINATE_VECTOR
+#define USE_MAPPED_MATRIX
+#define USE_COMPRESSED_MATRIX
+#define USE_COORDINATE_MATRIX
+
 #include <iostream>
 
 #include <boost/numeric/ublas/vector.hpp>

Modified: branches/release/libs/multiprecision/test/ublas_interop/test7.hpp
==============================================================================
--- branches/release/libs/multiprecision/test/ublas_interop/test7.hpp (original)
+++ branches/release/libs/multiprecision/test/ublas_interop/test7.hpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -19,13 +19,18 @@
 
 #include <boost/multiprecision/cpp_dec_float.hpp>
 
+#ifdef TEST_ET
+typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>, boost::multiprecision::et_on> mp_test_type;
+#else
 typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>, boost::multiprecision::et_off> mp_test_type;
+#endif
 //typedef double mp_test_type;
 
 #define USE_RANGE
 #define USE_SLICE
 #define USE_FLOAT
-#define USE_UNBOUNDED_ARRAY
+#define USE_UNBOUNDED_ARRAY
+#define USE_BOUNDED_ARRAY
 #define USE_STD_VECTOR
 #define USE_BOUNDED_VECTOR USE_MATRIX
 #define USE_UNBOUNDED_ARRAY

Modified: branches/release/libs/multiprecision/test/ublas_interop/test71.cpp
==============================================================================
--- branches/release/libs/multiprecision/test/ublas_interop/test71.cpp (original)
+++ branches/release/libs/multiprecision/test/ublas_interop/test71.cpp 2013-03-22 09:02:53 EDT (Fri, 22 Mar 2013)
@@ -9,6 +9,10 @@
 // GeNeSys mbH & Co. KG in producing this work.
 //
 
+//
+// This file fails to compile - appears to be a known uBlas issue :-(
+//
+
 #include "test7.hpp"
 
 // Test vector expression templates


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