Boost logo

Boost-Commit :

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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Degrees of Freedom"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">v</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Pooled Standard Deviation"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">v</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Pooled Standard Deviation"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sp</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"T Statistic"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">t_stat</span> <span class="special">&lt;&lt;</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]
 


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