$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r81624 - in trunk: boost/math/complex boost/math/constants boost/math/special_functions boost/math/tools libs/math/doc/sf_and_dist libs/math/doc/sf_and_dist/html libs/math/doc/sf_and_dist/html/index libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg libs/math/doc/sf_and_dist/html/math_toolkit/main_overview libs/math/doc/sf_and_dist/html/math_toolkit/status
From: john_at_[hidden]
Date: 2012-11-29 08:27:33
Author: johnmaddock
Date: 2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
New Revision: 81624
URL: http://svn.boost.org/trac/boost/changeset/81624
Log:
Lots of small patches.
Update and regenerate docs.
Fixes #7183.
Fixes #7290.
Fixes #7291.
Fixes #7649.
Refs #7492.
Text files modified: 
   trunk/boost/math/complex/acos.hpp                                                                    |     9 ++-                                     
   trunk/boost/math/complex/asin.hpp                                                                    |     5 +                                       
   trunk/boost/math/complex/atanh.hpp                                                                   |    89 +++++++++++---------------------------- 
   trunk/boost/math/constants/calculate_constants.hpp                                                   |     6 +-                                      
   trunk/boost/math/special_functions/expm1.hpp                                                         |     2                                         
   trunk/boost/math/special_functions/fpclassify.hpp                                                    |    79 +++++++++++++++++++++++++++++++----     
   trunk/boost/math/tools/config.hpp                                                                    |     3                                         
   trunk/libs/math/doc/sf_and_dist/html/index.html                                                      |     2                                         
   trunk/libs/math/doc/sf_and_dist/html/index/s13.html                                                  |     4                                         
   trunk/libs/math/doc/sf_and_dist/html/index/s14.html                                                  |     4                                         
   trunk/libs/math/doc/sf_and_dist/html/index/s15.html                                                  |     4                                         
   trunk/libs/math/doc/sf_and_dist/html/index/s16.html                                                  |     4                                         
   trunk/libs/math/doc/sf_and_dist/html/index/s17.html                                                  |     4                                         
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/two_sample_students_t.html |    16 +++---                                  
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/conventions.html                     |     2                                         
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html                        |    20 +++++++-                                
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html                      |     2                                         
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html                               |    20 +++++++-                                
   trunk/libs/math/doc/sf_and_dist/roadmap.qbk                                                          |     6 ++                                      
   19 files changed, 170 insertions(+), 111 deletions(-)
Modified: trunk/boost/math/complex/acos.hpp
==============================================================================
--- trunk/boost/math/complex/acos.hpp	(original)
+++ trunk/boost/math/complex/acos.hpp	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -31,12 +31,13 @@
    //
 
    //
-   // These static constants should really be in a maths constants library:
+   // These static constants should really be in a maths constants library,
+   // note that we have tweaked a_crossover as per: https://svn.boost.org/trac/boost/ticket/7290
    //
    static const T one = static_cast<T>(1);
    //static const T two = static_cast<T>(2);
    static const T half = static_cast<T>(0.5L);
-   static const T a_crossover = static_cast<T>(1.5L);
+   static const T a_crossover = static_cast<T>(10);
    static const T b_crossover = static_cast<T>(0.6417L);
    static const T s_pi = boost::math::constants::pi<T>();
    static const T half_pi = s_pi / 2;
@@ -172,14 +173,16 @@
             }
             else
             {
-               real = 0;
+               // This deviates from Hull et al's paper as per https://svn.boost.org/trac/boost/ticket/7290
                if(((std::numeric_limits<T>::max)() / xp1) > xm1)
                {
                   // xp1 * xm1 won't overflow:
+                  real = y / std::sqrt(xm1*xp1);
                   imag = boost::math::log1p(xm1 + std::sqrt(xp1*xm1));
                }
                else
                {
+                  real = y / x;
                   imag = log_two + std::log(x);
                }
             }
Modified: trunk/boost/math/complex/asin.hpp
==============================================================================
--- trunk/boost/math/complex/asin.hpp	(original)
+++ trunk/boost/math/complex/asin.hpp	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -31,12 +31,13 @@
    //
 
    //
-   // These static constants should really be in a maths constants library:
+   // These static constants should really be in a maths constants library,
+   // note that we have tweaked the value of a_crossover as per https://svn.boost.org/trac/boost/ticket/7290:
    //
    static const T one = static_cast<T>(1);
    //static const T two = static_cast<T>(2);
    static const T half = static_cast<T>(0.5L);
-   static const T a_crossover = static_cast<T>(1.5L);
+   static const T a_crossover = static_cast<T>(10);
    static const T b_crossover = static_cast<T>(0.6417L);
    static const T s_pi = boost::math::constants::pi<T>();
    static const T half_pi = s_pi / 2;
Modified: trunk/boost/math/complex/atanh.hpp
==============================================================================
--- trunk/boost/math/complex/atanh.hpp	(original)
+++ trunk/boost/math/complex/atanh.hpp	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -36,6 +36,8 @@
    // Also "Abramowitz and Stegun. Handbook of Mathematical Functions."
    // at : http://jove.prohosting.com/~skripty/toc.htm
    //
+   // See also: https://svn.boost.org/trac/boost/ticket/7291
+   //
    
    static const T pi = boost::math::constants::pi<T>();
    static const T half_pi = pi / 2;
@@ -43,7 +45,7 @@
    static const T two = static_cast<T>(2.0L);
    static const T four = static_cast<T>(4.0L);
    static const T zero = static_cast<T>(0);
-   static const T a_crossover = static_cast<T>(0.3L);
+   static const T log_two = boost::math::constants::ln_two<T>();
 
 #ifdef BOOST_MSVC
 #pragma warning(push)
@@ -82,45 +84,19 @@
    else if((x > safe_lower) && (x < safe_upper) && (y > safe_lower) && (y < safe_upper))
    {
 
-      T xx = x*x;
       T yy = y*y;
-      T x2 = x * two;
-
+      T mxm1 = one - x;
       ///
       // The real part is given by:
       // 
-      // real(atanh(z)) == log((1 + x^2 + y^2 + 2x) / (1 + x^2 + y^2 - 2x))
+      // real(atanh(z)) == log1p(4*x / ((x-1)*(x-1) + y^2))
       // 
-      // However, when x is either large (x > 1/E) or very small
-      // (x < E) then this effectively simplifies
-      // to log(1), leading to wildly inaccurate results.  
-      // By dividing the above (top and bottom) by (1 + x^2 + y^2) we get:
-      //
-      // real(atanh(z)) == log((1 + (2x / (1 + x^2 + y^2))) / (1 - (-2x / (1 + x^2 + y^2))))
-      //
-      // which is much more sensitive to the value of x, when x is not near 1
-      // (remember we can compute log(1+x) for small x very accurately).
-      //
-      // The cross-over from one method to the other has to be determined
-      // experimentally, the value used below appears correct to within a 
-      // factor of 2 (and there are larger errors from other parts
-      // of the input domain anyway).
-      //
-      T alpha = two*x / (one + xx + yy);
-      if(alpha < a_crossover)
-      {
-         real = boost::math::log1p(alpha) - boost::math::log1p((boost::math::changesign)(alpha));
-      }
-      else
-      {
-         T xm1 = x - one;
-         real = boost::math::log1p(x2 + xx + yy) - std::log(xm1*xm1 + yy);
-      }
+      real = boost::math::log1p(four * x / (mxm1*mxm1 + yy));
       real /= four;
       if((boost::math::signbit)(z.real()))
          real = (boost::math::changesign)(real);
 
-      imag = std::atan2((y * two), (one - xx - yy));
+      imag = std::atan2((y * two), (mxm1*(one+x) - yy));
       imag /= two;
       if(z.imag() < 0)
          imag = (boost::math::changesign)(imag);
@@ -132,30 +108,31 @@
       // underflow or overflow in the main formulas.
       //
       // Begin by working out the real part, we need to approximate
-      //    alpha = 2x / (1 + x^2 + y^2)
+      //    real = boost::math::log1p(4x / ((x-1)^2 + y^2))
       // without either overflow or underflow in the squared terms.
       //
-      T alpha = 0;
+      T mxm1 = one - x;
       if(x >= safe_upper)
       {
+         // x-1 = x to machine precision:
          if((boost::math::isinf)(x) || (boost::math::isinf)(y))
          {
-            alpha = 0;
+            real = 0;
          }
          else if(y >= safe_upper)
          {
-            // Big x and y: divide alpha through by x*y:
-            alpha = (two/y) / (x/y + y/x);
+            // Big x and y: divide through by x*y:
+            real = boost::math::log1p((four/y) / (x/y + y/x));
          }
          else if(y > one)
          {
             // Big x: divide through by x:
-            alpha = two / (x + y*y/x);
+            real = boost::math::log1p(four / (x + y*y/x));
          }
          else
          {
             // Big x small y, as above but neglect y^2/x:
-            alpha = two/x;
+            real = boost::math::log1p(four/x);
          }
       }
       else if(y >= safe_upper)
@@ -163,39 +140,25 @@
          if(x > one)
          {
             // Big y, medium x, divide through by y:
-            alpha = (two*x/y) / (y + x*x/y);
+            real = boost::math::log1p((four*x/y) / (y + mxm1*mxm1/y));
          }
          else
          {
-            // Small x and y, whatever alpha is, it's too small to calculate:
-            alpha = 0;
+            // Small or medium x, large y:
+            real = four*x/y/y;
          }
       }
-      else
+      else if (x != one)
       {
-         // one or both of x and y are small, calculate divisor carefully:
-         T div = one;
-         if(x > safe_lower)
-            div += x*x;
+         // y is small, calculate divisor carefully:
+         T div = mxm1*mxm1;
          if(y > safe_lower)
             div += y*y;
-         alpha = two*x/div;
-      }
-      if(alpha < a_crossover)
-      {
-         real = boost::math::log1p(alpha) - boost::math::log1p((boost::math::changesign)(alpha));
+         real = boost::math::log1p(four*x/div);
       }
       else
-      {
-         // We can only get here as a result of small y and medium sized x,
-         // we can simply neglect the y^2 terms:
-         BOOST_ASSERT(x >= safe_lower);
-         BOOST_ASSERT(x <= safe_upper);
-         //BOOST_ASSERT(y <= safe_lower);
-         T xm1 = x - one;
-         real = std::log(1 + two*x + x*x) - std::log(xm1*xm1);
-      }
-      
+         real = boost::math::changesign(two * (std::log(y) - log_two));
+
       real /= four;
       if((boost::math::signbit)(z.real()))
          real = (boost::math::changesign)(real);
@@ -203,7 +166,7 @@
       //
       // Now handle imaginary part, this is much easier,
       // if x or y are large, then the formula:
-      //    atan2(2y, 1 - x^2 - y^2)
+      //    atan2(2y, (1-x)*(1+x) - y^2)
       // evaluates to +-(PI - theta) where theta is negligible compared to PI.
       //
       if((x >= safe_upper) || (y >= safe_upper))
@@ -234,7 +197,7 @@
          if((y == zero) && (x == one))
             imag = 0;
          else
-            imag = std::atan2(two*y, 1 - x*x);
+            imag = std::atan2(two*y, mxm1*(one+x));
       }
       imag /= two;
       if((boost::math::signbit)(z.imag()))
Modified: trunk/boost/math/constants/calculate_constants.hpp
==============================================================================
--- trunk/boost/math/constants/calculate_constants.hpp	(original)
+++ trunk/boost/math/constants/calculate_constants.hpp	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -157,7 +157,7 @@
    // This is the method described in:
    // "Some New Algorithms for High-Precision Computation of Euler's Constant"
    // Richard P Brent and Edwin M McMillan.
-   // Mathematics of Comnputation, Volume 34, Number 149, Jan 1980, pages 305-312.
+   // Mathematics of Computation, Volume 34, Number 149, Jan 1980, pages 305-312.
    // See equation 17 with p = 2.
    //
    T n = 3 + (M ? (std::min)(M, tools::digits<T>()) : tools::digits<T>()) / 4;
@@ -929,7 +929,7 @@
 template<int N>
 inline T constant_rayleigh_kurtosis_excess<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
 { // - (6 Pi^2 - 24 Pi + 16)/((Pi - 4)^2)
-    // Might provide provide and calculate this using pi_minus_four.
+    // Might provide and calculate this using pi_minus_four.
    BOOST_MATH_STD_USING
    return - (((static_cast<T>(6) * pi<T, policies::policy<policies::digits2<N> > >()
         * pi<T, policies::policy<policies::digits2<N> > >())
@@ -944,7 +944,7 @@
 template<int N>
 inline T constant_rayleigh_kurtosis<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
 { // 3 - (6 Pi^2 - 24 Pi + 16)/((Pi - 4)^2)
-  // Might provide provide and calculate this using pi_minus_four.
+  // Might provide and calculate this using pi_minus_four.
    BOOST_MATH_STD_USING
    return static_cast<T>(3) - (((static_cast<T>(6) * pi<T, policies::policy<policies::digits2<N> > >()
         * pi<T, policies::policy<policies::digits2<N> > >())
Modified: trunk/boost/math/special_functions/expm1.hpp
==============================================================================
--- trunk/boost/math/special_functions/expm1.hpp	(original)
+++ trunk/boost/math/special_functions/expm1.hpp	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -305,7 +305,7 @@
 inline long double expm1(long double x, const policies::policy<>&){ return ::expm1l(x); }
 #     endif
 #  else
-inline float expm1(float x, const policies::policy<>&){ return ::expm1(x); }
+inline float expm1(float x, const policies::policy<>&){ return static_cast<float>(::expm1(x)); }
 #  endif
 inline double expm1(double x, const policies::policy<>&){ return ::expm1(x); }
 #endif
Modified: trunk/boost/math/special_functions/fpclassify.hpp
==============================================================================
--- trunk/boost/math/special_functions/fpclassify.hpp	(original)
+++ trunk/boost/math/special_functions/fpclassify.hpp	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -234,9 +234,8 @@
    return FP_NAN;
 }
 
-#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY)
-template <>
-inline int fpclassify_imp<long double> BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
+#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && (defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY) || defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS))
+inline int fpclassify_imp BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
 {
    return boost::math::detail::fpclassify_imp(t, generic_tag<true>());
 }
@@ -259,6 +258,23 @@
 #endif
 }
 
+#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+template <>
+inline int fpclassify<long double> BOOST_NO_MACRO_EXPAND(long double t)
+{
+   typedef detail::fp_traits<long double>::type traits;
+   typedef traits::method method;
+   typedef long double value_type;
+#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+   if(std::numeric_limits<long double>::is_specialized && detail::is_generic_tag_false(static_cast<method*>(0)))
+      return detail::fpclassify_imp(static_cast<value_type>(t), detail::generic_tag<true>());
+   return detail::fpclassify_imp(static_cast<value_type>(t), method());
+#else
+   return detail::fpclassify_imp(static_cast<value_type>(t), method());
+#endif
+}
+#endif
+
 namespace detail {
 
 #ifdef BOOST_MATH_USE_STD_FPCLASSIFY
@@ -298,8 +314,7 @@
     }
 
 #if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY)
-template <>
-inline bool isfinite_impl<long double> BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
+inline bool isfinite_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
 {
    return boost::math::detail::isfinite_impl(t, generic_tag<true>());
 }
@@ -317,6 +332,18 @@
    return detail::isfinite_impl(static_cast<value_type>(x), method());
 }
 
+#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+template<> 
+inline bool (isfinite)(long double x)
+{ //!< \brief return true if floating-point type t is finite.
+   typedef detail::fp_traits<long double>::type traits;
+   typedef traits::method method;
+   typedef boost::is_floating_point<long double>::type fp_tag;
+   typedef long double value_type;
+   return detail::isfinite_impl(static_cast<value_type>(x), method());
+}
+#endif
+
 //------------------------------------------------------------------------------
 
 namespace detail {
@@ -358,8 +385,7 @@
     }
 
 #if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY)
-template <>
-inline bool isnormal_impl<long double> BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
+inline bool isnormal_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
 {
    return boost::math::detail::isnormal_impl(t, generic_tag<true>());
 }
@@ -377,6 +403,18 @@
    return detail::isnormal_impl(static_cast<value_type>(x), method());
 }
 
+#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+template<> 
+inline bool (isnormal)(long double x)
+{
+   typedef detail::fp_traits<long double>::type traits;
+   typedef traits::method method;
+   typedef boost::is_floating_point<long double>::type fp_tag;
+   typedef long double value_type;
+   return detail::isnormal_impl(static_cast<value_type>(x), method());
+}
+#endif
+
 //------------------------------------------------------------------------------
 
 namespace detail {
@@ -436,8 +474,7 @@
     }
 
 #if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY)
-template <>
-inline bool isinf_impl<long double> BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
+inline bool isinf_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
 {
    return boost::math::detail::isinf_impl(t, generic_tag<true>());
 }
@@ -455,6 +492,18 @@
    return detail::isinf_impl(static_cast<value_type>(x), method());
 }
 
+#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+template<> 
+inline bool (isinf)(long double x)
+{
+   typedef detail::fp_traits<long double>::type traits;
+   typedef traits::method method;
+   typedef boost::is_floating_point<long double>::type fp_tag;
+   typedef long double value_type;
+   return detail::isinf_impl(static_cast<value_type>(x), method());
+}
+#endif
+
 //------------------------------------------------------------------------------
 
 namespace detail {
@@ -516,7 +565,8 @@
 
 }   // namespace detail
 
-template<class T> bool (isnan)(T x)
+template<class T> 
+inline bool (isnan)(T x)
 { //!< \brief return true if floating-point type t is NaN (Not A Number).
    typedef typename detail::fp_traits<T>::type traits;
    typedef typename traits::method method;
@@ -528,6 +578,15 @@
 template <> inline bool isnan BOOST_NO_MACRO_EXPAND<float>(float t){ return ::boost::math_detail::is_nan_helper(t, boost::true_type()); }
 template <> inline bool isnan BOOST_NO_MACRO_EXPAND<double>(double t){ return ::boost::math_detail::is_nan_helper(t, boost::true_type()); }
 template <> inline bool isnan BOOST_NO_MACRO_EXPAND<long double>(long double t){ return ::boost::math_detail::is_nan_helper(t, boost::true_type()); }
+#elif defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
+template<> 
+inline bool (isnan)(long double x)
+{ //!< \brief return true if floating-point type t is NaN (Not A Number).
+   typedef detail::fp_traits<long double>::type traits;
+   typedef traits::method method;
+   typedef boost::is_floating_point<long double>::type fp_tag;
+   return detail::isnan_impl(x, method());
+}
 #endif
 
 } // namespace math
Modified: trunk/boost/math/tools/config.hpp
==============================================================================
--- trunk/boost/math/tools/config.hpp	(original)
+++ trunk/boost/math/tools/config.hpp	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -101,7 +101,8 @@
 
 #if defined(__CYGWIN__) || defined(__HP_aCC) || defined(BOOST_INTEL) \
   || defined(BOOST_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY) \
-  || (defined(__GNUC__) && !defined(BOOST_MATH_USE_C99))
+  || (defined(__GNUC__) && !defined(BOOST_MATH_USE_C99))\
+  || defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
 #  define BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY
 #endif
 
Modified: trunk/libs/math/doc/sf_and_dist/html/index.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/index.html	(original)
+++ trunk/libs/math/doc/sf_and_dist/html/index.html	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -580,7 +580,7 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: September 24, 2012 at 17:11:30 GMT</small></p></td>
+<td align="left"><p><small>Last revised: November 29, 2012 at 13:20:41 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
Modified: trunk/libs/math/doc/sf_and_dist/html/index/s13.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/index/s13.html	(original)
+++ trunk/libs/math/doc/sf_and_dist/html/index/s13.html	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -22,9 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../math_toolkit/status/credits.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="s14.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section id1337504">
+<div class="section id1324625">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1337504"></a>Function Index</h2></div></div></div>
+<a name="id1324625"></a>Function Index</h2></div></div></div>
 <p><a class="link" href="s13.html#idx_id_0">A</a> <a class="link" href="s13.html#idx_id_1">B</a> <a class="link" href="s13.html#idx_id_2">C</a> <a class="link" href="s13.html#idx_id_3">D</a> <a class="link" href="s13.html#idx_id_4">E</a> <a class="link" href="s13.html#idx_id_5">F</a> <a class="link" href="s13.html#idx_id_6">G</a> <a class="link" href="s13.html#idx_id_7">H</a> <a class="link" href="s13.html#idx_id_8">I</a> <a class="link" href="s13.html#idx_id_9">J</a> <a class="link" href="s13.html#idx_id_10">K</a> <a class="link" href="s13.html#idx_id_11">L</a> <a class="link" href="s13.html#idx_id_12">M</a> <a class="link" href="s13.html#idx_id_13">N</a> <a class="link" href="s13.html#idx_id_14">O</a> <a class="link" href="s13.html#idx_id_15">P</a> <a class="link" href="s13.html#idx_id_16">Q</a> <a class="link" href="s13.html#idx_id_17">R</a> <a class="link" href="s13.html#idx_id_18">S</a> <a class="link" href="s13.html#idx_id_19">T</a> <a class="link" href="s13.html#idx_id_20">U</a> <a class="link" href=
"s13.html#idx_id_21">V</a> <a class="link" href="s13.html#idx_id_22">W</a> <a class="link" href="s13.html#idx_id_23">Z</a></p>
 <div class="variablelist"><dl class="variablelist">
 <dt>
Modified: trunk/libs/math/doc/sf_and_dist/html/index/s14.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/index/s14.html	(original)
+++ trunk/libs/math/doc/sf_and_dist/html/index/s14.html	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -22,9 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s13.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="s15.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section id1354644">
+<div class="section id1342850">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1354644"></a>Class Index</h2></div></div></div>
+<a name="id1342850"></a>Class Index</h2></div></div></div>
 <p><a class="link" href="s14.html#idx_id_25">B</a> <a class="link" href="s14.html#idx_id_26">C</a> <a class="link" href="s14.html#idx_id_27">D</a> <a class="link" href="s14.html#idx_id_28">E</a> <a class="link" href="s14.html#idx_id_29">F</a> <a class="link" href="s14.html#idx_id_30">G</a> <a class="link" href="s14.html#idx_id_31">H</a> <a class="link" href="s14.html#idx_id_32">I</a> <a class="link" href="s14.html#idx_id_35">L</a> <a class="link" href="s14.html#idx_id_36">M</a> <a class="link" href="s14.html#idx_id_37">N</a> <a class="link" href="s14.html#idx_id_39">P</a> <a class="link" href="s14.html#idx_id_41">R</a> <a class="link" href="s14.html#idx_id_42">S</a> <a class="link" href="s14.html#idx_id_43">T</a> <a class="link" href="s14.html#idx_id_44">U</a> <a class="link" href="s14.html#idx_id_46">W</a></p>
 <div class="variablelist"><dl class="variablelist">
 <dt>
Modified: trunk/libs/math/doc/sf_and_dist/html/index/s15.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/index/s15.html	(original)
+++ trunk/libs/math/doc/sf_and_dist/html/index/s15.html	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -22,9 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s14.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="s16.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section id1355584">
+<div class="section id1343791">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1355584"></a>Typedef Index</h2></div></div></div>
+<a name="id1343791"></a>Typedef Index</h2></div></div></div>
 <p><a class="link" href="s15.html#idx_id_48">A</a> <a class="link" href="s15.html#idx_id_49">B</a> <a class="link" href="s15.html#idx_id_50">C</a> <a class="link" href="s15.html#idx_id_51">D</a> <a class="link" href="s15.html#idx_id_52">E</a> <a class="link" href="s15.html#idx_id_53">F</a> <a class="link" href="s15.html#idx_id_54">G</a> <a class="link" href="s15.html#idx_id_55">H</a> <a class="link" href="s15.html#idx_id_56">I</a> <a class="link" href="s15.html#idx_id_59">L</a> <a class="link" href="s15.html#idx_id_61">N</a> <a class="link" href="s15.html#idx_id_62">O</a> <a class="link" href="s15.html#idx_id_63">P</a> <a class="link" href="s15.html#idx_id_65">R</a> <a class="link" href="s15.html#idx_id_66">S</a> <a class="link" href="s15.html#idx_id_67">T</a> <a class="link" href="s15.html#idx_id_68">U</a> <a class="link" href="s15.html#idx_id_69">V</a> <a class="link" href="s15.html#idx_id_70">W</a></p>
 <div class="variablelist"><dl class="variablelist">
 <dt>
Modified: trunk/libs/math/doc/sf_and_dist/html/index/s16.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/index/s16.html	(original)
+++ trunk/libs/math/doc/sf_and_dist/html/index/s16.html	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -22,9 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s15.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="s17.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section id1359057">
+<div class="section id1345608">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1359057"></a>Macro Index</h2></div></div></div>
+<a name="id1345608"></a>Macro Index</h2></div></div></div>
 <p><a class="link" href="s16.html#idx_id_73">B</a> <a class="link" href="s16.html#idx_id_77">F</a></p>
 <div class="variablelist"><dl class="variablelist">
 <dt>
Modified: trunk/libs/math/doc/sf_and_dist/html/index/s17.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/index/s17.html	(original)
+++ trunk/libs/math/doc/sf_and_dist/html/index/s17.html	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -21,9 +21,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s16.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>
 </div>
-<div class="section id863229">
+<div class="section id855785">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id863229"></a>Index</h2></div></div></div>
+<a name="id855785"></a>Index</h2></div></div></div>
 <p><a class="link" href="s17.html#idx_id_96">A</a> <a class="link" href="s17.html#idx_id_97">B</a> <a class="link" href="s17.html#idx_id_98">C</a> <a class="link" href="s17.html#idx_id_99">D</a> <a class="link" href="s17.html#idx_id_100">E</a> <a class="link" href="s17.html#idx_id_101">F</a> <a class="link" href="s17.html#idx_id_102">G</a> <a class="link" href="s17.html#idx_id_103">H</a> <a class="link" href="s17.html#idx_id_104">I</a> <a class="link" href="s17.html#idx_id_105">J</a> <a class="link" href="s17.html#idx_id_106">K</a> <a class="link" href="s17.html#idx_id_107">L</a> <a class="link" href="s17.html#idx_id_108">M</a> <a class="link" href="s17.html#idx_id_109">N</a> <a class="link" href="s17.html#idx_id_110">O</a> <a class="link" href="s17.html#idx_id_111">P</a> <a class="link" href="s17.html#idx_id_112">Q</a> <a class="link" href="s17.html#idx_id_113">R</a> <a class="link" href="s17.html#idx_id_114">S</a> <a class="link" href="s17.html#idx_id_115">T</a> <a class="link" href="s17.html#idx_id_116">
U</a> <a class="link" href="s17.html#idx_id_117">V</a> <a class="link" href="s17.html#idx_id_118">W</a> <a class="link" href="s17.html#idx_id_119">Z</a></p>
 <div class="variablelist"><dl class="variablelist">
 <dt>
Modified: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/two_sample_students_t.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/two_sample_students_t.html	(original)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/two_sample_students_t.html	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -89,7 +89,7 @@
 <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Degrees of Freedom"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">v</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
 <span class="comment">// Pooled variance:</span>
 <span class="keyword">double</span> <span class="identifier">sp</span> <span class="special">=</span> <span class="identifier">sqrt</span><span class="special">(((</span><span class="identifier">Sn1</span><span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">Sd1</span> <span class="special">*</span> <span class="identifier">Sd1</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">Sn2</span><span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">Sd2</span> <span class="special">*</span> <span class="identifier">Sd2</span><span class="special">)</span> <span class="special">/</span> <span class="identifier">v</span><span class="special">);</span>
-<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Pooled Standard Deviation"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">v</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Pooled Standard Deviation"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">sp</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
 <span class="comment">// t-statistic:</span>
 <span class="keyword">double</span> <span class="identifier">t_stat</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">Sm1</span> <span class="special">-</span> <span class="identifier">Sm2</span><span class="special">)</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">sp</span> <span class="special">*</span> <span class="identifier">sqrt</span><span class="special">(</span><span class="number">1.0</span> <span class="special">/</span> <span class="identifier">Sn1</span> <span class="special">+</span> <span class="number">1.0</span> <span class="special">/</span> <span class="identifier">Sn2</span><span class="special">));</span>
 <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"T Statistic"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">t_stat</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
@@ -228,14 +228,14 @@
    ________________________________________________
 
    Number of Observations (Sample 1)                      =  249
-   Sample 1 Mean                                          =  20.14458
-   Sample 1 Standard Deviation                            =  6.41470
+   Sample 1 Mean                                          =  20.145
+   Sample 1 Standard Deviation                            =  6.4147
    Number of Observations (Sample 2)                      =  79
-   Sample 2 Mean                                          =  30.48101
-   Sample 2 Standard Deviation                            =  6.10771
-   Degrees of Freedom                                     =  326.00000
-   Pooled Standard Deviation                              =  326.00000
-   T Statistic                                            =  -12.62059
+   Sample 2 Mean                                          =  30.481
+   Sample 2 Standard Deviation                            =  6.1077
+   Degrees of Freedom                                     =  326
+   Pooled Standard Deviation                              =  6.3426
+   T Statistic                                            =  -12.621
    Probability that difference is due to chance           =  5.273e-030
 
    Results for Alternative Hypothesis and alpha           =  0.0500
Modified: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/conventions.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/conventions.html	(original)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/conventions.html	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -27,7 +27,7 @@
 <a name="math_toolkit.main_overview.conventions"></a><a class="link" href="conventions.html" title="Document Conventions">Document Conventions</a>
 </h3></div></div></div>
 <p>
-        <a class="indexterm" name="id856432"></a>
+        <a class="indexterm" name="id848787"></a>
       </p>
 <p>
         This documentation aims to use of the following naming and formatting conventions.
Modified: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html	(original)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -37,11 +37,25 @@
 <a name="math_toolkit.main_overview.history1.h0"></a>
         <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_53"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_53">Boost-1.53</a>
       </h5>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
             Fixed issues #7325,
             <a href="https://svn.boost.org/trac/boost/ticket/7415" target="_top">#7415</a>
-            and #7416.
-          </li></ul></div>
+            and #7416,
+            #7183,
+            #7649,
+            #7694,
+            #4445.
+          </li>
+<li class="listitem">
+            Fixed mistake in calculating pooled standard deviation in two-sample
+            students t example #7402.
+          </li>
+<li class="listitem">
+            Improve complex acos/asin/atan, see #7290,
+            #7291.
+          </li>
+</ul></div>
 <h5>
 <a name="math_toolkit.main_overview.history1.h1"></a>
         <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_52"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_52">Boost-1.52</a>
Modified: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html	(original)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -27,7 +27,7 @@
 <a name="math_toolkit.main_overview.navigation"></a><a class="link" href="navigation.html" title="Navigation">Navigation</a>
 </h3></div></div></div>
 <p>
-        <a class="indexterm" name="id856303"></a>
+        <a class="indexterm" name="id848657"></a>
       </p>
 <p>
         Boost.Math documentation is provided in both HTML and PDF formats.
Modified: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html	(original)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -36,11 +36,25 @@
 <a name="math_toolkit.status.history1.h0"></a>
         <span class="phrase"><a name="math_toolkit.status.history1.boost_1_53"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_53">Boost-1.53</a>
       </h5>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
             Fixed issues #7325,
             <a href="https://svn.boost.org/trac/boost/ticket/7415" target="_top">#7415</a>
-            and #7416.
-          </li></ul></div>
+            and #7416,
+            #7183,
+            #7649,
+            #7694,
+            #4445.
+          </li>
+<li class="listitem">
+            Fixed mistake in calculating pooled standard deviation in two-sample
+            students t example #7402.
+          </li>
+<li class="listitem">
+            Improve complex acos/asin/atan, see #7290,
+            #7291.
+          </li>
+</ul></div>
 <h5>
 <a name="math_toolkit.status.history1.h1"></a>
         <span class="phrase"><a name="math_toolkit.status.history1.boost_1_52"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_52">Boost-1.52</a>
Modified: trunk/libs/math/doc/sf_and_dist/roadmap.qbk
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/roadmap.qbk	(original)
+++ trunk/libs/math/doc/sf_and_dist/roadmap.qbk	2012-11-29 08:27:31 EST (Thu, 29 Nov 2012)
@@ -9,9 +9,13 @@
 [h4 Boost-1.53]
 
 * Fixed issues [@https://svn.boost.org/trac/boost/ticket/7325 #7325], [@https://svn.boost.org/trac/boost/ticket/7415 #7415]
-and [@https://svn.boost.org/trac/boost/ticket/7416 #7416].
+and [@https://svn.boost.org/trac/boost/ticket/7416 #7416], [@https://svn.boost.org/trac/boost/ticket/7183 #7183],
+[@https://svn.boost.org/trac/boost/ticket/7649 #7649], [@https://svn.boost.org/trac/boost/ticket/7694 #7694],
+[@https://svn.boost.org/trac/boost/ticket/4445 #4445].
 * Fixed mistake in calculating pooled standard deviation in two-sample students t example
 [@https://svn.boost.org/trac/boost/ticket/7402 #7402].
+* Improve complex acos/asin/atan, see [@https://svn.boost.org/trac/boost/ticket/7290 #7290], 
+[@https://svn.boost.org/trac/boost/ticket/7291 #7291].
 
 [h4 Boost-1.52]