Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r78107 - in trunk: boost/math boost/math/tools libs/math/doc/sf_and_dist libs/math/test
From: john_at_[hidden]
Date: 2012-04-21 04:43:09


Author: johnmaddock
Date: 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
New Revision: 78107
URL: http://svn.boost.org/trac/boost/changeset/78107

Log:
Fix double-definition of float_t in tr1.hpp.
Tweak behaviour of BOOST_MATH_BIG_CONSTANT.
Fix expected error rates for a bunch of tests (mostly on Mingw).
Fix paths in owens_t.qbk.
Text files modified:
   trunk/boost/math/tools/big_constant.hpp | 5 ++++-
   trunk/boost/math/tr1.hpp | 2 ++
   trunk/libs/math/doc/sf_and_dist/owens_t.qbk | 5 +++--
   trunk/libs/math/test/complex_test.cpp | 9 ++++-----
   trunk/libs/math/test/pow_test.cpp | 2 +-
   trunk/libs/math/test/test_bessel_i.cpp | 7 +++++++
   trunk/libs/math/test/test_bessel_k.cpp | 7 +++++++
   trunk/libs/math/test/test_bessel_y.cpp | 12 ++++++------
   trunk/libs/math/test/test_expint.cpp | 2 +-
   trunk/libs/math/test/test_gamma.cpp | 25 ++++++++++++++++++++++++-
   trunk/libs/math/test/test_ibeta.cpp | 17 ++++++++++++-----
   trunk/libs/math/test/test_ibeta_inv.cpp | 8 ++++----
   trunk/libs/math/test/test_igamma.cpp | 32 ++++++++++++++++++++++++++++++++
   trunk/libs/math/test/test_laguerre.cpp | 8 ++++----
   trunk/libs/math/test/test_long_double_support.cpp | 7 +------
   trunk/libs/math/test/test_signed_zero.cpp | 10 ++++++++--
   16 files changed, 120 insertions(+), 38 deletions(-)

Modified: trunk/boost/math/tools/big_constant.hpp
==============================================================================
--- trunk/boost/math/tools/big_constant.hpp (original)
+++ trunk/boost/math/tools/big_constant.hpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -41,7 +41,10 @@
    boost::math::tools::make_big_value<T>(\
       BOOST_JOIN(x, L), \
       BOOST_STRINGIZE(x), \
- mpl::bool_< (D <= std::numeric_limits<long double>::digits) || (std::numeric_limits<T>::is_specialized && (std::numeric_limits<T>::digits <= std::numeric_limits<long double>::digits)) >(), \
+ mpl::bool_< (D <= std::numeric_limits<long double>::digits) \
+ || is_floating_point<T>::value \
+ || (std::numeric_limits<T>::is_specialized && \
+ (std::numeric_limits<T>::digits10 <= std::numeric_limits<long double>::digits10)) >(), \
       boost::is_convertible<const char*, T>())
 //
 // For constants too huge for any conceivable long double (and which generate compiler errors if we try and declare them as such):

Modified: trunk/boost/math/tr1.hpp
==============================================================================
--- trunk/boost/math/tr1.hpp (original)
+++ trunk/boost/math/tr1.hpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -104,6 +104,7 @@
 # include <boost/config/auto_link.hpp>
 #endif
 
+#if !(defined(BOOST_INTEL) && defined(__APPLE__)) && !(defined(__FLT_EVAL_METHOD__) && !defined(__cplusplus))
 #ifndef FLT_EVAL_METHOD
 typedef float float_t;
 typedef double double_t;
@@ -117,6 +118,7 @@
 typedef long double float_t;
 typedef long double double_t;
 #endif
+#endif
 
 // C99 Functions:
 double BOOST_MATH_TR1_DECL boost_acosh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;

Modified: trunk/libs/math/doc/sf_and_dist/owens_t.qbk
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/owens_t.qbk (original)
+++ trunk/libs/math/doc/sf_and_dist/owens_t.qbk 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -26,7 +26,7 @@
 
 [sixemspace][sixemspace][equation owens_t]
 
-[$plot_owens_t.png]
+[$../graphs/plot_owens_t.png]
 
 The function `owens_t(h, a)` gives the probability
 of the event ['(X > h and 0 < Y < a * X)],
@@ -43,7 +43,7 @@
 
 and is also illustrated by a 3D plot.
 
-[$plot_owens_3d_xyp.png]
+[$../graphs/plot_owens_3d_xyp.png]
 
 This function is used in the computation of the __skew_normal_distrib.
 It is also used in the computation of bivariate and
@@ -110,3 +110,4 @@
   http://www.boost.org/LICENSE_1_0.txt).
 ]
 
+

Modified: trunk/libs/math/test/complex_test.cpp
==============================================================================
--- trunk/libs/math/test/complex_test.cpp (original)
+++ trunk/libs/math/test/complex_test.cpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -271,11 +271,10 @@
    static const T zero = 0;
    static const T mzero = -zero;
    static const T one = 1;
- static const T pi = static_cast<T>(3.141592653589793238462643383279502884197L);
- static const T half_pi = static_cast<T>(1.57079632679489661923132169163975144L);
- static const T quarter_pi = static_cast<T>(0.78539816339744830961566084581987572L);
- static const T three_quarter_pi = static_cast<T>(2.35619449019234492884698253745962716L);
- //static const T log_two = static_cast<T>(0.69314718055994530941723212145817657L);
+ static const T pi = boost::math::constants::pi<T>();
+ static const T half_pi = boost::math::constants::half_pi<T>();
+ static const T quarter_pi = half_pi / 2;
+ static const T three_quarter_pi = boost::math::constants::three_quarters_pi<T>();
    T infinity = std::numeric_limits<T>::infinity();
    bool test_infinity = std::numeric_limits<T>::has_infinity;
    T nan = 0;

Modified: trunk/libs/math/test/pow_test.cpp
==============================================================================
--- trunk/libs/math/test/pow_test.cpp (original)
+++ trunk/libs/math/test/pow_test.cpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -41,7 +41,7 @@
     {
        BOOST_CHECK_CLOSE(math::pow<N>(base),
               pow(static_cast<result_type>(base), static_cast<result_type>(N)),
- boost::math::tools::epsilon<result_type>() * 100 * 200); // 200 eps as a %
+ boost::math::tools::epsilon<result_type>() * 100 * 400); // 400 eps as a %
     }
 }
 

Modified: trunk/libs/math/test/test_bessel_i.cpp
==============================================================================
--- trunk/libs/math/test/test_bessel_i.cpp (original)
+++ trunk/libs/math/test/test_bessel_i.cpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -75,6 +75,13 @@
       ".*", 400, 200); // test function
 
    add_expected_result(
+ "GNU.*", // compiler
+ ".*", // stdlib
+ "Win32.*", // platform
+ largest_type, // test type(s)
+ ".*", // test data group
+ ".*", 30, 10); // test function
+ add_expected_result(
       ".*", // compiler
       ".*", // stdlib
       ".*", // platform

Modified: trunk/libs/math/test/test_bessel_k.cpp
==============================================================================
--- trunk/libs/math/test/test_bessel_k.cpp (original)
+++ trunk/libs/math/test/test_bessel_k.cpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -73,6 +73,13 @@
       ".*", 4000, 1300); // test function
 
    add_expected_result(
+ "GNU.*", // compiler
+ ".*", // stdlib
+ "Win32.*", // platform
+ largest_type, // test type(s)
+ ".*large.*", // test data group
+ ".*", 250, 100); // test function
+ add_expected_result(
       ".*", // compiler
       ".*", // stdlib
       ".*", // platform

Modified: trunk/libs/math/test/test_bessel_y.cpp
==============================================================================
--- trunk/libs/math/test/test_bessel_y.cpp (original)
+++ trunk/libs/math/test/test_bessel_y.cpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -131,23 +131,23 @@
    // MinGW:
    //
       add_expected_result(
- ".*mingw.*", // compiler
+ "GNU.*", // compiler
          ".*", // stdlib
- ".*", // platform
+ "Win32.*", // platform
          largest_type, // test type(s)
          ".*Yv.*Random.*", // test data group
          ".*", 200000, 200000); // test function
       add_expected_result(
- ".*mingw.*", // compiler
+ "GNU.*", // compiler
          ".*", // stdlib
- ".*", // platform
+ "Win32.*", // platform
          largest_type, // test type(s)
          ".*Y[01v].*", // test data group
          ".*", 2000, 1000); // test function
       add_expected_result(
- ".*mingw.*", // compiler
+ "GNU.*", // compiler
          ".*", // stdlib
- ".*", // platform
+ "Win32.*", // platform
          largest_type, // test type(s)
          ".*Yn.*", // test data group
          ".*", 30000, 30000); // test function

Modified: trunk/libs/math/test/test_expint.cpp
==============================================================================
--- trunk/libs/math/test/test_expint.cpp (original)
+++ trunk/libs/math/test/test_expint.cpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -67,7 +67,7 @@
       ".*", // compiler
       ".*", // stdlib
       "Mac OS", // platform
- "float|double|long double", // test type(s)
+ "float|double|long double|real_concept", // test type(s)
       ".*Ei.*", // test data group
       ".*", 300, 200); // test function
    add_expected_result(

Modified: trunk/libs/math/test/test_gamma.cpp
==============================================================================
--- trunk/libs/math/test/test_gamma.cpp (original)
+++ trunk/libs/math/test/test_gamma.cpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -60,7 +60,30 @@
       largest_type, // test type(s)
       "factorials", // test data group
       "boost::math::tgamma", 100, 15); // test function
-
+ //
+ // G++ On Win32:
+ //
+ add_expected_result(
+ "GNU.*", // compiler
+ ".*", // stdlib
+ "Win32.*", // platform
+ largest_type, // test type(s)
+ "factorials", // test data group
+ "boost::math::tgamma", 100, 15); // test function
+ add_expected_result(
+ "GNU.*", // compiler
+ ".*", // stdlib
+ "Win32.*", // platform
+ "real_concept", // test type(s)
+ "factorials", // test data group
+ "boost::math::tgamma", 200, 100); // test function
+ add_expected_result(
+ "GNU.*", // compiler
+ ".*", // stdlib
+ "Win32.*", // platform
+ "real_concept", // test type(s)
+ "near.*", // test data group
+ "boost::math::tgamma", 200, 60); // test function
    //
    // G++ on Linux, result vary a bit by processor type,
    // on Itanium results are *much* better than listed here,

Modified: trunk/libs/math/test/test_ibeta.cpp
==============================================================================
--- trunk/libs/math/test/test_ibeta.cpp (original)
+++ trunk/libs/math/test/test_ibeta.cpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -182,16 +182,23 @@
    // MinGW:
    //
    add_expected_result(
- "[^|]*mingw[^|]*", // compiler
+ "GNU[^|]*", // compiler
       "[^|]*", // stdlib
- ".*", // platform
+ "Win32[^|]*", // platform
+ "real_concept", // test type(s)
+ "(?i).*medium.*", // test data group
+ ".*", 400, 50); // test function
+ add_expected_result(
+ "GNU.*", // compiler
+ ".*", // stdlib
+ "Win32.*", // platform
       "double", // test type(s)
       "(?i).*large.*", // test data group
       ".*", 20, 10); // test function
    add_expected_result(
- "[^|]*mingw[^|]*", // compiler
- "[^|]*", // stdlib
- ".*", // platform
+ "GNU.*", // compiler
+ ".*", // stdlib
+ "Win32.*", // platform
       largest_type, // test type(s)
       "(?i).*large.*", // test data group
       ".*", 200000, 10000); // test function

Modified: trunk/libs/math/test/test_ibeta_inv.cpp
==============================================================================
--- trunk/libs/math/test/test_ibeta_inv.cpp (original)
+++ trunk/libs/math/test/test_ibeta_inv.cpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -105,16 +105,16 @@
    // causes more extreme test cases to be executed:
    //
    add_expected_result(
- ".*mingw.*", // compiler
+ "GNU.*", // compiler
       ".*", // stdlib
- ".*", // platform
+ "Win32.*", // platform
       "double", // test type(s)
       ".*", // test data group
       ".*", 10, 10); // test function
    add_expected_result(
- ".*mingw.*", // compiler
+ "GNU.*", // compiler
       ".*", // stdlib
- ".*", // platform
+ "Win32.*", // platform
       largest_type, // test type(s)
       ".*", // test data group
       ".*", 300000, 20000); // test function

Modified: trunk/libs/math/test/test_igamma.cpp
==============================================================================
--- trunk/libs/math/test/test_igamma.cpp (original)
+++ trunk/libs/math/test/test_igamma.cpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -195,6 +195,38 @@
       "[^|]*", 100, 50); // test function
 
    //
+ // Minw:
+ //
+ add_expected_result(
+ "GNU[^|]*", // compiler
+ "[^|]*", // stdlib
+ "Win32[^|]*", // platform
+ largest_type, // test type(s)
+ "[^|]*medium[^|]*", // test data group
+ "[^|]*", 200, 100); // test function
+ add_expected_result(
+ "GNU[^|]*", // compiler
+ "[^|]*", // stdlib
+ "Win32[^|]*", // platform
+ largest_type, // test type(s)
+ "[^|]*small[^|]*", // test data group
+ "[^|]*", 100, 50); // test function
+ add_expected_result(
+ "GNU[^|]*", // compiler
+ "[^|]*", // stdlib
+ "Win32[^|]*", // platform
+ "real_concept", // test type(s)
+ "[^|]*medium[^|]*", // test data group
+ "[^|]*", 400, 100); // test function
+ add_expected_result(
+ "GNU[^|]*", // compiler
+ "[^|]*", // stdlib
+ "Win32[^|]*", // platform
+ "real_concept", // test type(s)
+ "[^|]*integer[^|]*", // test data group
+ ".*", 80, 50); // test function
+
+ //
    // Large exponent range causes more extreme test cases to be evaluated:
    //
    if(std::numeric_limits<long double>::max_exponent > std::numeric_limits<double>::max_exponent)

Modified: trunk/libs/math/test/test_laguerre.cpp
==============================================================================
--- trunk/libs/math/test/test_laguerre.cpp (original)
+++ trunk/libs/math/test/test_laguerre.cpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -82,16 +82,16 @@
       ".*", // test data group
       ".*", 40000, 1000); // test function
    add_expected_result(
- ".*mingw.*", // compiler
+ "GNU.*", // compiler
       ".*", // stdlib
- ".*", // platform
+ "Win32.*", // platform
       largest_type, // test type(s)
       ".*", // test data group
       ".*", 40000, 1000); // test function
    add_expected_result(
- ".*mingw.*", // compiler
+ "GNU.*", // compiler
       ".*", // stdlib
- ".*", // platform
+ "Win32.*", // platform
       "real_concept", // test type(s)
       ".*", // test data group
       ".*", 40000, 1000); // test function

Modified: trunk/libs/math/test/test_long_double_support.cpp
==============================================================================
--- trunk/libs/math/test/test_long_double_support.cpp (original)
+++ trunk/libs/math/test/test_long_double_support.cpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -117,18 +117,13 @@
    //
    // TAN:
    //
- boost::array<boost::array<long double, 2>, 7> tan_test_data = {{
+ boost::array<boost::array<long double, 2>, 6> tan_test_data = {{
        0, 0,
        0.125L, 0.125655136575130967792678218629774000758665763892225542668867L,
        -0.125L, -0.125655136575130967792678218629774000758665763892225542668867L,
        1.125L, 2.09257127637217900442373398123488678225994171614872057291399L,
        1e-500L, 1e-500L,
        1e-1500L, 1e-1500L,
-#if LDBL_MAX_EXP > DBL_MAX_EXP
- 1.57079632679489661923132169163975144209858469968755291048747L, 1e500L,
-#else
- 0, 0,
-#endif
    }};
    unary_proc = std::tan;
    inv_unary_proc = std::atan;

Modified: trunk/libs/math/test/test_signed_zero.cpp
==============================================================================
--- trunk/libs/math/test/test_signed_zero.cpp (original)
+++ trunk/libs/math/test/test_signed_zero.cpp 2012-04-21 04:43:06 EDT (Sat, 21 Apr 2012)
@@ -210,15 +210,21 @@
    if(precision_after)
    {
     CHECKOUT(std::setprecision(2) << std::showpoint << nz, "-0.00"); // or "-0.0"
- CHECKOUT(std::scientific << std::showpoint << std::setw(10) << std::setfill('*') << std::setprecision(1) << std::left << nz, "-0.0e+000*"); // -0.0e+00**
     CHECKOUT(std::setw(1) << std::setprecision(3) << std::showpoint << nz, "-0.000"); // Not enough width for precision overflows width. or "-0.00"
    }
    else
    {
     CHECKOUT(std::setprecision(2) << std::showpoint << nz, "-0.0"); // or "-0.00"
- CHECKOUT(std::scientific << std::showpoint << std::setw(10) << std::setfill('*') << std::setprecision(1) << std::left << nz, "-0.0e+00**"); // -0.0e+000*
     CHECKOUT(std::setw(1) << std::setprecision(3) << std::showpoint << nz, "-0.00"); // Not enough width for precision overflows width. or "-0.000"
    }
+ if(triple_exponent)
+ {
+ CHECKOUT(std::scientific << std::showpoint << std::setw(10) << std::setfill('*') << std::setprecision(1) << std::left << nz, "-0.0e+000*"); // -0.0e+00**
+ }
+ else
+ {
+ CHECKOUT(std::scientific << std::showpoint << std::setw(10) << std::setfill('*') << std::setprecision(1) << std::left << nz, "-0.0e+00**"); // -0.0e+000*
+ }
     CHECKOUT(std::fixed << std::showpoint << std::setw(6) << std::setfill('*') << std::setprecision(3) << std::left << 0., "0.000*");
 
     // Non zero values.


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