Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r76369 - in branches/release: boost/detail boost/math boost/math/special_functions boost/math/special_functions/detail libs/math 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/main_overview libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas libs/math/test
From: john_at_[hidden]
Date: 2012-01-08 08:10:36


Author: johnmaddock
Date: 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
New Revision: 76369
URL: http://svn.boost.org/trac/boost/changeset/76369

Log:
Merge Boost.Math changes from Trunk: mostly refactored test cases for shorter compile times.
Added:
   branches/release/libs/math/test/pch_light.hpp
      - copied unchanged from r76365, /trunk/libs/math/test/pch_light.hpp
Properties modified:
   branches/release/boost/detail/fenv.hpp (contents, props changed)
   branches/release/boost/math/ (props changed)
   branches/release/libs/math/ (props changed)
   branches/release/libs/math/doc/sf_and_dist/faq.qbk (props changed)
   branches/release/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/faq.html (props changed)
   branches/release/libs/math/test/s_.ipp (props changed)
Text files modified:
   branches/release/boost/detail/fenv.hpp | 5
   branches/release/boost/math/special_functions/beta.hpp | 42 ++--
   branches/release/boost/math/special_functions/detail/lgamma_small.hpp | 30 +-
   branches/release/boost/math/special_functions/erf.hpp | 6
   branches/release/boost/math/special_functions/gamma.hpp | 44 ++--
   branches/release/boost/math/special_functions/zeta.hpp | 19 -
   branches/release/libs/math/doc/sf_and_dist/html/index.html | 2
   branches/release/libs/math/doc/sf_and_dist/html/index/s12.html | 2
   branches/release/libs/math/doc/sf_and_dist/html/index/s13.html | 2
   branches/release/libs/math/doc/sf_and_dist/html/index/s14.html | 2
   branches/release/libs/math/doc/sf_and_dist/html/index/s15.html | 2
   branches/release/libs/math/doc/sf_and_dist/html/index/s16.html | 2
   branches/release/libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html | 9 -
   branches/release/libs/math/doc/sf_and_dist/zeta.qbk | 6
   branches/release/libs/math/test/Jamfile.v2 | 103 +++++-----
   branches/release/libs/math/test/hypot_test.cpp | 4
   branches/release/libs/math/test/log1p_expm1_test.cpp | 5
   branches/release/libs/math/test/powm1_sqrtp1m1_test.cpp | 5
   branches/release/libs/math/test/test_bessel_i.cpp | 2
   branches/release/libs/math/test/test_bessel_i.hpp | 3
   branches/release/libs/math/test/test_bessel_j.cpp | 2
   branches/release/libs/math/test/test_bessel_j.hpp | 3
   branches/release/libs/math/test/test_bessel_k.cpp | 2
   branches/release/libs/math/test/test_bessel_k.hpp | 3
   branches/release/libs/math/test/test_bessel_y.cpp | 2
   branches/release/libs/math/test/test_bessel_y.hpp | 3
   branches/release/libs/math/test/test_beta.cpp | 2
   branches/release/libs/math/test/test_beta.hpp | 2
   branches/release/libs/math/test/test_carlson.cpp | 2
   branches/release/libs/math/test/test_carlson.hpp | 5
   branches/release/libs/math/test/test_cbrt.cpp | 2
   branches/release/libs/math/test/test_cbrt.hpp | 2
   branches/release/libs/math/test/test_digamma.cpp | 2
   branches/release/libs/math/test/test_digamma.hpp | 2
   branches/release/libs/math/test/test_ellint_1.cpp | 2
   branches/release/libs/math/test/test_ellint_1.hpp | 2
   branches/release/libs/math/test/test_ellint_2.cpp | 2
   branches/release/libs/math/test/test_ellint_2.hpp | 2
   branches/release/libs/math/test/test_ellint_3.cpp | 2
   branches/release/libs/math/test/test_ellint_3.hpp | 2
   branches/release/libs/math/test/test_erf.cpp | 2
   branches/release/libs/math/test/test_erf.hpp | 2
   branches/release/libs/math/test/test_expint.cpp | 2
   branches/release/libs/math/test/test_expint.hpp | 3
   branches/release/libs/math/test/test_gamma.cpp | 2
   branches/release/libs/math/test/test_gamma.hpp | 2
   branches/release/libs/math/test/test_hermite.cpp | 2
   branches/release/libs/math/test/test_hermite.hpp | 2
   branches/release/libs/math/test/test_ibeta.cpp | 2
   branches/release/libs/math/test/test_ibeta.hpp | 2
   branches/release/libs/math/test/test_ibeta_inv.cpp | 2
   branches/release/libs/math/test/test_ibeta_inv.hpp | 2
   branches/release/libs/math/test/test_ibeta_inv_ab.cpp | 2
   branches/release/libs/math/test/test_ibeta_inv_ab.hpp | 2
   branches/release/libs/math/test/test_igamma.cpp | 2
   branches/release/libs/math/test/test_igamma.hpp | 2
   branches/release/libs/math/test/test_igamma_inv.cpp | 2
   branches/release/libs/math/test/test_igamma_inv.hpp | 2
   branches/release/libs/math/test/test_igamma_inva.cpp | 2
   branches/release/libs/math/test/test_igamma_inva.hpp | 2
   branches/release/libs/math/test/test_instances.hpp | 359 +++++++++++++++++++++++++++++++++++++++
   branches/release/libs/math/test/test_laguerre.cpp | 2
   branches/release/libs/math/test/test_laguerre.hpp | 2
   branches/release/libs/math/test/test_legendre.cpp | 2
   branches/release/libs/math/test/test_legendre.hpp | 2
   branches/release/libs/math/test/test_spherical_harmonic.cpp | 4
   branches/release/libs/math/test/test_zeta.cpp | 1
   67 files changed, 542 insertions(+), 212 deletions(-)

Modified: branches/release/boost/detail/fenv.hpp
==============================================================================
--- branches/release/boost/detail/fenv.hpp (original)
+++ branches/release/boost/detail/fenv.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -16,9 +16,10 @@
 
 /* If we're using clang + glibc, we have to get hacky.
  * See http://llvm.org/bugs/show_bug.cgi?id=6907 */
-#if defined(__clang__) && \
+#if defined(__clang__) && (__clang_major__ < 3) && \
     defined(__GNU_LIBRARY__) && /* up to version 5 */ \
- defined(__GLIBC__) /* version 6 + */
+ defined(__GLIBC__) && /* version 6 + */ \
+ !defined(_FENV_H)
   #define _FENV_H
 
   #include <features.h>

Modified: branches/release/boost/math/special_functions/beta.hpp
==============================================================================
--- branches/release/boost/math/special_functions/beta.hpp (original)
+++ branches/release/boost/math/special_functions/beta.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -29,8 +29,8 @@
 //
 // Implementation of Beta(a,b) using the Lanczos approximation:
 //
-template <class T, class L, class Policy>
-T beta_imp(T a, T b, const L&, const Policy& pol)
+template <class T, class Lanczos, class Policy>
+T beta_imp(T a, T b, const Lanczos&, const Policy& pol)
 {
    BOOST_MATH_STD_USING // for ADL of std names
 
@@ -81,10 +81,10 @@
       std::swap(a, b);
 
    // Lanczos calculation:
- T agh = a + L::g() - T(0.5);
- T bgh = b + L::g() - T(0.5);
- T cgh = c + L::g() - T(0.5);
- result = L::lanczos_sum_expG_scaled(a) * L::lanczos_sum_expG_scaled(b) / L::lanczos_sum_expG_scaled(c);
+ T agh = a + Lanczos::g() - T(0.5);
+ T bgh = b + Lanczos::g() - T(0.5);
+ T cgh = c + Lanczos::g() - T(0.5);
+ result = Lanczos::lanczos_sum_expG_scaled(a) * Lanczos::lanczos_sum_expG_scaled(b) / Lanczos::lanczos_sum_expG_scaled(c);
    T ambh = a - T(0.5) - b;
    if((fabs(b * ambh) < (cgh * 100)) && (a > 100))
    {
@@ -107,7 +107,7 @@
    result *= prefix;
 
    return result;
-} // template <class T, class L> beta_imp(T a, T b, const L&)
+} // template <class T, class Lanczos> beta_imp(T a, T b, const Lanczos&)
 
 //
 // Generic implementation of Beta(a,b) without Lanczos approximation support
@@ -191,12 +191,12 @@
 // powers are *hard* though, and using logarithms just leads to
 // horrendous cancellation errors.
 //
-template <class T, class L, class Policy>
+template <class T, class Lanczos, class Policy>
 T ibeta_power_terms(T a,
                         T b,
                         T x,
                         T y,
- const L&,
+ const Lanczos&,
                         bool normalised,
                         const Policy& pol)
 {
@@ -214,10 +214,10 @@
    T c = a + b;
 
    // combine power terms with Lanczos approximation:
- T agh = a + L::g() - T(0.5);
- T bgh = b + L::g() - T(0.5);
- T cgh = c + L::g() - T(0.5);
- result = L::lanczos_sum_expG_scaled(c) / (L::lanczos_sum_expG_scaled(a) * L::lanczos_sum_expG_scaled(b));
+ T agh = a + Lanczos::g() - T(0.5);
+ T bgh = b + Lanczos::g() - T(0.5);
+ T cgh = c + Lanczos::g() - T(0.5);
+ result = Lanczos::lanczos_sum_expG_scaled(c) / (Lanczos::lanczos_sum_expG_scaled(a) * Lanczos::lanczos_sum_expG_scaled(b));
 
    // l1 and l2 are the base of the exponents minus one:
    T l1 = (x * b - y * agh) / agh;
@@ -465,8 +465,8 @@
    int n;
 };
 
-template <class T, class L, class Policy>
-T ibeta_series(T a, T b, T x, T s0, const L&, bool normalised, T* p_derivative, T y, const Policy& pol)
+template <class T, class Lanczos, class Policy>
+T ibeta_series(T a, T b, T x, T s0, const Lanczos&, bool normalised, T* p_derivative, T y, const Policy& pol)
 {
    BOOST_MATH_STD_USING
 
@@ -479,10 +479,10 @@
       T c = a + b;
 
       // incomplete beta power term, combined with the Lanczos approximation:
- T agh = a + L::g() - T(0.5);
- T bgh = b + L::g() - T(0.5);
- T cgh = c + L::g() - T(0.5);
- result = L::lanczos_sum_expG_scaled(c) / (L::lanczos_sum_expG_scaled(a) * L::lanczos_sum_expG_scaled(b));
+ T agh = a + Lanczos::g() - T(0.5);
+ T bgh = b + Lanczos::g() - T(0.5);
+ T cgh = c + Lanczos::g() - T(0.5);
+ result = Lanczos::lanczos_sum_expG_scaled(c) / (Lanczos::lanczos_sum_expG_scaled(a) * Lanczos::lanczos_sum_expG_scaled(b));
       if(a * b < bgh * 10)
          result *= exp((b - 0.5f) * boost::math::log1p(a / bgh, pol));
       else
@@ -836,7 +836,7 @@
       }
    }
    return sum;
-} // template <class T, class L>T beta_small_b_large_a_series(T a, T b, T x, T y, T s0, T mult, const L& l, bool normalised)
+} // template <class T, class Lanczos>T beta_small_b_large_a_series(T a, T b, T x, T y, T s0, T mult, const Lanczos& l, bool normalised)
 
 //
 // For integer arguments we can relate the incomplete beta to the
@@ -1220,7 +1220,7 @@
       }
    }
    return invert ? (normalised ? 1 : boost::math::beta(a, b, pol)) - fract : fract;
-} // template <class T, class L>T ibeta_imp(T a, T b, T x, const L& l, bool inv, bool normalised)
+} // template <class T, class Lanczos>T ibeta_imp(T a, T b, T x, const Lanczos& l, bool inv, bool normalised)
 
 template <class T, class Policy>
 inline T ibeta_imp(T a, T b, T x, const Policy& pol, bool inv, bool normalised)

Modified: branches/release/boost/math/special_functions/detail/lgamma_small.hpp
==============================================================================
--- branches/release/boost/math/special_functions/detail/lgamma_small.hpp (original)
+++ branches/release/boost/math/special_functions/detail/lgamma_small.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -17,13 +17,13 @@
 //
 // lgamma for small arguments:
 //
-template <class T, class Policy, class L>
-T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<64>&, const Policy& /* l */, const L&)
+template <class T, class Policy, class Lanczos>
+T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<64>&, const Policy& /* l */, const Lanczos&)
 {
    // This version uses rational approximations for small
    // values of z accurate enough for 64-bit mantissas
    // (80-bit long doubles), works well for 53-bit doubles as well.
- // L is only used to select the Lanczos function.
+ // Lanczos is only used to select the Lanczos function.
 
    BOOST_MATH_STD_USING // for ADL of std names
    T result = 0;
@@ -206,8 +206,8 @@
    }
    return result;
 }
-template <class T, class Policy, class L>
-T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<113>&, const Policy& /* l */, const L&)
+template <class T, class Policy, class Lanczos>
+T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<113>&, const Policy& /* l */, const Lanczos&)
 {
    //
    // This version uses rational approximations for small
@@ -463,8 +463,8 @@
    BOOST_MATH_INSTRUMENT_CODE(result);
    return result;
 }
-template <class T, class Policy, class L>
-T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<0>&, const Policy& pol, const L&)
+template <class T, class Policy, class Lanczos>
+T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<0>&, const Policy& pol, const Lanczos&)
 {
    //
    // No rational approximations are available because either
@@ -482,28 +482,28 @@
    else if(z < 0.5)
    {
       // taking the log of tgamma reduces the error, no danger of overflow here:
- result = log(gamma_imp(z, pol, L()));
+ result = log(gamma_imp(z, pol, Lanczos()));
    }
    else if(z >= 3)
    {
       // taking the log of tgamma reduces the error, no danger of overflow here:
- result = log(gamma_imp(z, pol, L()));
+ result = log(gamma_imp(z, pol, Lanczos()));
    }
    else if(z >= 1.5)
    {
       // special case near 2:
       T dz = zm2;
- result = dz * log((z + L::g() - T(0.5)) / boost::math::constants::e<T>());
- result += boost::math::log1p(dz / (L::g() + T(1.5)), pol) * T(1.5);
- result += boost::math::log1p(L::lanczos_sum_near_2(dz), pol);
+ result = dz * log((z + Lanczos::g() - T(0.5)) / boost::math::constants::e<T>());
+ result += boost::math::log1p(dz / (Lanczos::g() + T(1.5)), pol) * T(1.5);
+ result += boost::math::log1p(Lanczos::lanczos_sum_near_2(dz), pol);
    }
    else
    {
       // special case near 1:
       T dz = zm1;
- result = dz * log((z + L::g() - T(0.5)) / boost::math::constants::e<T>());
- result += boost::math::log1p(dz / (L::g() + T(0.5)), pol) / 2;
- result += boost::math::log1p(L::lanczos_sum_near_1(dz), pol);
+ result = dz * log((z + Lanczos::g() - T(0.5)) / boost::math::constants::e<T>());
+ result += boost::math::log1p(dz / (Lanczos::g() + T(0.5)), pol) / 2;
+ result += boost::math::log1p(Lanczos::lanczos_sum_near_1(dz), pol);
    }
    return result;
 }

Modified: branches/release/boost/math/special_functions/erf.hpp
==============================================================================
--- branches/release/boost/math/special_functions/erf.hpp (original)
+++ branches/release/boost/math/special_functions/erf.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -365,7 +365,7 @@
    }
 
    return result;
-} // template <class T, class L>T erf_imp(T z, bool invert, const L& l, const mpl::int_<53>& t)
+} // template <class T, class Lanczos>T erf_imp(T z, bool invert, const Lanczos& l, const mpl::int_<53>& t)
 
 
 template <class T, class Policy>
@@ -571,7 +571,7 @@
    }
 
    return result;
-} // template <class T, class L>T erf_imp(T z, bool invert, const L& l, const mpl::int_<64>& t)
+} // template <class T, class Lanczos>T erf_imp(T z, bool invert, const Lanczos& l, const mpl::int_<64>& t)
 
 
 template <class T, class Policy>
@@ -976,7 +976,7 @@
    }
 
    return result;
-} // template <class T, class L>T erf_imp(T z, bool invert, const L& l, const mpl::int_<113>& t)
+} // template <class T, class Lanczos>T erf_imp(T z, bool invert, const Lanczos& l, const mpl::int_<113>& t)
 
 } // namespace detail
 

Modified: branches/release/boost/math/special_functions/gamma.hpp
==============================================================================
--- branches/release/boost/math/special_functions/gamma.hpp (original)
+++ branches/release/boost/math/special_functions/gamma.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -127,8 +127,8 @@
 //
 // tgamma(z), with Lanczos support:
 //
-template <class T, class Policy, class L>
-T gamma_imp(T z, const Policy& pol, const L& l)
+template <class T, class Policy, class Lanczos>
+T gamma_imp(T z, const Policy& pol, const Lanczos& l)
 {
    BOOST_MATH_STD_USING
 
@@ -178,13 +178,13 @@
    }
    else
    {
- result *= L::lanczos_sum(z);
+ result *= Lanczos::lanczos_sum(z);
       BOOST_MATH_INSTRUMENT_VARIABLE(result);
       BOOST_MATH_INSTRUMENT_VARIABLE(tools::log_max_value<T>());
       if(z * log(z) > tools::log_max_value<T>())
       {
          // we're going to overflow unless this is done with care:
- T zgh = (z + static_cast<T>(L::g()) - boost::math::constants::half<T>());
+ T zgh = (z + static_cast<T>(Lanczos::g()) - boost::math::constants::half<T>());
          BOOST_MATH_INSTRUMENT_VARIABLE(zgh);
          if(log(zgh) * z / 2 > tools::log_max_value<T>())
             return policies::raise_overflow_error<T>(function, "Result of tgamma is too large to represent.", pol);
@@ -199,7 +199,7 @@
       }
       else
       {
- T zgh = (z + static_cast<T>(L::g()) - boost::math::constants::half<T>());
+ T zgh = (z + static_cast<T>(Lanczos::g()) - boost::math::constants::half<T>());
          BOOST_MATH_INSTRUMENT_VARIABLE(zgh);
          BOOST_MATH_INSTRUMENT_VARIABLE(pow(zgh, z - boost::math::constants::half<T>()));
          BOOST_MATH_INSTRUMENT_VARIABLE(exp(zgh));
@@ -212,8 +212,8 @@
 //
 // lgamma(z) with Lanczos support:
 //
-template <class T, class Policy, class L>
-T lgamma_imp(T z, const Policy& pol, const L& l, int* sign = 0)
+template <class T, class Policy, class Lanczos>
+T lgamma_imp(T z, const Policy& pol, const Lanczos& l, int* sign = 0)
 {
 #ifdef BOOST_MATH_INSTRUMENT
    static bool b = false;
@@ -274,10 +274,10 @@
    else
    {
       // regular evaluation:
- T zgh = static_cast<T>(z + L::g() - boost::math::constants::half<T>());
+ T zgh = static_cast<T>(z + Lanczos::g() - boost::math::constants::half<T>());
       result = log(zgh) - 1;
       result *= z - 0.5f;
- result += log(L::lanczos_sum_expG_scaled(z));
+ result += log(Lanczos::lanczos_sum_expG_scaled(z));
    }
 
    if(sign)
@@ -447,8 +447,8 @@
 // This helper calculates tgamma(dz+1)-1 without cancellation errors,
 // used by the upper incomplete gamma with z < 1:
 //
-template <class T, class Policy, class L>
-T tgammap1m1_imp(T dz, Policy const& pol, const L& l)
+template <class T, class Policy, class Lanczos>
+T tgammap1m1_imp(T dz, Policy const& pol, const Lanczos& l)
 {
    BOOST_MATH_STD_USING
 
@@ -460,7 +460,7 @@
          mpl::greater<precision_type, mpl::int_<113> >
>,
       typename mpl::if_<
- is_same<L, lanczos::lanczos24m113>,
+ is_same<Lanczos, lanczos::lanczos24m113>,
          mpl::int_<113>,
          mpl::int_<0>
>::type,
@@ -612,13 +612,13 @@
 // Compute (z^a)(e^-z)/tgamma(a)
 // most if the error occurs in this function:
 //
-template <class T, class Policy, class L>
-T regularised_gamma_prefix(T a, T z, const Policy& pol, const L& l)
+template <class T, class Policy, class Lanczos>
+T regularised_gamma_prefix(T a, T z, const Policy& pol, const Lanczos& l)
 {
    BOOST_MATH_STD_USING
- T agh = a + static_cast<T>(L::g()) - T(0.5);
+ T agh = a + static_cast<T>(Lanczos::g()) - T(0.5);
    T prefix;
- T d = ((z - a) - static_cast<T>(L::g()) + T(0.5)) / agh;
+ T d = ((z - a) - static_cast<T>(Lanczos::g()) + T(0.5)) / agh;
 
    if(a < 1)
    {
@@ -646,7 +646,7 @@
    else if((fabs(d*d*a) <= 100) && (a > 150))
    {
       // special case for large a and a ~ z.
- prefix = a * boost::math::log1pmx(d, pol) + z * static_cast<T>(0.5 - L::g()) / agh;
+ prefix = a * boost::math::log1pmx(d, pol) + z * static_cast<T>(0.5 - Lanczos::g()) / agh;
       prefix = exp(prefix);
    }
    else
@@ -688,7 +688,7 @@
          prefix = pow(z / agh, a) * exp(amz);
       }
    }
- prefix *= sqrt(agh / boost::math::constants::e<T>()) / L::lanczos_sum_expG_scaled(a);
+ prefix *= sqrt(agh / boost::math::constants::e<T>()) / Lanczos::lanczos_sum_expG_scaled(a);
    return prefix;
 }
 //
@@ -1092,11 +1092,11 @@
 //
 // Ratios of two gamma functions:
 //
-template <class T, class Policy, class L>
-T tgamma_delta_ratio_imp_lanczos(T z, T delta, const Policy& pol, const L&)
+template <class T, class Policy, class Lanczos>
+T tgamma_delta_ratio_imp_lanczos(T z, T delta, const Policy& pol, const Lanczos&)
 {
    BOOST_MATH_STD_USING
- T zgh = z + L::g() - constants::half<T>();
+ T zgh = z + Lanczos::g() - constants::half<T>();
    T result;
    if(fabs(delta) < 10)
    {
@@ -1107,7 +1107,7 @@
       result = pow(zgh / (zgh + delta), z - constants::half<T>());
    }
    result *= pow(constants::e<T>() / (zgh + delta), delta);
- result *= L::lanczos_sum(z) / L::lanczos_sum(T(z + delta));
+ result *= Lanczos::lanczos_sum(z) / Lanczos::lanczos_sum(T(z + delta));
    return result;
 }
 //

Modified: branches/release/boost/math/special_functions/zeta.hpp
==============================================================================
--- branches/release/boost/math/special_functions/zeta.hpp (original)
+++ branches/release/boost/math/special_functions/zeta.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -19,6 +19,12 @@
 
 namespace boost{ namespace math{ namespace detail{
 
+#if 0
+//
+// This code is commented out because we have a better more rapidly converging series
+// now. Retained for future reference and in case the new code causes any issues down the line....
+//
+
 template <class T, class Policy>
 struct zeta_series_cache_size
 {
@@ -90,12 +96,6 @@
    return sum * 1 / -boost::math::powm1(T(2), sc);
 }
 
-#if 0
-//
-// This code is commented out because we have a better more rapidly converging series
-// now. Retained for future reference and in case the new code causes any issues down the line....
-//
-
 //
 // Classical p-series:
 //
@@ -158,7 +158,7 @@
       ej_term /= j - n + 1;
       ej_sum += ej_term;
    }
- return -sum / (two_n * (1 - pow(T(2), sc)));
+ return -sum / (two_n * (-powm1(T(2), sc)));
 }
 
 template <class T, class Policy>
@@ -166,10 +166,7 @@
 {
    BOOST_MATH_STD_USING
    T result;
- if(fabs(sc) > 0.01f)
- result = zeta_polynomial_series(s, sc, pol);
- else
- result = detail::zeta_series_imp(s, sc, pol);
+ result = zeta_polynomial_series(s, sc, pol);
 #if 0
    // Old code archived for future reference:
 

Modified: branches/release/libs/math/doc/sf_and_dist/html/index.html
==============================================================================
--- branches/release/libs/math/doc/sf_and_dist/html/index.html (original)
+++ branches/release/libs/math/doc/sf_and_dist/html/index.html 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -513,7 +513,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: January 02, 2012 at 11:43:05 GMT</small></p></td>
+<td align="left"><p><small>Last revised: January 07, 2012 at 16:42:37 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: branches/release/libs/math/doc/sf_and_dist/html/index/s12.html
==============================================================================
--- branches/release/libs/math/doc/sf_and_dist/html/index/s12.html (original)
+++ branches/release/libs/math/doc/sf_and_dist/html/index/s12.html 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -24,7 +24,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1439950"></a>Function Index</h2></div></div></div>
+<a name="id1501367"></a>Function Index</h2></div></div></div>
 <p><a class="link" href="s12.html#idx_id_0">A</a> <a class="link" href="s12.html#idx_id_1">B</a> <a class="link" href="s12.html#idx_id_2">C</a> <a class="link" href="s12.html#idx_id_3">D</a> <a class="link" href="s12.html#idx_id_4">E</a> <a class="link" href="s12.html#idx_id_5">F</a> <a class="link" href="s12.html#idx_id_6">G</a> <a class="link" href="s12.html#idx_id_7">H</a> <a class="link" href="s12.html#idx_id_8">I</a> <a class="link" href="s12.html#idx_id_9">K</a> <a class="link" href="s12.html#idx_id_10">L</a> <a class="link" href="s12.html#idx_id_11">M</a> <a class="link" href="s12.html#idx_id_12">N</a> <a class="link" href="s12.html#idx_id_14">P</a> <a class="link" href="s12.html#idx_id_15">Q</a> <a class="link" href="s12.html#idx_id_16">R</a> <a class="link" href="s12.html#idx_id_17">S</a> <a class="link" href="s12.html#idx_id_18">T</a> <a class="link" href="s12.html#idx_id_19">U</a> <a class="link" href="s12.html#idx_id_20">V</a> <a class="link" href="s12.html#idx_id_21">W</a> <a class="link" href=
"s12.html#idx_id_22">Z</a></p>
 <div class="variablelist"><dl>
 <dt>

Modified: branches/release/libs/math/doc/sf_and_dist/html/index/s13.html
==============================================================================
--- branches/release/libs/math/doc/sf_and_dist/html/index/s13.html (original)
+++ branches/release/libs/math/doc/sf_and_dist/html/index/s13.html 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -24,7 +24,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1455854"></a>Class Index</h2></div></div></div>
+<a name="id1517264"></a>Class Index</h2></div></div></div>
 <p><a class="link" href="s13.html#idx_id_24">B</a> <a class="link" href="s13.html#idx_id_25">C</a> <a class="link" href="s13.html#idx_id_26">D</a> <a class="link" href="s13.html#idx_id_27">E</a> <a class="link" href="s13.html#idx_id_28">F</a> <a class="link" href="s13.html#idx_id_29">G</a> <a class="link" href="s13.html#idx_id_30">H</a> <a class="link" href="s13.html#idx_id_31">I</a> <a class="link" href="s13.html#idx_id_33">L</a> <a class="link" href="s13.html#idx_id_34">M</a> <a class="link" href="s13.html#idx_id_35">N</a> <a class="link" href="s13.html#idx_id_37">P</a> <a class="link" href="s13.html#idx_id_39">R</a> <a class="link" href="s13.html#idx_id_40">S</a> <a class="link" href="s13.html#idx_id_41">T</a> <a class="link" href="s13.html#idx_id_42">U</a> <a class="link" href="s13.html#idx_id_44">W</a></p>
 <div class="variablelist"><dl>
 <dt>

Modified: branches/release/libs/math/doc/sf_and_dist/html/index/s14.html
==============================================================================
--- branches/release/libs/math/doc/sf_and_dist/html/index/s14.html (original)
+++ branches/release/libs/math/doc/sf_and_dist/html/index/s14.html 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -24,7 +24,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1456767"></a>Typedef Index</h2></div></div></div>
+<a name="id1518178"></a>Typedef Index</h2></div></div></div>
 <p><a class="link" href="s14.html#idx_id_46">A</a> <a class="link" href="s14.html#idx_id_47">B</a> <a class="link" href="s14.html#idx_id_48">C</a> <a class="link" href="s14.html#idx_id_49">D</a> <a class="link" href="s14.html#idx_id_50">E</a> <a class="link" href="s14.html#idx_id_51">F</a> <a class="link" href="s14.html#idx_id_52">G</a> <a class="link" href="s14.html#idx_id_53">H</a> <a class="link" href="s14.html#idx_id_54">I</a> <a class="link" href="s14.html#idx_id_56">L</a> <a class="link" href="s14.html#idx_id_58">N</a> <a class="link" href="s14.html#idx_id_59">O</a> <a class="link" href="s14.html#idx_id_60">P</a> <a class="link" href="s14.html#idx_id_62">R</a> <a class="link" href="s14.html#idx_id_63">S</a> <a class="link" href="s14.html#idx_id_64">T</a> <a class="link" href="s14.html#idx_id_65">U</a> <a class="link" href="s14.html#idx_id_66">V</a> <a class="link" href="s14.html#idx_id_67">W</a></p>
 <div class="variablelist"><dl>
 <dt>

Modified: branches/release/libs/math/doc/sf_and_dist/html/index/s15.html
==============================================================================
--- branches/release/libs/math/doc/sf_and_dist/html/index/s15.html (original)
+++ branches/release/libs/math/doc/sf_and_dist/html/index/s15.html 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -24,7 +24,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1459652"></a>Macro Index</h2></div></div></div>
+<a name="id1521062"></a>Macro Index</h2></div></div></div>
 <p><a class="link" href="s15.html#idx_id_70">B</a> <a class="link" href="s15.html#idx_id_74">F</a></p>
 <div class="variablelist"><dl>
 <dt>

Modified: branches/release/libs/math/doc/sf_and_dist/html/index/s16.html
==============================================================================
--- branches/release/libs/math/doc/sf_and_dist/html/index/s16.html (original)
+++ branches/release/libs/math/doc/sf_and_dist/html/index/s16.html 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -23,7 +23,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1461088"></a>Index</h2></div></div></div>
+<a name="id1522498"></a>Index</h2></div></div></div>
 <p><a class="link" href="s16.html#idx_id_92">A</a> <a class="link" href="s16.html#idx_id_93">B</a> <a class="link" href="s16.html#idx_id_94">C</a> <a class="link" href="s16.html#idx_id_95">D</a> <a class="link" href="s16.html#idx_id_96">E</a> <a class="link" href="s16.html#idx_id_97">F</a> <a class="link" href="s16.html#idx_id_98">G</a> <a class="link" href="s16.html#idx_id_99">H</a> <a class="link" href="s16.html#idx_id_100">I</a> <a class="link" href="s16.html#idx_id_101">K</a> <a class="link" href="s16.html#idx_id_102">L</a> <a class="link" href="s16.html#idx_id_103">M</a> <a class="link" href="s16.html#idx_id_104">N</a> <a class="link" href="s16.html#idx_id_105">O</a> <a class="link" href="s16.html#idx_id_106">P</a> <a class="link" href="s16.html#idx_id_107">Q</a> <a class="link" href="s16.html#idx_id_108">R</a> <a class="link" href="s16.html#idx_id_109">S</a> <a class="link" href="s16.html#idx_id_110">T</a> <a class="link" href="s16.html#idx_id_111">U</a> <a class="link" href="s16.html#idx_id_112">V</a
> <a class="link" href="s16.html#idx_id_113">W</a> <a class="link" href="s16.html#idx_id_114">Z</a></p>
 <div class="variablelist"><dl>
 <dt>

Modified: branches/release/libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html
==============================================================================
--- branches/release/libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html (original)
+++ branches/release/libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -260,15 +260,6 @@
           <span class="inlinemediaobject"><img src="../../../../equations/zeta6.png"></span>
         </p>
 <p>
- except when the argument is close to 1, where the globally convergent series:
- </p>
-<p>
- <span class="inlinemediaobject"><img src="../../../../equations/zeta2.png"></span>
- </p>
-<p>
- Is used.
- </p>
-<p>
           When the significand (mantissa) size is recognised (currently for 53, 64
           and 113-bit reals, plus single-precision 24-bit handled via promotion to
           double) then a series of rational approximations <a class="link" href="../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.rational_approximations_used">devised

Modified: branches/release/libs/math/doc/sf_and_dist/zeta.qbk
==============================================================================
--- branches/release/libs/math/doc/sf_and_dist/zeta.qbk (original)
+++ branches/release/libs/math/doc/sf_and_dist/zeta.qbk 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -87,12 +87,6 @@
 
 [equation zeta6]
 
-except when the argument is close to 1, where the globally convergent series:
-
-[equation zeta2]
-
-Is used.
-
 When the significand (mantissa) size is recognised
 (currently for 53, 64 and 113-bit reals, plus single-precision 24-bit handled via promotion to double)
 then a series of rational approximations [jm_rationals] are used.

Modified: branches/release/libs/math/test/Jamfile.v2
==============================================================================
--- branches/release/libs/math/test/Jamfile.v2 (original)
+++ branches/release/libs/math/test/Jamfile.v2 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -57,22 +57,23 @@
     ;
 
 cpp-pch pch : pch.hpp : <use>../../test/build//boost_test_exec_monitor ;
+cpp-pch pch_light : pch_light.hpp : <use>../../test/build//boost_test_exec_monitor ;
 
 lib test_instances : float_test_instances.cpp double_test_instances.cpp ldouble_test_instances.cpp real_concept_test_instances.cpp pch
                    : <link>static ;
 
-run hypot_test.cpp pch ../../test/build//boost_test_exec_monitor ;
+run hypot_test.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run pow_test.cpp ../../test/build//boost_test_exec_monitor ;
-run log1p_expm1_test.cpp pch ../../test/build//boost_test_exec_monitor ;
-run powm1_sqrtp1m1_test.cpp pch ../../test/build//boost_test_exec_monitor ;
+run log1p_expm1_test.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run powm1_sqrtp1m1_test.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run special_functions_test.cpp ../../test/build//boost_unit_test_framework/<link>static ;
 run test_bernoulli.cpp ../../test/build//boost_test_exec_monitor ;
 run test_constants.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_bessel_j.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_bessel_y.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_bessel_i.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_bessel_k.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_beta.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_bessel_j.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_bessel_y.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_bessel_i.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_bessel_k.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_beta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_beta_dist.cpp ../../test/build//boost_test_exec_monitor ;
 run test_binomial.cpp ../../test/build//boost_test_exec_monitor
         : # command line
@@ -152,29 +153,29 @@
               <toolset>intel:<pch>off
         : test_binomial_real_concept6 ;
 run test_binomial_coeff.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_carlson.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_carlson.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_cauchy.cpp ../../test/build//boost_test_exec_monitor ;
-run test_cbrt.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_cbrt.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_chi_squared.cpp ../../test/build//boost_test_exec_monitor ;
 run test_classify.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_digamma.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_digamma.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_dist_overloads.cpp ../../test/build//boost_test_exec_monitor ;
-run test_ellint_1.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_ellint_2.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_ellint_3.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_erf.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_ellint_1.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_ellint_2.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_ellint_3.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_erf.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_error_handling.cpp ../../test/build//boost_test_exec_monitor ;
-run test_expint.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_expint.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_exponential_dist.cpp ../../test/build//boost_test_exec_monitor ;
 run test_extreme_value.cpp ../../test/build//boost_test_exec_monitor ;
 run test_factorials.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_find_location.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_find_scale.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_fisher_f.cpp ../../test/build//boost_test_exec_monitor ;
-run test_gamma.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_gamma.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_gamma_dist.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_geometric.cpp ../../test/build//boost_test_exec_monitor ;
-run test_hermite.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_hermite.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_hypergeometric_dist.cpp ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
@@ -217,28 +218,28 @@
               <define>TEST_QUANT=5
               <toolset>intel:<pch>off
         : test_hypergeometric_dist5 ;
-run test_ibeta.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_FLOAT
               <toolset>intel:<pch>off
         : test_ibeta_float ;
-run test_ibeta.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_DOUBLE
               <toolset>intel:<pch>off
         : test_ibeta_double ;
-run test_ibeta.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_LDOUBLE
               <toolset>intel:<pch>off
         : test_ibeta_long_double ;
-run test_ibeta.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -246,7 +247,7 @@
               <define>TEST_DATA=1
               <toolset>intel:<pch>off
         : test_ibeta_real_concept1 ;
-run test_ibeta.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -254,7 +255,7 @@
               <define>TEST_DATA=2
               <toolset>intel:<pch>off
         : test_ibeta_real_concept2 ;
-run test_ibeta.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -262,7 +263,7 @@
               <define>TEST_DATA=3
               <toolset>intel:<pch>off
         : test_ibeta_real_concept3 ;
-run test_ibeta.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -270,28 +271,28 @@
               <define>TEST_DATA=4
               <toolset>intel:<pch>off
         : test_ibeta_real_concept4 ;
-run test_ibeta_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_FLOAT
               <toolset>intel:<pch>off
         : test_ibeta_inv_float ;
-run test_ibeta_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_DOUBLE
               <toolset>intel:<pch>off
         : test_ibeta_inv_double ;
-run test_ibeta_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_LDOUBLE
               <toolset>intel:<pch>off
         : test_ibeta_inv_long_double ;
-run test_ibeta_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -299,7 +300,7 @@
               <define>TEST_DATA=1
               <toolset>intel:<pch>off
         : test_ibeta_inv_real_concept1 ;
-run test_ibeta_inv.cpp ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -307,7 +308,7 @@
               <define>TEST_DATA=2
               <toolset>intel:<pch>off
         : test_ibeta_inv_real_concept2 ;
-run test_ibeta_inv.cpp ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -315,7 +316,7 @@
               <define>TEST_DATA=3
               <toolset>intel:<pch>off
         : test_ibeta_inv_real_concept3 ;
-run test_ibeta_inv.cpp ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -323,28 +324,28 @@
               <define>TEST_DATA=4
               <toolset>intel:<pch>off
         : test_ibeta_inv_real_concept4 ;
-run test_ibeta_inv_ab.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv_ab.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_FLOAT
               <toolset>intel:<pch>off
         : test_ibeta_inv_ab_float ;
-run test_ibeta_inv_ab.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv_ab.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_DOUBLE
               <toolset>intel:<pch>off
         : test_ibeta_inv_ab_double ;
-run test_ibeta_inv_ab.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv_ab.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_LDOUBLE
               <toolset>intel:<pch>off
         : test_ibeta_inv_ab_long_double ;
-run test_ibeta_inv_ab.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv_ab.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -352,7 +353,7 @@
               <define>TEST_DATA=1
               <toolset>intel:<pch>off
         : test_ibeta_inv_ab_real_concept1 ;
-run test_ibeta_inv_ab.cpp ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv_ab.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -360,7 +361,7 @@
               <define>TEST_DATA=2
               <toolset>intel:<pch>off
         : test_ibeta_inv_ab_real_concept2 ;
-run test_ibeta_inv_ab.cpp ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv_ab.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -368,57 +369,57 @@
               <define>TEST_DATA=3
               <toolset>intel:<pch>off
         : test_ibeta_inv_ab_real_concept3 ;
-run test_igamma.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_igamma_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_igamma_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_FLOAT
               <toolset>intel:<pch>off
         : test_igamma_inv_float ;
-run test_igamma_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_DOUBLE
               <toolset>intel:<pch>off
         : test_igamma_inv_double ;
-run test_igamma_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_LDOUBLE
               <toolset>intel:<pch>off
         : test_igamma_inv_long_double ;
-run test_igamma_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_REAL_CONCEPT
               <toolset>intel:<pch>off
         : test_igamma_inv_real_concept ;
-run test_igamma_inva.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma_inva.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_FLOAT
               <toolset>intel:<pch>off
         : test_igamma_inva_float ;
-run test_igamma_inva.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma_inva.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_DOUBLE
               <toolset>intel:<pch>off
         : test_igamma_inva_double ;
-run test_igamma_inva.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma_inva.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_LDOUBLE
               <toolset>intel:<pch>off
         : test_igamma_inva_long_double ;
-run test_igamma_inva.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma_inva.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -433,8 +434,8 @@
 
 run test_laplace.cpp ../../test/build//boost_unit_test_framework/<link>static ;
 run test_inv_hyp.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_laguerre.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_legendre.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_laguerre.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_legendre.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_logistic_dist.cpp ../../test/build//boost_test_exec_monitor ;
 run test_lognormal.cpp ../../test/build//boost_test_exec_monitor ;
 run test_minima.cpp pch ../../test/build//boost_test_exec_monitor ;
@@ -619,7 +620,7 @@
 run test_remez.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_roots.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_round.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_spherical_harmonic.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_spherical_harmonic.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_students_t.cpp ../../test/build//boost_test_exec_monitor ;
 run test_sign.cpp ../../test/build//boost_test_exec_monitor ;
 run test_tgamma_ratio.cpp pch ../../test/build//boost_test_exec_monitor ;
@@ -627,7 +628,7 @@
 run test_triangular.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_uniform.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_weibull.cpp ../../test/build//boost_test_exec_monitor ;
-run test_zeta.cpp test_instances ../../test/build//boost_test_exec_monitor ;
+run test_zeta.cpp test_instances ../../test/build//boost_test_exec_monitor pch_light ;
 
 run test_policy.cpp ../../test/build//boost_test_exec_monitor ;
 run test_policy_2.cpp ../../test/build//boost_test_exec_monitor ;

Modified: branches/release/libs/math/test/hypot_test.cpp
==============================================================================
--- branches/release/libs/math/test/hypot_test.cpp (original)
+++ branches/release/libs/math/test/hypot_test.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,12 +3,12 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 
 #define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/hypot.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 
 #include <cmath>
 

Modified: branches/release/libs/math/test/log1p_expm1_test.cpp
==============================================================================
--- branches/release/libs/math/test/log1p_expm1_test.cpp (original)
+++ branches/release/libs/math/test/log1p_expm1_test.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -4,7 +4,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 
 // Requires MS extensions permitted or fails to link.
 
@@ -14,8 +14,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/log1p.hpp>
-#include <boost/math/special_functions/expm1.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include "log1p_expm1_test.hpp"
 
 //

Modified: branches/release/libs/math/test/powm1_sqrtp1m1_test.cpp
==============================================================================
--- branches/release/libs/math/test/powm1_sqrtp1m1_test.cpp (original)
+++ branches/release/libs/math/test/powm1_sqrtp1m1_test.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,13 +3,12 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/sqrt1pm1.hpp>
-#include <boost/math/special_functions/powm1.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/tools/test.hpp>
 #include "powm1_sqrtp1m1_test.hpp"
 

Modified: branches/release/libs/math/test/test_bessel_i.cpp
==============================================================================
--- branches/release/libs/math/test/test_bessel_i.cpp (original)
+++ branches/release/libs/math/test/test_bessel_i.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_bessel_i.hpp"
 
 //

Modified: branches/release/libs/math/test/test_bessel_i.hpp
==============================================================================
--- branches/release/libs/math/test/test_bessel_i.hpp (original)
+++ branches/release/libs/math/test/test_bessel_i.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -7,8 +7,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/bessel.hpp>
-#include <boost/math/special_functions/trunc.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/type_traits/is_floating_point.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"

Modified: branches/release/libs/math/test/test_bessel_j.cpp
==============================================================================
--- branches/release/libs/math/test/test_bessel_j.cpp (original)
+++ branches/release/libs/math/test/test_bessel_j.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 
 #include "test_bessel_j.hpp"
 

Modified: branches/release/libs/math/test/test_bessel_j.hpp
==============================================================================
--- branches/release/libs/math/test/test_bessel_j.hpp (original)
+++ branches/release/libs/math/test/test_bessel_j.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -7,8 +7,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/bessel.hpp>
-#include <boost/math/special_functions/trunc.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/type_traits/is_floating_point.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"

Modified: branches/release/libs/math/test/test_bessel_k.cpp
==============================================================================
--- branches/release/libs/math/test/test_bessel_k.cpp (original)
+++ branches/release/libs/math/test/test_bessel_k.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -5,7 +5,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 
 #ifdef _MSC_VER
 # pragma warning(disable : 4756) // overflow in constant arithmetic

Modified: branches/release/libs/math/test/test_bessel_k.hpp
==============================================================================
--- branches/release/libs/math/test/test_bessel_k.hpp (original)
+++ branches/release/libs/math/test/test_bessel_k.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -7,8 +7,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/bessel.hpp>
-#include <boost/math/special_functions/trunc.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/type_traits/is_floating_point.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"

Modified: branches/release/libs/math/test/test_bessel_y.cpp
==============================================================================
--- branches/release/libs/math/test/test_bessel_y.cpp (original)
+++ branches/release/libs/math/test/test_bessel_y.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 
 #include "test_bessel_y.hpp"
 

Modified: branches/release/libs/math/test/test_bessel_y.hpp
==============================================================================
--- branches/release/libs/math/test/test_bessel_y.hpp (original)
+++ branches/release/libs/math/test/test_bessel_y.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -7,8 +7,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/bessel.hpp>
-#include <boost/math/special_functions/trunc.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/type_traits/is_floating_point.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"

Modified: branches/release/libs/math/test/test_beta.cpp
==============================================================================
--- branches/release/libs/math/test/test_beta.cpp (original)
+++ branches/release/libs/math/test/test_beta.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -5,7 +5,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include "pch_light.hpp"
 
 #include "test_beta.hpp"
 

Modified: branches/release/libs/math/test/test_beta.hpp
==============================================================================
--- branches/release/libs/math/test/test_beta.hpp (original)
+++ branches/release/libs/math/test/test_beta.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -13,7 +13,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/beta.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/tools/stats.hpp>
 #include <boost/math/tools/test.hpp>
 #include <boost/math/constants/constants.hpp>

Modified: branches/release/libs/math/test/test_carlson.cpp
==============================================================================
--- branches/release/libs/math/test/test_carlson.cpp (original)
+++ branches/release/libs/math/test/test_carlson.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -5,7 +5,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_carlson.hpp"
 
 //

Modified: branches/release/libs/math/test/test_carlson.hpp
==============================================================================
--- branches/release/libs/math/test/test_carlson.hpp (original)
+++ branches/release/libs/math/test/test_carlson.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -7,10 +7,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/ellint_rf.hpp>
-#include <boost/math/special_functions/ellint_rc.hpp>
-#include <boost/math/special_functions/ellint_rj.hpp>
-#include <boost/math/special_functions/ellint_rd.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/constants/constants.hpp>
 #include <boost/array.hpp>
 #include <boost/tr1/random.hpp>

Modified: branches/release/libs/math/test/test_cbrt.cpp
==============================================================================
--- branches/release/libs/math/test/test_cbrt.cpp (original)
+++ branches/release/libs/math/test/test_cbrt.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -9,7 +9,7 @@
 # pragma warning (disable : 4224)
 #endif
 
-#include <pch.hpp> // include /libs/math/src/
+#include <pch_light.hpp> // include /libs/math/src/
 #include "test_cbrt.hpp"
 
 //

Modified: branches/release/libs/math/test/test_cbrt.hpp
==============================================================================
--- branches/release/libs/math/test/test_cbrt.hpp (original)
+++ branches/release/libs/math/test/test_cbrt.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -11,7 +11,7 @@
 #include <boost/math/tools/test.hpp>
 #include <boost/type_traits/is_floating_point.hpp>
 #include <boost/array.hpp>
-#include <boost/math/special_functions/cbrt.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"

Modified: branches/release/libs/math/test/test_digamma.cpp
==============================================================================
--- branches/release/libs/math/test/test_digamma.cpp (original)
+++ branches/release/libs/math/test/test_digamma.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_digamma.hpp"
 
 //

Modified: branches/release/libs/math/test/test_digamma.hpp
==============================================================================
--- branches/release/libs/math/test/test_digamma.hpp (original)
+++ branches/release/libs/math/test/test_digamma.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -7,7 +7,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/digamma.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 

Modified: branches/release/libs/math/test/test_ellint_1.cpp
==============================================================================
--- branches/release/libs/math/test/test_ellint_1.cpp (original)
+++ branches/release/libs/math/test/test_ellint_1.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -6,7 +6,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_ellint_1.hpp"
 
 //

Modified: branches/release/libs/math/test/test_ellint_1.hpp
==============================================================================
--- branches/release/libs/math/test/test_ellint_1.hpp (original)
+++ branches/release/libs/math/test/test_ellint_1.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -12,7 +12,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/ellint_1.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 

Modified: branches/release/libs/math/test/test_ellint_2.cpp
==============================================================================
--- branches/release/libs/math/test/test_ellint_2.cpp (original)
+++ branches/release/libs/math/test/test_ellint_2.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -6,7 +6,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_ellint_2.hpp"
 
 //

Modified: branches/release/libs/math/test/test_ellint_2.hpp
==============================================================================
--- branches/release/libs/math/test/test_ellint_2.hpp (original)
+++ branches/release/libs/math/test/test_ellint_2.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -12,7 +12,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/ellint_2.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 

Modified: branches/release/libs/math/test/test_ellint_3.cpp
==============================================================================
--- branches/release/libs/math/test/test_ellint_3.cpp (original)
+++ branches/release/libs/math/test/test_ellint_3.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -6,7 +6,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_ellint_3.hpp"
 
 //

Modified: branches/release/libs/math/test/test_ellint_3.hpp
==============================================================================
--- branches/release/libs/math/test/test_ellint_3.hpp (original)
+++ branches/release/libs/math/test/test_ellint_3.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -12,7 +12,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/ellint_3.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 

Modified: branches/release/libs/math/test/test_erf.cpp
==============================================================================
--- branches/release/libs/math/test/test_erf.cpp (original)
+++ branches/release/libs/math/test/test_erf.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -4,7 +4,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_erf.hpp"
 
 //

Modified: branches/release/libs/math/test/test_erf.hpp
==============================================================================
--- branches/release/libs/math/test/test_erf.hpp (original)
+++ branches/release/libs/math/test/test_erf.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -7,7 +7,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/erf.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/constants/constants.hpp>
 #include <boost/type_traits/is_floating_point.hpp>
 #include <boost/array.hpp>

Modified: branches/release/libs/math/test/test_expint.cpp
==============================================================================
--- branches/release/libs/math/test/test_expint.cpp (original)
+++ branches/release/libs/math/test/test_expint.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_expint.hpp"
 
 //

Modified: branches/release/libs/math/test/test_expint.hpp
==============================================================================
--- branches/release/libs/math/test/test_expint.hpp (original)
+++ branches/release/libs/math/test/test_expint.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -5,8 +5,7 @@
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/math/concepts/real_concept.hpp>
-#include <boost/math/special_functions/expint.hpp>
-#include <boost/math/special_functions/trunc.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
 #include <boost/math/tools/stats.hpp>

Modified: branches/release/libs/math/test/test_gamma.cpp
==============================================================================
--- branches/release/libs/math/test/test_gamma.cpp (original)
+++ branches/release/libs/math/test/test_gamma.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_gamma.hpp"
 
 //

Modified: branches/release/libs/math/test/test_gamma.hpp
==============================================================================
--- branches/release/libs/math/test/test_gamma.hpp (original)
+++ branches/release/libs/math/test/test_gamma.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -7,7 +7,7 @@
 #define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
 
 #include <boost/math/concepts/real_concept.hpp>
-#include <boost/math/special_functions/gamma.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
 #include <boost/math/tools/stats.hpp>

Modified: branches/release/libs/math/test/test_hermite.cpp
==============================================================================
--- branches/release/libs/math/test/test_hermite.cpp (original)
+++ branches/release/libs/math/test/test_hermite.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -5,7 +5,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include"test_hermite.hpp"
 
 //

Modified: branches/release/libs/math/test/test_hermite.hpp
==============================================================================
--- branches/release/libs/math/test/test_hermite.hpp (original)
+++ branches/release/libs/math/test/test_hermite.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -14,7 +14,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/hermite.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/constants/constants.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"

Modified: branches/release/libs/math/test/test_ibeta.cpp
==============================================================================
--- branches/release/libs/math/test/test_ibeta.cpp (original)
+++ branches/release/libs/math/test/test_ibeta.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_ibeta.hpp"
 
 #if !defined(TEST_FLOAT) && !defined(TEST_DOUBLE) && !defined(TEST_LDOUBLE) && !defined(TEST_REAL_CONCEPT)

Modified: branches/release/libs/math/test/test_ibeta.hpp
==============================================================================
--- branches/release/libs/math/test/test_ibeta.hpp (original)
+++ branches/release/libs/math/test/test_ibeta.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -7,7 +7,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/beta.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/tools/stats.hpp>
 #include <boost/math/tools/test.hpp>
 #include <boost/math/constants/constants.hpp>

Modified: branches/release/libs/math/test/test_ibeta_inv.cpp
==============================================================================
--- branches/release/libs/math/test/test_ibeta_inv.cpp (original)
+++ branches/release/libs/math/test/test_ibeta_inv.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include"test_ibeta_inv.hpp"
 
 #if !defined(TEST_FLOAT) && !defined(TEST_DOUBLE) && !defined(TEST_LDOUBLE) && !defined(TEST_REAL_CONCEPT)

Modified: branches/release/libs/math/test/test_ibeta_inv.hpp
==============================================================================
--- branches/release/libs/math/test/test_ibeta_inv.hpp (original)
+++ branches/release/libs/math/test/test_ibeta_inv.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -7,7 +7,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/beta.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/tools/stats.hpp>
 #include <boost/math/tools/test.hpp>
 #include <boost/math/constants/constants.hpp>

Modified: branches/release/libs/math/test/test_ibeta_inv_ab.cpp
==============================================================================
--- branches/release/libs/math/test/test_ibeta_inv_ab.cpp (original)
+++ branches/release/libs/math/test/test_ibeta_inv_ab.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_ibeta_inv_ab.hpp"
 
 #if !defined(TEST_FLOAT) && !defined(TEST_DOUBLE) && !defined(TEST_LDOUBLE) && !defined(TEST_REAL_CONCEPT)

Modified: branches/release/libs/math/test/test_ibeta_inv_ab.hpp
==============================================================================
--- branches/release/libs/math/test/test_ibeta_inv_ab.hpp (original)
+++ branches/release/libs/math/test/test_ibeta_inv_ab.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -9,7 +9,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/beta.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/tools/stats.hpp>
 #include <boost/math/tools/test.hpp>
 #include <boost/math/constants/constants.hpp>

Modified: branches/release/libs/math/test/test_igamma.cpp
==============================================================================
--- branches/release/libs/math/test/test_igamma.cpp (original)
+++ branches/release/libs/math/test/test_igamma.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_igamma.hpp"
 
 //

Modified: branches/release/libs/math/test/test_igamma.hpp
==============================================================================
--- branches/release/libs/math/test/test_igamma.hpp (original)
+++ branches/release/libs/math/test/test_igamma.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -7,7 +7,7 @@
 #define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
 
 #include <boost/math/concepts/real_concept.hpp>
-#include <boost/math/special_functions/gamma.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
 #include <boost/math/tools/stats.hpp>

Modified: branches/release/libs/math/test/test_igamma_inv.cpp
==============================================================================
--- branches/release/libs/math/test/test_igamma_inv.cpp (original)
+++ branches/release/libs/math/test/test_igamma_inv.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_igamma_inv.hpp"
 
 #if !defined(TEST_FLOAT) && !defined(TEST_DOUBLE) && !defined(TEST_LDOUBLE) && !defined(TEST_REAL_CONCEPT)

Modified: branches/release/libs/math/test/test_igamma_inv.hpp
==============================================================================
--- branches/release/libs/math/test/test_igamma_inv.hpp (original)
+++ branches/release/libs/math/test/test_igamma_inv.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -5,7 +5,7 @@
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/math/concepts/real_concept.hpp>
-#include <boost/math/special_functions/gamma.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/results_collector.hpp>
 #include <boost/test/unit_test.hpp>

Modified: branches/release/libs/math/test/test_igamma_inva.cpp
==============================================================================
--- branches/release/libs/math/test/test_igamma_inva.cpp (original)
+++ branches/release/libs/math/test/test_igamma_inva.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_igamma_inva.hpp"
 
 #if !defined(TEST_FLOAT) && !defined(TEST_DOUBLE) && !defined(TEST_LDOUBLE) && !defined(TEST_REAL_CONCEPT)

Modified: branches/release/libs/math/test/test_igamma_inva.hpp
==============================================================================
--- branches/release/libs/math/test/test_igamma_inva.hpp (original)
+++ branches/release/libs/math/test/test_igamma_inva.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -7,7 +7,7 @@
 #define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
 
 #include <boost/math/concepts/real_concept.hpp>
-#include <boost/math/special_functions/gamma.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/results_collector.hpp>
 #include <boost/test/unit_test.hpp>

Modified: branches/release/libs/math/test/test_instances.hpp
==============================================================================
--- branches/release/libs/math/test/test_instances.hpp (original)
+++ branches/release/libs/math/test/test_instances.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -6,8 +6,363 @@
 
 namespace boost{ namespace math{
 
-template tools::promote_args<BOOST_MATH_TEST_TYPE>::type zeta(BOOST_MATH_TEST_TYPE s, const policies::policy<>&);
+ typedef policies::policy<policies::overflow_error<policies::throw_on_error> > overflow_policy;
 
-template tools::promote_args<BOOST_MATH_TEST_TYPE>::type zeta(BOOST_MATH_TEST_TYPE s);
+ // Beta functions.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ beta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b); // Beta function (2 arguments).
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ beta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, policies::policy<>); // Beta function (3 arguments).
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ beta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE); // Beta function (3 arguments).
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ beta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol); // Beta function (3 arguments).
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ betac(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ betac(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x); // Incomplete beta function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol); // Incomplete beta function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x); // Incomplete beta complement function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol); // Incomplete beta complement function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, BOOST_MATH_TEST_TYPE* py);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, BOOST_MATH_TEST_TYPE* py, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, const policies::policy<>&); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, const policies::policy<>&); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_invb(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_invb(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, const policies::policy<>&); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, BOOST_MATH_TEST_TYPE* py);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, BOOST_MATH_TEST_TYPE* py, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, const policies::policy<>&); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, const policies::policy<>&); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_invb(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_invb(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, const policies::policy<>&); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_derivative(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x); // derivative of incomplete beta
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_derivative(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol); // derivative of incomplete beta
+
+ // erf & erfc error functions.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erf(BOOST_MATH_TEST_TYPE z);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erf(BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erfc(BOOST_MATH_TEST_TYPE z);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erfc(BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erf_inv(BOOST_MATH_TEST_TYPE z);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erf_inv(BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erfc_inv(BOOST_MATH_TEST_TYPE z);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erfc_inv(BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ // Polynomials:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ legendre_next(unsigned l, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Pl, BOOST_MATH_TEST_TYPE Plm1);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_p(int l, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_p(int l, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_q(unsigned l, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_q(unsigned l, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ legendre_next(unsigned l, unsigned m, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Pl, BOOST_MATH_TEST_TYPE Plm1);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_p(int l, int m, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_p(int l, int m, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ laguerre_next(unsigned n, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Ln, BOOST_MATH_TEST_TYPE Lnm1);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ laguerre_next(unsigned n, unsigned l, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Pl, BOOST_MATH_TEST_TYPE Plm1);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ laguerre(unsigned n, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ laguerre(unsigned n, unsigned m, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template laguerre_result<int, BOOST_MATH_TEST_TYPE>::type
+ laguerre(unsigned n, int m, BOOST_MATH_TEST_TYPE x);
+
+ template laguerre_result<unsigned, BOOST_MATH_TEST_TYPE>::type
+ laguerre(unsigned n, unsigned m, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ hermite(unsigned n, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ hermite(unsigned n, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ hermite_next(unsigned n, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Hn, BOOST_MATH_TEST_TYPE Hnm1);
+
+ template std::complex<BOOST_MATH_TEST_TYPE>
+ spherical_harmonic(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi);
+
+ template std::complex<BOOST_MATH_TEST_TYPE>
+ spherical_harmonic(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ spherical_harmonic_r(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ spherical_harmonic_r(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ spherical_harmonic_i(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ spherical_harmonic_i(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ // Elliptic integrals:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rf(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rf(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rd(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rd(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rc(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rc(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rj(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z, BOOST_MATH_TEST_TYPE p);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rj(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z, BOOST_MATH_TEST_TYPE p, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type ellint_2(BOOST_MATH_TEST_TYPE k);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_2(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_2(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type ellint_1(BOOST_MATH_TEST_TYPE k);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_1(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_1(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template detail::ellint_3_result<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_3(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_3(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_3(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE v);
+
+ // Gamma functions.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type tgamma(BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type tgamma1pm1(BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type tgamma1pm1(BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type lgamma(BOOST_MATH_TEST_TYPE z, int* sign);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type lgamma(BOOST_MATH_TEST_TYPE z, int* sign, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type lgamma(BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type lgamma(BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_lower(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_lower(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_delta_ratio(BOOST_MATH_TEST_TYPE z, BOOST_MATH_TEST_TYPE delta);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_delta_ratio(BOOST_MATH_TEST_TYPE z, BOOST_MATH_TEST_TYPE delta, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_ratio(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_ratio(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_derivative(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_derivative(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE x, const policies::policy<>&);
+
+ // gamma inverse.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE p);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE p, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE p);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE p, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE q);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE q, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE q);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE q, const policies::policy<>&);
+
+ // digamma:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type digamma(BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type digamma(BOOST_MATH_TEST_TYPE x, const policies::policy<>&);
+
+ // Hypotenuse function sqrt(x ^ 2 + y ^ 2).
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ hypot(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ hypot(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, const policies::policy<>&);
+
+ // cbrt - cube root.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type cbrt(BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type cbrt(BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ // log1p is log(x + 1)
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1p(BOOST_MATH_TEST_TYPE);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1p(BOOST_MATH_TEST_TYPE, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1p<BOOST_MATH_TEST_TYPE, overflow_policy>(BOOST_MATH_TEST_TYPE, const overflow_policy&);
+
+ // log1pmx is log(x + 1) - x
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1pmx(BOOST_MATH_TEST_TYPE);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1pmx(BOOST_MATH_TEST_TYPE, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1pmx(BOOST_MATH_TEST_TYPE, const overflow_policy&);
+
+ // Exp (x) minus 1 functions.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expm1(BOOST_MATH_TEST_TYPE);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expm1(BOOST_MATH_TEST_TYPE, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expm1(BOOST_MATH_TEST_TYPE, const overflow_policy&);
+
+ // Power - 1
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ powm1(const BOOST_MATH_TEST_TYPE a, const BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ powm1(const BOOST_MATH_TEST_TYPE a, const BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ // sqrt(1+x) - 1
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type sqrt1pm1(const BOOST_MATH_TEST_TYPE& val);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type sqrt1pm1(const BOOST_MATH_TEST_TYPE& val, const policies::policy<>&);
+
+ // Bessel functions:
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_j(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_j(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_j(int v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_bessel(unsigned v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_bessel(unsigned v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_i(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_i(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_i(int v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_k(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_k(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_k(int v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_neumann(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_neumann(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_neumann(int v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_neumann(unsigned v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_neumann(unsigned v, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expint(unsigned n, BOOST_MATH_TEST_TYPE z, const policies::policy<> &);
+
+ template detail::expint_result<int, BOOST_MATH_TEST_TYPE>::type expint(int const z, BOOST_MATH_TEST_TYPE const u);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expint(BOOST_MATH_TEST_TYPE z);
+
+ // Zeta:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type zeta(BOOST_MATH_TEST_TYPE s, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type zeta(BOOST_MATH_TEST_TYPE s);
 
 }} // namespaces

Modified: branches/release/libs/math/test/test_laguerre.cpp
==============================================================================
--- branches/release/libs/math/test/test_laguerre.cpp (original)
+++ branches/release/libs/math/test/test_laguerre.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_laguerre.hpp"
 
 //

Modified: branches/release/libs/math/test/test_laguerre.hpp
==============================================================================
--- branches/release/libs/math/test/test_laguerre.hpp (original)
+++ branches/release/libs/math/test/test_laguerre.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -7,7 +7,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/laguerre.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/constants/constants.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"

Modified: branches/release/libs/math/test/test_legendre.cpp
==============================================================================
--- branches/release/libs/math/test/test_legendre.cpp (original)
+++ branches/release/libs/math/test/test_legendre.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_legendre.hpp"
 
 //

Modified: branches/release/libs/math/test/test_legendre.hpp
==============================================================================
--- branches/release/libs/math/test/test_legendre.hpp (original)
+++ branches/release/libs/math/test/test_legendre.hpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -11,7 +11,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/legendre.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/constants/constants.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"

Modified: branches/release/libs/math/test/test_spherical_harmonic.cpp
==============================================================================
--- branches/release/libs/math/test/test_spherical_harmonic.cpp (original)
+++ branches/release/libs/math/test/test_spherical_harmonic.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,12 +3,12 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/spherical_harmonic.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/constants/constants.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"

Modified: branches/release/libs/math/test/test_zeta.cpp
==============================================================================
--- branches/release/libs/math/test/test_zeta.cpp (original)
+++ branches/release/libs/math/test/test_zeta.cpp 2012-01-08 08:10:31 EST (Sun, 08 Jan 2012)
@@ -3,6 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
+#include "pch_light.hpp"
 #include "test_zeta.hpp"
 
 //


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