$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r75166 - in sandbox/big_number: boost/multiprecision boost/multiprecision/detail boost/multiprecision/detail/functions libs/multiprecision/test
From: john_at_[hidden]
Date: 2011-10-29 07:57:57
Author: johnmaddock
Date: 2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
New Revision: 75166
URL: http://svn.boost.org/trac/boost/changeset/75166
Log:
Get mp_float passing all the tests, fix some bugs in acos and atan implementations.
Text files modified: 
   sandbox/big_number/boost/multiprecision/detail/default_ops.hpp          |    12 +                                       
   sandbox/big_number/boost/multiprecision/detail/functions/trig.hpp       |     7                                         
   sandbox/big_number/boost/multiprecision/gmp.hpp                         |    28 ++++                                    
   sandbox/big_number/boost/multiprecision/mp_float.hpp                    |   203 ++++++++++++++++++++++++++++++++++++-   
   sandbox/big_number/boost/multiprecision/mp_number.hpp                   |     2                                         
   sandbox/big_number/libs/multiprecision/test/Jamfile.v2                  |    85 +++++++++++++++                         
   sandbox/big_number/libs/multiprecision/test/mp_number_concept_check.cpp |    18 +-                                      
   sandbox/big_number/libs/multiprecision/test/test_acos.cpp               |    13 +-                                      
   sandbox/big_number/libs/multiprecision/test/test_arithmetic.cpp         |     6 -                                       
   sandbox/big_number/libs/multiprecision/test/test_asin.cpp               |    13 +-                                      
   sandbox/big_number/libs/multiprecision/test/test_atan.cpp               |    25 ++--                                    
   sandbox/big_number/libs/multiprecision/test/test_cos.cpp                |   215 ++++++++++++++++++++------------------- 
   sandbox/big_number/libs/multiprecision/test/test_cosh.cpp               |    13 +-                                      
   sandbox/big_number/libs/multiprecision/test/test_exp.cpp                |    13 +-                                      
   sandbox/big_number/libs/multiprecision/test/test_log.cpp                |    13 +-                                      
   sandbox/big_number/libs/multiprecision/test/test_pow.cpp                |    13 +-                                      
   sandbox/big_number/libs/multiprecision/test/test_sin.cpp                |    23 +--                                     
   sandbox/big_number/libs/multiprecision/test/test_sinh.cpp               |    13 +-                                      
   sandbox/big_number/libs/multiprecision/test/test_tanh.cpp               |    13 +-                                      
   19 files changed, 514 insertions(+), 214 deletions(-)
Modified: sandbox/big_number/boost/multiprecision/detail/default_ops.hpp
==============================================================================
--- sandbox/big_number/boost/multiprecision/detail/default_ops.hpp	(original)
+++ sandbox/big_number/boost/multiprecision/detail/default_ops.hpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -314,7 +314,12 @@
    typedef typename calculate_next_larger_type<R, B>::type next_type;
    next_type n;
    convert_to(&n, backend);
-   *result = static_cast<R>(n);
+   if(std::numeric_limits<R>::is_specialized && (n > (std::numeric_limits<R>::max)()))
+   {
+      *result = (std::numeric_limits<R>::max)();
+   }
+   else
+      *result = static_cast<R>(n);
 }
 
 template <class R, class B>
@@ -386,14 +391,15 @@
 template <class T>
 inline void eval_round(T& result, const T& a)
 {
+   typedef typename boost::multiprecision::detail::canonical<float, T>::type fp_type;
    if(get_sign(a) < 0)
    {
-      subtract(result, a, 0.5f);
+      subtract(result, a, fp_type(0.5f));
       eval_ceil(result, result);
    }
    else
    {
-      add(result, a, 0.5f);
+      add(result, a, fp_type(0.5f));
       eval_floor(result, result);
    }
 }
Modified: sandbox/big_number/boost/multiprecision/detail/functions/trig.hpp
==============================================================================
--- sandbox/big_number/boost/multiprecision/detail/functions/trig.hpp	(original)
+++ sandbox/big_number/boost/multiprecision/detail/functions/trig.hpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -546,7 +546,10 @@
    }
    else if(c == 0)
    {
-      result = ui_type(0);
+      if(get_sign(x) < 0)
+         result = get_constant_pi<T>();
+      else
+         result = ui_type(0);
       return;
    }
 
@@ -694,7 +697,7 @@
    case FP_ZERO:
       {
          eval_ldexp(result, get_constant_pi<T>(), -1);
-         if(get_sign(x) < 0)
+         if(get_sign(y) < 0)
             result.negate();
          return;
       }
Modified: sandbox/big_number/boost/multiprecision/gmp.hpp
==============================================================================
--- sandbox/big_number/boost/multiprecision/gmp.hpp	(original)
+++ sandbox/big_number/boost/multiprecision/gmp.hpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -556,12 +556,21 @@
 template <unsigned digits10>
 inline void convert_to(unsigned long* result, const gmp_float<digits10>& val)
 {
-   *result = mpf_get_ui(val.data());
+   if(0 == mpf_fits_ulong_p(val.data()))
+      *result = (std::numeric_limits<unsigned long>::max)();
+   else
+      *result = mpf_get_ui(val.data());
 }
 template <unsigned digits10>
 inline void convert_to(long* result, const gmp_float<digits10>& val)
 {
-   *result = mpf_get_si(val.data());
+   if(0 == mpf_fits_slong_p(val.data()))
+   {
+      *result = (std::numeric_limits<unsigned long>::max)();
+      *result *= mpf_sgn(val.data());
+   }
+   else
+      *result = mpf_get_si(val.data());
 }
 template <unsigned digits10>
 inline void convert_to(double* result, const gmp_float<digits10>& val)
@@ -1122,11 +1131,22 @@
 }
 inline void convert_to(unsigned long* result, const gmp_int& val)
 {
-   *result = mpz_get_ui(val.data());
+   if(0 == mpz_fits_ulong_p(val.data()))
+   {
+      *result = (std::numeric_limits<unsigned long>::max)();
+   }
+   else
+      *result = mpz_get_ui(val.data());
 }
 inline void convert_to(long* result, const gmp_int& val)
 {
-   *result = mpz_get_si(val.data());
+   if(0 == mpz_fits_slong_p(val.data()))
+   {
+      *result = (std::numeric_limits<unsigned long>::max)();
+      *result *= mpz_sgn(val.data());
+   }
+   else
+      *result = mpz_get_si(val.data());
 }
 inline void convert_to(double* result, const gmp_int& val)
 {
Modified: sandbox/big_number/boost/multiprecision/mp_float.hpp
==============================================================================
--- sandbox/big_number/boost/multiprecision/mp_float.hpp	(original)
+++ sandbox/big_number/boost/multiprecision/mp_float.hpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -16,6 +16,11 @@
 #include <boost/array.hpp>
 #include <boost/multiprecision/mp_number.hpp>
 
+//
+// Headers required for Boost.Math integration:
+//
+#include <boost/math/policies/policy.hpp>
+
 namespace boost{
 namespace multiprecision{
 
@@ -88,6 +93,7 @@
             mp_float<Digits10>::zero();
             mp_float<Digits10>::one();
             mp_float<Digits10>::two();
+            mp_float<Digits10>::half();
             mp_float<Digits10>::double_min();
             mp_float<Digits10>::double_max();
             mp_float<Digits10>::long_double_max();
@@ -228,6 +234,12 @@
       static mp_float val(static_cast<unsigned long long>(2u));
       return val;
    }
+   static const mp_float& half()
+   {
+      init.do_nothing();
+      static mp_float val(0.5L);
+      return val;
+   }
    static const mp_float& double_min()
    {
       init.do_nothing();
@@ -403,6 +415,57 @@
       }
    }
    static mp_float pow2(long long i);
+   long long order()const
+   {
+      const bool bo_order_is_zero = ((!isfinite()) || (data[0] == static_cast<boost::uint32_t>(0u)));
+      //
+      // Binary search to find the order of the leading term:
+      //
+      boost::uint32_t prefix = 0;
+
+      if(data[0] >= 100000UL)
+      {
+         if(data[0] >= 10000000UL)
+         {
+            if(data[0] >= 100000000UL)
+            {
+               if(data[0] >= 1000000000UL)
+                  prefix = 9;
+               else
+                  prefix = 8;
+            }
+            else
+               prefix = 7;
+         }
+         else
+         {
+            if(data[0] >= 1000000UL)
+               prefix = 6;
+            else
+               prefix = 5;
+         }
+      }
+      else
+      {
+         if(data[0] >= 1000UL)
+         {
+            if(data[0] >= 10000UL)
+               prefix = 4;
+            else
+               prefix = 3;
+         }
+         else
+         {
+            if(data[0] >= 100)
+               prefix = 2;
+            else if(data[0] >= 10)
+               prefix = 1;
+         }
+      }
+
+      return (bo_order_is_zero ? static_cast<boost::int64_t>(0)
+         : static_cast<boost::int64_t>(exp + prefix));
+   }
 
 private:
    static bool data_elem_is_non_zero_predicate(const boost::uint32_t& d) { return (d != static_cast<boost::uint32_t>(0u)); }
@@ -418,13 +481,6 @@
    static boost::uint32_t div_loop_n(boost::uint32_t* const u, boost::uint32_t n, const boost::int32_t p);
 
    bool rd_string(const char* const s);
-   long long order()const
-   {
-      const bool bo_order_is_zero = ((!isfinite()) || (data[0] == static_cast<boost::uint32_t>(0u)));
-
-      return (bo_order_is_zero ? static_cast<boost::int64_t>(0)
-         : static_cast<boost::int64_t>(exp + static_cast<boost::int32_t>(std::log10(static_cast<double>(data[0])) + (std::numeric_limits<double>::epsilon() * 0.9))));
-   }
 };
 
 template <unsigned Digits10>
@@ -2462,7 +2518,7 @@
 // Non member function support:
 //
 template <unsigned Digits10>
-int eval_fpclassify(const mp_float<Digits10>& x)
+inline int eval_fpclassify(const mp_float<Digits10>& x)
 {
    if(x.isinf())
       return FP_INFINITE;
@@ -2473,6 +2529,114 @@
    return FP_NORMAL;
 }
 
+template <unsigned Digits10>
+inline void eval_abs(mp_float<Digits10>& result, const mp_float<Digits10>& x)
+{
+   result = x;
+   if(x.isneg())
+      result.negate();
+}
+
+template <unsigned Digits10>
+inline void eval_fabs(mp_float<Digits10>& result, const mp_float<Digits10>& x)
+{
+   result = x;
+   if(x.isneg())
+      result.negate();
+}
+
+template <unsigned Digits10>
+inline void eval_sqrt(mp_float<Digits10>& result, const mp_float<Digits10>& x)
+{
+   result = x;
+   result.calculate_sqrt();
+}
+
+template <unsigned Digits10>
+inline void eval_floor(mp_float<Digits10>& result, const mp_float<Digits10>& x)
+{
+   result = x;
+   if(!x.isfinite() || x.isint()) 
+   { 
+      return; 
+   }
+
+   if(x.isneg())
+      result -= mp_float<Digits10>::one();
+   result = result.extract_integer_part();
+}
+
+template <unsigned Digits10>
+inline void eval_ceil(mp_float<Digits10>& result, const mp_float<Digits10>& x)
+{
+   result = x;
+   if(!x.isfinite() || x.isint()) 
+   { 
+      return; 
+   }
+
+   if(!x.isneg())
+      result += mp_float<Digits10>::one();
+   result = result.extract_integer_part();
+}
+
+template <unsigned Digits10>
+inline void eval_trunc(mp_float<Digits10>& result, const mp_float<Digits10>& x)
+{
+   if(!x.isfinite() || x.isint()) 
+   { 
+      result = x;
+      return; 
+   }
+   result = x.extract_integer_part();
+}
+
+template <unsigned Digits10>
+inline void eval_ldexp(mp_float<Digits10>& result, const mp_float<Digits10>& x, long long e)
+{
+   result = x;
+   result *= mp_float<Digits10>::pow2(e);
+}
+
+template <unsigned Digits10>
+inline void eval_frexp(mp_float<Digits10>& result, const mp_float<Digits10>& x, long long* e)
+{
+   result = x;
+   if(result.isneg())
+      result.negate();
+
+   long long t = result.order();
+
+   if(std::abs(t) > (std::numeric_limits<long long>::max)() / 3)
+      throw std::runtime_error("Exponent is too large to be represented as a power of 2.");
+   t *= 3;
+
+   result *= mp_float<Digits10>::pow2(-t);
+
+   while(result.compare(mp_float<Digits10>::one()) >= 0)
+   {
+      result /= mp_float<Digits10>::two();
+      ++t;
+   }
+   while(result.compare(mp_float<Digits10>::half()) < 0)
+   {
+      result *= mp_float<Digits10>::two();
+      --t;
+   }
+   *e = t;
+   if(x.isneg())
+      result.negate();
+}
+
+template <unsigned Digits10>
+inline void eval_frexp(mp_float<Digits10>& result, const mp_float<Digits10>& x, int* e)
+{
+   long long t;
+   eval_frexp(result, x, &t);
+   if(t > (std::numeric_limits<int>::max)())
+      throw std::runtime_error("Exponent is outside the range of an int");
+   *e = static_cast<int>(t);
+}
 
 typedef mp_number<mp_float<50> > mp_float_50;
 typedef mp_number<mp_float<100> > mp_float_100;
@@ -2521,6 +2685,29 @@
    };
 }
 
+namespace boost{ namespace math{
+
+namespace policies{
+
+template <unsigned Digits10, class Policy>
+struct precision< boost::multiprecision::mp_number<boost::multiprecision::mp_float<Digits10> >, Policy>
+{
+   typedef typename Policy::precision_type precision_type;
+   typedef digits2<((Digits10 + 1) * 1000L) / 301L> digits_2;
+   typedef typename mpl::if_c<
+      ((digits_2::value <= precision_type::value) 
+      || (Policy::precision_type::value <= 0)),
+      // Default case, full precision for RealType:
+      digits_2,
+      // User customised precision:
+      precision_type
+   >::type type;
+};
+
+} // namespace policies
+
+}} // namespaces boost::math
+
 
 #endif
 
Modified: sandbox/big_number/boost/multiprecision/mp_number.hpp
==============================================================================
--- sandbox/big_number/boost/multiprecision/mp_number.hpp	(original)
+++ sandbox/big_number/boost/multiprecision/mp_number.hpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -45,7 +45,7 @@
    }
 
    template <class V>
-   mp_number(V v, typename enable_if<mpl::and_<is_convertible<V, Backend>, mpl::not_<boost::is_arithmetic<V> > > >::type* dummy1 = 0)
+   mp_number(V v, typename enable_if<mpl::and_<is_convertible<V, Backend>, mpl::not_<mpl::or_<boost::is_arithmetic<V>, is_same<std::string, V>, is_convertible<V, const char*> > > > >::type* dummy1 = 0)
       : m_backend(v){}
 
    template <class tag, class Arg1, class Arg2, class Arg3>
Modified: sandbox/big_number/libs/multiprecision/test/Jamfile.v2
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/Jamfile.v2	(original)
+++ sandbox/big_number/libs/multiprecision/test/Jamfile.v2	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -166,6 +166,14 @@
          [ check-target-builds ../config//has_gmp : : <build>no ]
         : big_number_concept_check_mpf50 ;
 
+run mp_number_concept_check.cpp
+        : # command line
+        : # input files
+        : # requirements
+	      <define>TEST_MP_FLOAT
+         [ check-target-builds ../config//has_gmp : : <build>no ]
+        : big_number_concept_check_mp_float ;
+
 run test_exp.cpp gmp
         : # command line
         : # input files
@@ -262,6 +270,55 @@
          [ check-target-builds ../config//has_mpfr : : <build>no ]
         : test_tanh_mpfr50 ;
 
+run test_exp.cpp 
+        : # command line
+        : # input files
+        : # requirements
+	      <define>TEST_MP_FLOAT
+        : test_exp_mp_float ;
+
+run test_log.cpp 
+        : # command line
+        : # input files
+        : # requirements
+	      <define>TEST_MP_FLOAT
+        : test_log_mp_float ;
+
+run test_pow.cpp 
+        : # command line
+        : # input files
+        : # requirements
+	      <define>TEST_MP_FLOAT
+        : test_pow_mp_float ;
+
+run test_sinh.cpp 
+        : # command line
+        : # input files
+        : # requirements
+	      <define>TEST_MP_FLOAT
+        : test_sinh_mp_float ;
+
+run test_cosh.cpp 
+        : # command line
+        : # input files
+        : # requirements
+	      <define>TEST_MP_FLOAT
+        : test_cosh_mp_float ;
+
+run test_tanh.cpp 
+        : # command line
+        : # input files
+        : # requirements
+	      <define>TEST_MP_FLOAT
+        : test_tanh_mp_float ;
+
+run test_sin.cpp
+        : # command line
+        : # input files
+        : # requirements
+	      <define>TEST_MP_FLOAT
+        : test_sin_mp_float ;
+
 run test_sin.cpp gmp
         : # command line
         : # input files
@@ -278,6 +335,13 @@
          [ check-target-builds ../config//has_mpfr : : <build>no ]
         : test_sin_mpfr_50 ;
 
+run test_cos.cpp
+        : # command line
+        : # input files
+        : # requirements
+	      <define>TEST_MP_FLOAT
+        : test_cos_mp_float ;
+
 run test_cos.cpp gmp
         : # command line
         : # input files
@@ -294,6 +358,13 @@
          [ check-target-builds ../config//has_mpfr : : <build>no ]
         : test_cos_mpfr_50 ;
 
+run test_asin.cpp
+        : # command line
+        : # input files
+        : # requirements
+	      <define>TEST_MP_FLOAT
+        : test_asin_mp_float ;
+
 run test_asin.cpp gmp
         : # command line
         : # input files
@@ -310,6 +381,13 @@
          [ check-target-builds ../config//has_mpfr : : <build>no ]
         : test_asin_mpfr_50 ;
 
+run test_acos.cpp
+        : # command line
+        : # input files
+        : # requirements
+	      <define>TEST_MP_FLOAT
+        : test_acos_mp_float ;
+
 run test_acos.cpp gmp
         : # command line
         : # input files
@@ -334,6 +412,13 @@
          [ check-target-builds ../config//has_gmp : : <build>no ]
         : test_atan_mpf50 ;
 
+run test_atan.cpp
+        : # command line
+        : # input files
+        : # requirements
+	      <define>TEST_MP_FLOAT
+        : test_atan_mp_float ;
+
 run test_atan.cpp mpfr
         : # command line
         : # input files
Modified: sandbox/big_number/libs/multiprecision/test/mp_number_concept_check.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/mp_number_concept_check.cpp	(original)
+++ sandbox/big_number/libs/multiprecision/test/mp_number_concept_check.cpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -5,7 +5,7 @@
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 //
-// This tests two things: that e_float meets our
+// This tests two things: that mp_float_50 meets our
 // conceptual requirements, and that we can instantiate
 // all our distributions and special functions on this type.
 //
@@ -20,14 +20,14 @@
 #  pragma warning(disable:4503) // decorated name length exceeded, name was truncated
 #endif
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_E_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50)
+#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_MP_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50)
 #  define TEST_MPF_50
 #  define TEST_MPF
 #  define TEST_BACKEND
 #  define TEST_MPZ
 #  define TEST_MPFR
 #  define TEST_MPFR_50
-#  define TEST_E_FLOAT
+#  define TEST_MP_FLOAT
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -44,8 +44,8 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_architypes.hpp>
 #endif
-#ifdef TEST_E_FLOAT
-#include <boost/multiprecision/e_float.hpp>
+#ifdef TEST_MP_FLOAT
+#include <boost/multiprecision/mp_float.hpp>
 #endif
 #if defined(TEST_MPFR) || defined(TEST_MPFR_50)
 #include <boost/multiprecision/mpfr.hpp>
@@ -71,8 +71,8 @@
 #ifdef TEST_MPFR
    instantiate(boost::multiprecision::mpfr_float());
 #endif
-#ifdef TEST_E_FLOAT
-   instantiate(boost::multiprecision::e_float());
+#ifdef TEST_MP_FLOAT
+   instantiate(boost::multiprecision::mp_float_50());
 #endif
 }
 
@@ -93,8 +93,8 @@
 #ifdef TEST_MPFR
    BOOST_CONCEPT_ASSERT((boost::math::concepts::RealTypeConcept<boost::multiprecision::mpfr_float>));
 #endif
-#ifdef TEST_E_FLOAT
-   BOOST_CONCEPT_ASSERT((boost::math::concepts::RealTypeConcept<boost::multiprecision::e_float>));
+#ifdef TEST_MP_FLOAT
+   BOOST_CONCEPT_ASSERT((boost::math::concepts::RealTypeConcept<boost::multiprecision::mp_float_50>));
 #endif
 
 }
Modified: sandbox/big_number/libs/multiprecision/test/test_acos.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/test_acos.cpp	(original)
+++ sandbox/big_number/libs/multiprecision/test/test_acos.cpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -12,11 +12,11 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_E_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_MP_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
 #  define TEST_MPF_50
 //#  define TEST_MPF
 #  define TEST_BACKEND
-#  define TEST_E_FLOAT
+#  define TEST_MP_FLOAT
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -36,8 +36,8 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_architypes.hpp>
 #endif
-#ifdef TEST_E_FLOAT
-#include <boost/multiprecision/e_float.hpp>
+#ifdef TEST_MP_FLOAT
+#include <boost/multiprecision/mp_float.hpp>
 #endif
 
 template <class T>
@@ -96,8 +96,9 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
-#ifdef TEST_E_FLOAT
-   test<boost::multiprecision::e_float>();
+#ifdef TEST_MP_FLOAT
+   test<boost::multiprecision::mp_float_50>();
+   test<boost::multiprecision::mp_float_100>();
 #endif
    return boost::report_errors();
 }
Modified: sandbox/big_number/libs/multiprecision/test/test_arithmetic.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/test_arithmetic.cpp	(original)
+++ sandbox/big_number/libs/multiprecision/test/test_arithmetic.cpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -272,7 +272,6 @@
 template <class Real>
 void test_float_ops(const boost::mpl::int_<boost::multiprecision::number_kind_floating_point>&)
 {
-#if defined(TEST_MPF) || defined(TEST_MPF_50) || defined(TEST_BACKEND) || defined(TEST_MPFR)
    BOOST_TEST(abs(Real(2)) == 2);
    BOOST_TEST(abs(Real(-2)) == 2);
    BOOST_TEST(fabs(Real(2)) == 2);
@@ -318,11 +317,6 @@
    BOOST_TEST(r == boost::math::pow<6>(3.25));
    r = pow(v, 25);
    BOOST_TEST(r == boost::math::pow<25>(Real(3.25)));
-   /*
-   r = pow(v, 56);
-   BOOST_TEST(r == boost::math::pow<56>(Real(3.25)));
-   */
-#endif
 }
 
 template <class T>
Modified: sandbox/big_number/libs/multiprecision/test/test_asin.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/test_asin.cpp	(original)
+++ sandbox/big_number/libs/multiprecision/test/test_asin.cpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -12,11 +12,11 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_E_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_MP_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
 #  define TEST_MPF_50
 //#  define TEST_MPF
 #  define TEST_BACKEND
-#  define TEST_E_FLOAT
+#  define TEST_MP_FLOAT
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -36,8 +36,8 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_architypes.hpp>
 #endif
-#ifdef TEST_E_FLOAT
-#include <boost/multiprecision/e_float.hpp>
+#ifdef TEST_MP_FLOAT
+#include <boost/multiprecision/mp_float.hpp>
 #endif
 
 template <class T>
@@ -93,8 +93,9 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
-#ifdef TEST_E_FLOAT
-   test<boost::multiprecision::e_float>();
+#ifdef TEST_MP_FLOAT
+   test<boost::multiprecision::mp_float_50>();
+   test<boost::multiprecision::mp_float_100>();
 #endif
    return boost::report_errors();
 }
Modified: sandbox/big_number/libs/multiprecision/test/test_atan.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/test_atan.cpp	(original)
+++ sandbox/big_number/libs/multiprecision/test/test_atan.cpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -12,11 +12,11 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_E_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_MP_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
 #  define TEST_MPF_50
 //#  define TEST_MPF
 #  define TEST_BACKEND
-#  define TEST_E_FLOAT
+#  define TEST_MP_FLOAT
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -36,8 +36,8 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_architypes.hpp>
 #endif
-#ifdef TEST_E_FLOAT
-#include <boost/multiprecision/e_float.hpp>
+#ifdef TEST_MP_FLOAT
+#include <boost/multiprecision/mp_float.hpp>
 #endif
 
 template <class T>
@@ -195,13 +195,11 @@
    err = relative_error(T(atan2(T(1), T(0))), T(pi / 2)).template convert_to<unsigned>();
    if(err > max_err)
       max_err = err;
-   if(! is_mpfr_type<T>::value)
-   {
-      // MPFR seems to get the sign of this all wrong:
-      err = relative_error(T(atan2(T(-1), T(0))), T(pi / -2)).template convert_to<unsigned>();
-      if(err > max_err)
-         max_err = err;
-   }
+
+   err = relative_error(T(atan2(T(-1), T(0))), T(pi / -2)).template convert_to<unsigned>();
+   if(err > max_err)
+      max_err = err;
+
    T mv = (std::numeric_limits<T>::max)();
    err = relative_error(T(atan2(mv, T(1))), T(pi / 2)).template convert_to<unsigned>();
    if(err > max_err)
@@ -239,8 +237,9 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
-#ifdef TEST_E_FLOAT
-   test<boost::multiprecision::e_float>();
+#ifdef TEST_MP_FLOAT
+   test<boost::multiprecision::mp_float_50>();
+   test<boost::multiprecision::mp_float_100>();
 #endif
    return boost::report_errors();
 }
Modified: sandbox/big_number/libs/multiprecision/test/test_cos.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/test_cos.cpp	(original)
+++ sandbox/big_number/libs/multiprecision/test/test_cos.cpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -12,11 +12,11 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_E_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_MP_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
 #  define TEST_MPF_50
 //#  define TEST_MPF
 #  define TEST_BACKEND
-#  define TEST_E_FLOAT
+#  define TEST_MP_FLOAT
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -36,8 +36,8 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_architypes.hpp>
 #endif
-#ifdef TEST_E_FLOAT
-#include <boost/multiprecision/e_float.hpp>
+#ifdef TEST_MP_FLOAT
+#include <boost/multiprecision/mp_float.hpp>
 #endif
 
 template <class T>
@@ -45,107 +45,107 @@
 {
    static const boost::array<T, 101u> data =
    {{
-T("-2.37609908807915949996042688873953402912174184373388399043229539427530802169622688886435380890546981798452174137747437590e-1"),
-T("8.03406366226813589517543567844755380935198206635917017883860879215939165740799963435747185200486086864198723786516760875e-1"),
-T("8.60219386510802105228997694366289682807721120146423711696179175800635220710279361583231346318224971127450760223168489952e-1"),
-T("-1.36768951513839774357595871594675554406872039078811749027554673949684004409484639336417431285061889554892096426752261915e-1"),
-T("-9.66210139195431691033548069227792927999642647449593184440815029076272297050360196975341458076547426373476590671462150981e-1"),
-T("-6.12007278553856790723803948280976098970972124581361775428331444376106018942231526074915731012122426588769327127413045994e-1"),
-T("4.91927698740873688392439262912409276430264703350691359723802294639643655296838880236042651349290074585311025856549893171e-1"),
-T("9.93232596718899824059271235487971663771012607519717340071654721877802691370866768064059943491135925674950430467047724563e-1"),
-T("2.77789911520199551017947550534057049374212876971194676010301098598339529915403722848373365985645657342475739669568931563e-1"),
-T("-7.77955945956221239101360662190442739163791527953499629555756394261998892874934847131138921705713935365505245406994428077e-1"),
-T("-8.80676278306736581575818642341143682410874043182925227659938804267878718513212454821032629378618345485453587099696563832e-1"),
-T("9.54652155963865007116798560589970996367213754762169439269792747771200843006278637115722685610960738675814993576019945344e-2"),
-T("9.54658201427917718824191302196929158303422390793460018465335986921801519149657723689322277773550748806000948225466432438e-1"),
-T("6.44358700620889799575033272322899136331490664925359198096632560532437137894857803619177106562399406351419810452110265174e-1"),
-T("-4.55304635273050571206400777159475409897339683148730716647371922365967582339285347105376503917296765204188604297021364549e-1"),
-T("-9.97202532932553753622481171186283382950122646390227670693679248197349800205205290898290539070732778341271049474946533154e-1"),
-T("-3.17489525058325500707686194437148362752290391406825231198381521862930317513649081353670386166519524315810546189268634469e-1"),
-T("7.51160186640147504067744846462384089742696250681200524524912647858645140367792164416711871535116761744380912486921554617e-1"),
-T("8.99610194168373157174515848193119670768490559799348397680196213249921436405001710937402190319584272526657508442591319630e-1"),
-T("-5.39963892484342940823660554048696208293700871414984387094529796385334086703752106515008832585578915389731907422242902573e-2"),
-T("-9.41455348900839346761557896365239742769987576963330061702397697388879776230596944312519157729410022380228287314835345969e-1"),
-T("-6.75595816763857390859268297670835380459024839344154743310231115864242050771191159334664874097564054770066166961642073448e-1"),
-T("4.17894201894880415042381733708896725748531223743344790054523182948440843948904650988733732381978194392219295696279423635e-1"),
-T("9.99447981389824371458566861195586395552622718284098766856978062347139060489410032781030191080200904443096549587568037683e-1"),
-T("3.56640095868759075150409032448421838265699043643228482503057299699740924345262819242042067863780263400092250418388628640e-1"),
-T("-7.23065426868134142613141384486526262450487633432466529798821958977732347646832059032382447792655111641456570392189752211e-1"),
-T("-9.16988391192434436877664999042786024703848714036221388727578305299843547352325574309860356272561772723624753484063972217e-1"),
-T("1.24341855683226931265962750806821531283439413068694552738675989282017066737438591268502070364982899342633928417210588531e-2"),
-T("9.26624413643579136646620112107410908114766812511471130116341925013001661546817531064974089666536893346764523464250445838e-1"),
-T("7.05664607841658050248613256866289182754229289446384595719719495272020558391145537620968819401219414243210529013148958366e-1"),
-T("-3.79761093422301890838671114556341706055562482358183402807224298533060188038450560241345615647754569347252101282386222173e-1"),
-T("-9.99965058979463689113370264378210962384824970050865061898892508056811665771886385589295806419278045318841717598003331419e-1"),
-T("-3.95173919871548266286836251448043149039940610894391718791244019288314418437411707835924620250473697245151743147215758686e-1"),
-T("6.93720251624319621941983929806434090162802383400620564454074825718151625795576680427510026452063593762417421561201654156e-1"),
-T("9.32780816819880202610269817418700102084277332259524791943833699964920012022753227823298655560837271746316929623378078695e-1"),
-T("2.91495208658083070508005579692813621670878962971611104453227900103973434149303469066898102622556226584993895360896300290e-2"),
-T("-9.10191043170480685360743788297835112117551819731152897291272407935139876953384666161532187572493791297095784055525159185e-1"),
-T("-7.34513075127503122343910106816656237074878218180284276449954797048122379869002663646507706411949095015624141821039453971e-1"),
-T("3.40971254411713599427147477626159847871020791931107106418841144080445813896332252160005593096670674809345703079384115052e-1"),
-T("9.98752871506016936810666998588493462933191829230756181478046320353377054175122206889047094521687205093218701141334147081e-1"),
-T("4.33024359542714849537532946954507232835434973891665238942502273464321666207117525270650546741831354943253652514490075246e-1"),
-T("-6.63175408268187738636594884921931867786416057472876635147295424128144233911929585327601381618059327766986981109409782838e-1"),
-T("-9.46960160806563725719808910991708075372282242401645009270517113290439792088443109178772446465191984149998211903724560065e-1"),
-T("-7.06828182905581345108929510344440443421290640066613022421187316650733628538705972455891575947230299102119854983197703150e-2"),
-T("8.92183656127948379886438402777950080111433733329436790239129260607557296960582455582584117031260710927499215646838011844e-1"),
-T("7.62091330231640362984555508176991632755732840163230620595759320390970951235395195394649584713540498911356433919369698423e-1"),
-T("-3.01591765120371930643555588643712101466544136366607065361801475091335195383846047491935017919396438040414024941341524187e-1"),
-T("-9.95813515236177554177387795413035497724212540625760091518605741283184405719984044075159457509720410668598540884613985023e-1"),
-T("-4.70125959152223022135690700550251564040118601846181392455764893020377582359429013073566263451488554529709131439092909247e-1"),
-T("6.31483718775865440843182928017874708719203714677143270278178885379757350754752477512514449375355491054871712891789652146e-1"),
-T("1.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"),
-T("3.87481045630097871028201331640164477694000480353342897357083794605539506785023570062767753819472037935010414476627195076e-1"),
-T("-6.99716878554812023132822640034166338740077082416915046841339368979161296335086955803240899441098534898926193252558848693e-1"),
-T("-9.29735101124991407032113033015438177585645722877060262785796302722011806301680288369763295777635760805579255008366302180e-1"),
-T("-2.07925797310208845709174899248298159909010721767168338004516304026594885686024530923209628704670627250569637267490913462e-2"),
-T("9.13621640053945104047985280883096238900189007462190433514805702721127019097915088259906184736442916334750420359005079959e-1"),
-T("7.28814716527795995795780587639833705107995825167970668466246348938821997240383021826681253777014938636567626203524137506e-1"),
-T("-3.48817863192357573536083313907744269588018702862402502601699983054718835012048372083235768555953613790431700360695537918e-1"),
-T("-9.99135337256258278958854200595331742602280601557283993231562055717063052179292021052372510863057206152466386086657442382e-1"),
-T("-4.25474147219713305654097901385832164424798803616095278869643928816776198489330071073326518019520590535564717523756486665e-1"),
-T("6.69409002349720857726983952566596052122726437391092096671257338244059819036586172017092390651026654050631669646310910927e-1"),
-T("9.44240747589054266930136705015787520728797286842746645573763175559132491628984502333043316023599487896169049499868916865e-1"),
-T("6.23417820549832676844933182722733277887833220127638406914080428946880981800946578131712749910941183940944526141109771339e-2"),
-T("-8.95928229794837090592434136137683839101829890460754766346170956577979909285084363961363023377587044303560652568203578379e-1"),
-T("-7.56652196635835430995109388017590459596111729342964992503572530290981857981790620732129221157071082788019187787999930361e-1"),
-T("3.09551461133309219674309651201007026752336319933918953736299690287371505733386433918863300129026763968979930342098019300e-1"),
-T("9.96542844308353945757715814452637400116215448012622700698887257177706625278927018059066920597035660000571997275705962011e-1"),
-T("4.62731465522276407764000677957978862104808823938378826581864482071733508960062598574638347814740748458034065235894523010e-1"),
-T("-6.37943500095315456672541800050589670140910744260281868746767523730582697622604545933849801882909439609368258115114388202e-1"),
-T("-9.57113494461990955768932962010819183910065445494138937651443249061391692258872250121438832853873660881630205561168895590e-1"),
-T("-1.03783175146302830356973378710923690121182237844646430783773333188328606275124873219756415071202025673009660963930966273e-1"),
-T("8.76685468012988943166112725030293740012198666616661362437433807594683780986916439696374569274720383546275206733493672834e-1"),
-T("7.83181178815072182812568575402104911406191663934571600092749188502783771503475038116599065276589122015600004250624262132e-1"),
-T("-2.69749743842835294071354429049113807280228918034124159074991560056663623624511602063409428877143567459307323934051784210e-1"),
-T("-9.92227004420417932443416371636723983768124774541445787394585828303853075015733744933294181104002649816119116502663362907e-1"),
-T("-4.99188570507651271652464431008309802023236218596632956064119419694573621896525872847587264755853127438644874992889777436e-1"),
-T("6.05374785886620830935500306718810628353011877048386199574451402773468315797082901705593423724389976967865835641164117478e-1"),
-T("9.68331080574540181354402420018944004334504868848934676984951546671476956051983469715128604348963016773169794077158289730e-1"),
-T("1.45045093347669933436797325432376656017480150281100519869038554695618054318368975927557872948037203212941966706926758604e-1"),
-T("-8.55926631706799584065153976496431313099942493164544290051315786450857575707615522517293656706329757352795226750189755758e-1"),
-T("-8.08355785820466703104647317116964786017731181599256098405978700298563758509572188640629418770593008092680980412866065299e-1"),
-T("2.29481541445091823694157468006983283649885473964756916206813927875661041834620526229807744443043682778028709792615798955e-1"),
-T("9.86195281084368344446227722442335005500018635181693920385626820970119467136148305491035657795704047666385553672680209923e-1"),
-T("5.34782415974986828906369231191245075731384342252264783019973387059318216570499447505623911253042567598873910043381675873e-1"),
-T("-5.71759181631212640256161075896307515511612057247572886814941945052483422285718810088660759708176904381865453799197101481e-1"),
-T("-9.77874107069129472007009478090869879295520839405452365411822873037906082086100232576241983901051327761231156641104065497e-1"),
-T("-1.86056181372276495846711248156316208757691570931906856005697361080864028851991674077024223201008430626166447144444086146e-1"),
-T("8.33687619660983803179149188531271900120055171980951416163724579833511897001564116810390933587615557717585362295882429826e-1"),
-T("8.32132482562487183916482822112362004641509381783438374175226355792137053285527706239574867923387554339582561002247202518e-1"),
-T("-1.88816490768820368180947188938258919466912959009058295775702554895970560887437777994365295452696990115940651570073217522e-1"),
-T("-9.78458105113103660973458641126689066610890753079836635611789969774219913050456840122278188955139015473252491612410972950e-1"),
-T("-5.69451448580118869157805059117807250106203230622762838051154208713065707949727035884250775206017528612930773233017928006e-1"),
-T("5.37154819650306918873973169624898539483418364490295996462663218848771864764982600193558748568095521886456306061269765631e-1"),
-T("9.85726070946814004698231423834505649751779161578718404221294527194525251740198034173542003704080544827976936213857653517e-1"),
-T("2.26745517700332138489400566746499809209783385009289423848083137846668382711005704387134606000570923556980021574851618566e-1"),
-T("-8.10006890365888881023982873786181048364505748637138923322482323010218991062084191379116946709356002103893071903481540337e-1"),
-T("-8.54470151393449484710948210543666267680196067632693416660536443330720708402601669617638569732848938319544250428600991723e-1"),
-T("1.47824914922605209542648603104533928946885824995208478684499907657728115943168395067575842431291755277452367320596435067e-1"),
-T("9.69028856602232134498324179654622883463820270279077886397861028881882684131282848087869087883519707948141915733221980948e-1"),
-T("6.03135714281336943093251136556365407562473924416812270469171432809743173719168209727199952532489544254928975940518615351e-1"),
-T("-5.01621542149055350065079347615664213658089623368745676779267390227688581807037821041573344917735076902116221444127518632e-1"),
+         T("-2.37609908807915949996042688873953402912174184373388399043229539427530802169622688886435380890546981798452174137747437590e-1"),
+         T("8.03406366226813589517543567844755380935198206635917017883860879215939165740799963435747185200486086864198723786516760875e-1"),
+         T("8.60219386510802105228997694366289682807721120146423711696179175800635220710279361583231346318224971127450760223168489952e-1"),
+         T("-1.36768951513839774357595871594675554406872039078811749027554673949684004409484639336417431285061889554892096426752261915e-1"),
+         T("-9.66210139195431691033548069227792927999642647449593184440815029076272297050360196975341458076547426373476590671462150981e-1"),
+         T("-6.12007278553856790723803948280976098970972124581361775428331444376106018942231526074915731012122426588769327127413045994e-1"),
+         T("4.91927698740873688392439262912409276430264703350691359723802294639643655296838880236042651349290074585311025856549893171e-1"),
+         T("9.93232596718899824059271235487971663771012607519717340071654721877802691370866768064059943491135925674950430467047724563e-1"),
+         T("2.77789911520199551017947550534057049374212876971194676010301098598339529915403722848373365985645657342475739669568931563e-1"),
+         T("-7.77955945956221239101360662190442739163791527953499629555756394261998892874934847131138921705713935365505245406994428077e-1"),
+         T("-8.80676278306736581575818642341143682410874043182925227659938804267878718513212454821032629378618345485453587099696563832e-1"),
+         T("9.54652155963865007116798560589970996367213754762169439269792747771200843006278637115722685610960738675814993576019945344e-2"),
+         T("9.54658201427917718824191302196929158303422390793460018465335986921801519149657723689322277773550748806000948225466432438e-1"),
+         T("6.44358700620889799575033272322899136331490664925359198096632560532437137894857803619177106562399406351419810452110265174e-1"),
+         T("-4.55304635273050571206400777159475409897339683148730716647371922365967582339285347105376503917296765204188604297021364549e-1"),
+         T("-9.97202532932553753622481171186283382950122646390227670693679248197349800205205290898290539070732778341271049474946533154e-1"),
+         T("-3.17489525058325500707686194437148362752290391406825231198381521862930317513649081353670386166519524315810546189268634469e-1"),
+         T("7.51160186640147504067744846462384089742696250681200524524912647858645140367792164416711871535116761744380912486921554617e-1"),
+         T("8.99610194168373157174515848193119670768490559799348397680196213249921436405001710937402190319584272526657508442591319630e-1"),
+         T("-5.39963892484342940823660554048696208293700871414984387094529796385334086703752106515008832585578915389731907422242902573e-2"),
+         T("-9.41455348900839346761557896365239742769987576963330061702397697388879776230596944312519157729410022380228287314835345969e-1"),
+         T("-6.75595816763857390859268297670835380459024839344154743310231115864242050771191159334664874097564054770066166961642073448e-1"),
+         T("4.17894201894880415042381733708896725748531223743344790054523182948440843948904650988733732381978194392219295696279423635e-1"),
+         T("9.99447981389824371458566861195586395552622718284098766856978062347139060489410032781030191080200904443096549587568037683e-1"),
+         T("3.56640095868759075150409032448421838265699043643228482503057299699740924345262819242042067863780263400092250418388628640e-1"),
+         T("-7.23065426868134142613141384486526262450487633432466529798821958977732347646832059032382447792655111641456570392189752211e-1"),
+         T("-9.16988391192434436877664999042786024703848714036221388727578305299843547352325574309860356272561772723624753484063972217e-1"),
+         T("1.24341855683226931265962750806821531283439413068694552738675989282017066737438591268502070364982899342633928417210588531e-2"),
+         T("9.26624413643579136646620112107410908114766812511471130116341925013001661546817531064974089666536893346764523464250445838e-1"),
+         T("7.05664607841658050248613256866289182754229289446384595719719495272020558391145537620968819401219414243210529013148958366e-1"),
+         T("-3.79761093422301890838671114556341706055562482358183402807224298533060188038450560241345615647754569347252101282386222173e-1"),
+         T("-9.99965058979463689113370264378210962384824970050865061898892508056811665771886385589295806419278045318841717598003331419e-1"),
+         T("-3.95173919871548266286836251448043149039940610894391718791244019288314418437411707835924620250473697245151743147215758686e-1"),
+         T("6.93720251624319621941983929806434090162802383400620564454074825718151625795576680427510026452063593762417421561201654156e-1"),
+         T("9.32780816819880202610269817418700102084277332259524791943833699964920012022753227823298655560837271746316929623378078695e-1"),
+         T("2.91495208658083070508005579692813621670878962971611104453227900103973434149303469066898102622556226584993895360896300290e-2"),
+         T("-9.10191043170480685360743788297835112117551819731152897291272407935139876953384666161532187572493791297095784055525159185e-1"),
+         T("-7.34513075127503122343910106816656237074878218180284276449954797048122379869002663646507706411949095015624141821039453971e-1"),
+         T("3.40971254411713599427147477626159847871020791931107106418841144080445813896332252160005593096670674809345703079384115052e-1"),
+         T("9.98752871506016936810666998588493462933191829230756181478046320353377054175122206889047094521687205093218701141334147081e-1"),
+         T("4.33024359542714849537532946954507232835434973891665238942502273464321666207117525270650546741831354943253652514490075246e-1"),
+         T("-6.63175408268187738636594884921931867786416057472876635147295424128144233911929585327601381618059327766986981109409782838e-1"),
+         T("-9.46960160806563725719808910991708075372282242401645009270517113290439792088443109178772446465191984149998211903724560065e-1"),
+         T("-7.06828182905581345108929510344440443421290640066613022421187316650733628538705972455891575947230299102119854983197703150e-2"),
+         T("8.92183656127948379886438402777950080111433733329436790239129260607557296960582455582584117031260710927499215646838011844e-1"),
+         T("7.62091330231640362984555508176991632755732840163230620595759320390970951235395195394649584713540498911356433919369698423e-1"),
+         T("-3.01591765120371930643555588643712101466544136366607065361801475091335195383846047491935017919396438040414024941341524187e-1"),
+         T("-9.95813515236177554177387795413035497724212540625760091518605741283184405719984044075159457509720410668598540884613985023e-1"),
+         T("-4.70125959152223022135690700550251564040118601846181392455764893020377582359429013073566263451488554529709131439092909247e-1"),
+         T("6.31483718775865440843182928017874708719203714677143270278178885379757350754752477512514449375355491054871712891789652146e-1"),
+         T("1.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"),
+         T("3.87481045630097871028201331640164477694000480353342897357083794605539506785023570062767753819472037935010414476627195076e-1"),
+         T("-6.99716878554812023132822640034166338740077082416915046841339368979161296335086955803240899441098534898926193252558848693e-1"),
+         T("-9.29735101124991407032113033015438177585645722877060262785796302722011806301680288369763295777635760805579255008366302180e-1"),
+         T("-2.07925797310208845709174899248298159909010721767168338004516304026594885686024530923209628704670627250569637267490913462e-2"),
+         T("9.13621640053945104047985280883096238900189007462190433514805702721127019097915088259906184736442916334750420359005079959e-1"),
+         T("7.28814716527795995795780587639833705107995825167970668466246348938821997240383021826681253777014938636567626203524137506e-1"),
+         T("-3.48817863192357573536083313907744269588018702862402502601699983054718835012048372083235768555953613790431700360695537918e-1"),
+         T("-9.99135337256258278958854200595331742602280601557283993231562055717063052179292021052372510863057206152466386086657442382e-1"),
+         T("-4.25474147219713305654097901385832164424798803616095278869643928816776198489330071073326518019520590535564717523756486665e-1"),
+         T("6.69409002349720857726983952566596052122726437391092096671257338244059819036586172017092390651026654050631669646310910927e-1"),
+         T("9.44240747589054266930136705015787520728797286842746645573763175559132491628984502333043316023599487896169049499868916865e-1"),
+         T("6.23417820549832676844933182722733277887833220127638406914080428946880981800946578131712749910941183940944526141109771339e-2"),
+         T("-8.95928229794837090592434136137683839101829890460754766346170956577979909285084363961363023377587044303560652568203578379e-1"),
+         T("-7.56652196635835430995109388017590459596111729342964992503572530290981857981790620732129221157071082788019187787999930361e-1"),
+         T("3.09551461133309219674309651201007026752336319933918953736299690287371505733386433918863300129026763968979930342098019300e-1"),
+         T("9.96542844308353945757715814452637400116215448012622700698887257177706625278927018059066920597035660000571997275705962011e-1"),
+         T("4.62731465522276407764000677957978862104808823938378826581864482071733508960062598574638347814740748458034065235894523010e-1"),
+         T("-6.37943500095315456672541800050589670140910744260281868746767523730582697622604545933849801882909439609368258115114388202e-1"),
+         T("-9.57113494461990955768932962010819183910065445494138937651443249061391692258872250121438832853873660881630205561168895590e-1"),
+         T("-1.03783175146302830356973378710923690121182237844646430783773333188328606275124873219756415071202025673009660963930966273e-1"),
+         T("8.76685468012988943166112725030293740012198666616661362437433807594683780986916439696374569274720383546275206733493672834e-1"),
+         T("7.83181178815072182812568575402104911406191663934571600092749188502783771503475038116599065276589122015600004250624262132e-1"),
+         T("-2.69749743842835294071354429049113807280228918034124159074991560056663623624511602063409428877143567459307323934051784210e-1"),
+         T("-9.92227004420417932443416371636723983768124774541445787394585828303853075015733744933294181104002649816119116502663362907e-1"),
+         T("-4.99188570507651271652464431008309802023236218596632956064119419694573621896525872847587264755853127438644874992889777436e-1"),
+         T("6.05374785886620830935500306718810628353011877048386199574451402773468315797082901705593423724389976967865835641164117478e-1"),
+         T("9.68331080574540181354402420018944004334504868848934676984951546671476956051983469715128604348963016773169794077158289730e-1"),
+         T("1.45045093347669933436797325432376656017480150281100519869038554695618054318368975927557872948037203212941966706926758604e-1"),
+         T("-8.55926631706799584065153976496431313099942493164544290051315786450857575707615522517293656706329757352795226750189755758e-1"),
+         T("-8.08355785820466703104647317116964786017731181599256098405978700298563758509572188640629418770593008092680980412866065299e-1"),
+         T("2.29481541445091823694157468006983283649885473964756916206813927875661041834620526229807744443043682778028709792615798955e-1"),
+         T("9.86195281084368344446227722442335005500018635181693920385626820970119467136148305491035657795704047666385553672680209923e-1"),
+         T("5.34782415974986828906369231191245075731384342252264783019973387059318216570499447505623911253042567598873910043381675873e-1"),
+         T("-5.71759181631212640256161075896307515511612057247572886814941945052483422285718810088660759708176904381865453799197101481e-1"),
+         T("-9.77874107069129472007009478090869879295520839405452365411822873037906082086100232576241983901051327761231156641104065497e-1"),
+         T("-1.86056181372276495846711248156316208757691570931906856005697361080864028851991674077024223201008430626166447144444086146e-1"),
+         T("8.33687619660983803179149188531271900120055171980951416163724579833511897001564116810390933587615557717585362295882429826e-1"),
+         T("8.32132482562487183916482822112362004641509381783438374175226355792137053285527706239574867923387554339582561002247202518e-1"),
+         T("-1.88816490768820368180947188938258919466912959009058295775702554895970560887437777994365295452696990115940651570073217522e-1"),
+         T("-9.78458105113103660973458641126689066610890753079836635611789969774219913050456840122278188955139015473252491612410972950e-1"),
+         T("-5.69451448580118869157805059117807250106203230622762838051154208713065707949727035884250775206017528612930773233017928006e-1"),
+         T("5.37154819650306918873973169624898539483418364490295996462663218848771864764982600193558748568095521886456306061269765631e-1"),
+         T("9.85726070946814004698231423834505649751779161578718404221294527194525251740198034173542003704080544827976936213857653517e-1"),
+         T("2.26745517700332138489400566746499809209783385009289423848083137846668382711005704387134606000570923556980021574851618566e-1"),
+         T("-8.10006890365888881023982873786181048364505748637138923322482323010218991062084191379116946709356002103893071903481540337e-1"),
+         T("-8.54470151393449484710948210543666267680196067632693416660536443330720708402601669617638569732848938319544250428600991723e-1"),
+         T("1.47824914922605209542648603104533928946885824995208478684499907657728115943168395067575842431291755277452367320596435067e-1"),
+         T("9.69028856602232134498324179654622883463820270279077886397861028881882684131282848087869087883519707948141915733221980948e-1"),
+         T("6.03135714281336943093251136556365407562473924416812270469171432809743173719168209727199952532489544254928975940518615351e-1"),
+         T("-5.01621542149055350065079347615664213658089623368745676779267390227688581807037821041573344917735076902116221444127518632e-1"),
    }};
 
    T eg = "5.77215664901532860606512090082402431042159335939923598805767234884867726777664670936947063291746749514631447249807082480960504014486542836224173997644923536253500333742937337737673942792595258247094916008735203948165670853233151776611528621199501507984793745085705740029921354786146694029604325421519e-1";
@@ -282,8 +282,9 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
-#ifdef TEST_E_FLOAT
-   test<boost::multiprecision::e_float>();
+#ifdef TEST_MP_FLOAT
+   test<boost::multiprecision::mp_float_50>();
+   test<boost::multiprecision::mp_float_100>();
 #endif
    return boost::report_errors();
 }
Modified: sandbox/big_number/libs/multiprecision/test/test_cosh.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/test_cosh.cpp	(original)
+++ sandbox/big_number/libs/multiprecision/test/test_cosh.cpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -12,11 +12,11 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_E_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_MP_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
 #  define TEST_MPF_50
 //#  define TEST_MPF
 #  define TEST_BACKEND
-#  define TEST_E_FLOAT
+#  define TEST_MP_FLOAT
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -36,8 +36,8 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_architypes.hpp>
 #endif
-#ifdef TEST_E_FLOAT
-#include <boost/multiprecision/e_float.hpp>
+#ifdef TEST_MP_FLOAT
+#include <boost/multiprecision/mp_float.hpp>
 #endif
 
 template <class T>
@@ -128,8 +128,9 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
-#ifdef TEST_E_FLOAT
-   test<boost::multiprecision::e_float>();
+#ifdef TEST_MP_FLOAT
+   test<boost::multiprecision::mp_float_50>();
+   test<boost::multiprecision::mp_float_100>();
 #endif
    return boost::report_errors();
 }
Modified: sandbox/big_number/libs/multiprecision/test/test_exp.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/test_exp.cpp	(original)
+++ sandbox/big_number/libs/multiprecision/test/test_exp.cpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -12,11 +12,11 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_E_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_MP_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
 #  define TEST_MPF_50
 //#  define TEST_MPF
 #  define TEST_BACKEND
-#  define TEST_E_FLOAT
+#  define TEST_MP_FLOAT
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -36,8 +36,8 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_architypes.hpp>
 #endif
-#ifdef TEST_E_FLOAT
-#include <boost/multiprecision/e_float.hpp>
+#ifdef TEST_MP_FLOAT
+#include <boost/multiprecision/mp_float.hpp>
 #endif
 
 template <class T>
@@ -173,8 +173,9 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
-#ifdef TEST_E_FLOAT
-   test<boost::multiprecision::e_float>();
+#ifdef TEST_MP_FLOAT
+   test<boost::multiprecision::mp_float_50>();
+   test<boost::multiprecision::mp_float_100>();
 #endif
    return boost::report_errors();
 }
Modified: sandbox/big_number/libs/multiprecision/test/test_log.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/test_log.cpp	(original)
+++ sandbox/big_number/libs/multiprecision/test/test_log.cpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -12,11 +12,11 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_E_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_MP_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
 #  define TEST_MPF_50
 //#  define TEST_MPF
 #  define TEST_BACKEND
-#  define TEST_E_FLOAT
+#  define TEST_MP_FLOAT
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -36,8 +36,8 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_architypes.hpp>
 #endif
-#ifdef TEST_E_FLOAT
-#include <boost/multiprecision/e_float.hpp>
+#ifdef TEST_MP_FLOAT
+#include <boost/multiprecision/mp_float.hpp>
 #endif
 
 template <class T>
@@ -186,8 +186,9 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
-#ifdef TEST_E_FLOAT
-   test<boost::multiprecision::e_float>();
+#ifdef TEST_MP_FLOAT
+   test<boost::multiprecision::mp_float_50>();
+   test<boost::multiprecision::mp_float_100>();
 #endif
    return boost::report_errors();
 }
Modified: sandbox/big_number/libs/multiprecision/test/test_pow.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/test_pow.cpp	(original)
+++ sandbox/big_number/libs/multiprecision/test/test_pow.cpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -12,11 +12,11 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_E_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_MP_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
 #  define TEST_MPF_50
 //#  define TEST_MPF
 #  define TEST_BACKEND
-#  define TEST_E_FLOAT
+#  define TEST_MP_FLOAT
 #  define TEST_MPFR_50
 
 #ifdef _MSC_VER
@@ -37,8 +37,8 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_architypes.hpp>
 #endif
-#ifdef TEST_E_FLOAT
-#include <boost/multiprecision/e_float.hpp>
+#ifdef TEST_MP_FLOAT
+#include <boost/multiprecision/mp_float.hpp>
 #endif
 
 template <class T>
@@ -576,8 +576,9 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
-#ifdef TEST_E_FLOAT
-   test<boost::multiprecision::e_float>();
+#ifdef TEST_MP_FLOAT
+   test<boost::multiprecision::mp_float_50>();
+   test<boost::multiprecision::mp_float_100>();
 #endif
    return boost::report_errors();
 }
Modified: sandbox/big_number/libs/multiprecision/test/test_sin.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/test_sin.cpp	(original)
+++ sandbox/big_number/libs/multiprecision/test/test_sin.cpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -12,11 +12,11 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_E_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_MP_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
 #  define TEST_MPF_50
 //#  define TEST_MPF
 #  define TEST_BACKEND
-#  define TEST_E_FLOAT
+#  define TEST_MP_FLOAT
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -36,8 +36,8 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_architypes.hpp>
 #endif
-#ifdef TEST_E_FLOAT
-#include <boost/multiprecision/e_float.hpp>
+#ifdef TEST_MP_FLOAT
+#include <boost/multiprecision/mp_float.hpp>
 #endif
 
 template <class T>
@@ -246,7 +246,7 @@
    // Test with some exact binary values as input - this tests our code
    // rather than the test data:
    //
-   static const boost::array<boost::array<T, 2>, 7> exact_data =
+   static const boost::array<boost::array<T, 2>, 9> exact_data =
    {{
       {{ 0.5, "0.479425538604203000273287935215571388081803367940600675188616613125535000287814832209631274684348269086132091084505717418" }},
       {{ 0.25, "0.247403959254522929596848704849389195893390980386965810676544830494398136043486821690984848527973792338327197752176516138" }},
@@ -254,7 +254,9 @@
       {{std::ldexp(1.0, -20), "9.53674316406105439710335272649306549801506698739838753888815787489707114648106832493113326022411646219016312547902694921e-7" }},
       {{ 2, "0.909297426825681695396019865911744842702254971447890268378973011530967301540783544620126688924959380309967896742399486261" }},
       {{ 5, "-0.958924274663138468893154406155993973352461543964601778131672454235102558086559603076995955429532866596530638461663378937" }},
-      {{ 10, "-0.544021110889369813404747661851377281683643012916223891574184012616757209640493425707075673894983216158293824238262832286" }}
+      {{ 10, "-0.544021110889369813404747661851377281683643012916223891574184012616757209640493425707075673894983216158293824238262832286" }},
+      {{ 0, 0 }},
+      {{ "1.57079632679489661923132169163975144209858469968755291048747229615390820314310449931401741267105853399107404325664115332354692230477529111586267970406424055872514205135096926055277982231147447746519098221440548783296672306423782411689339158263560095457282428346173017430522716332410669680363012457064", 1 }}
    }};
    max_err = 0;
    for(unsigned k = 0; k < exact_data.size(); k++)
@@ -267,11 +269,6 @@
    }
    std::cout << "Max error was: " << max_err << std::endl;
    BOOST_TEST(max_err < 20);
-
-   T half_pi = "1.57079632679489661923132169163975144209858469968755291048747229615390820314310449931401741267105853399107404325664115332354692230477529111586267970406424055872514205135096926055277982231147447746519098221440548783296672306423782411689339158263560095457282428346173017430522716332410669680363012457064";
-
-   BOOST_TEST(sin(T(0)) == 0);
-   BOOST_TEST(sin(half_pi) == 1);
 }
 
 
@@ -288,8 +285,8 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
-#ifdef TEST_E_FLOAT
-   test<boost::multiprecision::e_float>();
+#ifdef TEST_MP_FLOAT
+   test<boost::multiprecision::mp_float_50>();
 #endif
    return boost::report_errors();
 }
Modified: sandbox/big_number/libs/multiprecision/test/test_sinh.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/test_sinh.cpp	(original)
+++ sandbox/big_number/libs/multiprecision/test/test_sinh.cpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -12,11 +12,11 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_E_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_MP_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
 #  define TEST_MPF_50
 //#  define TEST_MPF
 #  define TEST_BACKEND
-#  define TEST_E_FLOAT
+#  define TEST_MP_FLOAT
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -36,8 +36,8 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_architypes.hpp>
 #endif
-#ifdef TEST_E_FLOAT
-#include <boost/multiprecision/e_float.hpp>
+#ifdef TEST_MP_FLOAT
+#include <boost/multiprecision/mp_float.hpp>
 #endif
 
 template <class T>
@@ -128,8 +128,9 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
-#ifdef TEST_E_FLOAT
-   test<boost::multiprecision::e_float>();
+#ifdef TEST_MP_FLOAT
+   test<boost::multiprecision::mp_float_50>();
+   test<boost::multiprecision::mp_float_100>();
 #endif
    return boost::report_errors();
 }
Modified: sandbox/big_number/libs/multiprecision/test/test_tanh.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/test_tanh.cpp	(original)
+++ sandbox/big_number/libs/multiprecision/test/test_tanh.cpp	2011-10-29 07:57:54 EDT (Sat, 29 Oct 2011)
@@ -12,11 +12,11 @@
 #include <boost/array.hpp>
 #include "test.hpp"
 
-#if !defined(TEST_MPF_50) && !defined(TEST_MPF) && !defined(TEST_BACKEND) && !defined(TEST_MPZ) && !defined(TEST_E_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_MP_FLOAT) && !defined(TEST_MPFR) && !defined(TEST_MPFR_50) && !defined(TEST_MPQ)
 #  define TEST_MPF_50
 //#  define TEST_MPF
 #  define TEST_BACKEND
-#  define TEST_E_FLOAT
+#  define TEST_MP_FLOAT
 
 #ifdef _MSC_VER
 #pragma message("CAUTION!!: No backend type specified so testing everything.... this will take some time!!")
@@ -36,8 +36,8 @@
 #ifdef TEST_BACKEND
 #include <boost/multiprecision/concepts/mp_number_architypes.hpp>
 #endif
-#ifdef TEST_E_FLOAT
-#include <boost/multiprecision/e_float.hpp>
+#ifdef TEST_MP_FLOAT
+#include <boost/multiprecision/mp_float.hpp>
 #endif
 
 template <class T>
@@ -128,8 +128,9 @@
    test<boost::multiprecision::mpfr_float_50>();
    test<boost::multiprecision::mpfr_float_100>();
 #endif
-#ifdef TEST_E_FLOAT
-   test<boost::multiprecision::e_float>();
+#ifdef TEST_MP_FLOAT
+   test<boost::multiprecision::mp_float_50>();
+   test<boost::multiprecision::mp_float_100>();
 #endif
    return boost::report_errors();
 }